{"version":3,"sources":["webpack:////build/source/node_modules/lodash/invert.js","webpack:///./sidebar/components/labels/labels_select_widget/label_item.vue","webpack:///./sidebar/components/labels/labels_select_widget/label_item.vue?8ba5","webpack:///sidebar/components/labels/labels_select_widget/label_item.vue","webpack:///./sidebar/components/labels/labels_select_widget/label_item.vue?1f7e","webpack:///./batch_comments/utils.js","webpack:////build/source/node_modules/lodash/_baseIntersection.js","webpack:////build/source/node_modules/pikaday/pikaday.js","webpack:///./lib/utils/resize_observer.js","webpack:///./graphql_shared/mutations/create_merge_request.mutation.graphql","webpack:///./vue_shared/components/user_avatar/user_avatar_image.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_image.vue?5b71","webpack:///vue_shared/components/user_avatar/user_avatar_image.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_image.vue?7c05","webpack:////build/source/node_modules/@gitlab/ui/dist/utils/number_utils.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/schema/core.js","webpack:////build/source/node_modules/lodash/_baseClone.js","webpack:///./awards_handler.js","webpack:///./emoji/awards_app/store/mutation_types.js","webpack:///./emoji/awards_app/store/actions.js","webpack:///./emoji/awards_app/store/mutations.js","webpack:///./emoji/awards_app/store/index.js","webpack:///./emoji/awards_app/index.js","webpack:///./diffs/store/utils.js","webpack:///./notes/components/toggle_replies_widget.vue","webpack:///./notes/components/toggle_replies_widget.vue?559e","webpack:///notes/components/toggle_replies_widget.vue","webpack:///./notes/components/toggle_replies_widget.vue?39c2","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/queries/states/ready_to_merge.query.graphql","webpack:////build/source/node_modules/lodash/_stringSize.js","webpack:////build/source/ee/app/assets/javascripts/api.js","webpack:////build/source/node_modules/lodash/snakeCase.js","webpack:////build/source/ee/app/assets/javascripts/graphql_shared/fragments/merge_request.approval_rule.fragment.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/button_group/button_group.js","webpack:///./merge_request_tabs.js","webpack:///./merge_request.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/scan_execution/constants.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/timestamp.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/text-selection-active.js","webpack:////build/source/node_modules/lodash/isSet.js","webpack:////build/source/node_modules/ieee754/index.js","webpack:///./notes/graphql/promote_timeline_event.mutation.graphql","webpack:////build/source/node_modules/lodash/clamp.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/update_issue_weight.mutation.graphql","webpack:///./sidebar/queries/get_issue_crm_contacts.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/utils.js","webpack:////build/source/ee/app/assets/javascripts/iterations/utils.js","webpack:///./batch_comments/constants.js","webpack:///./sidebar/queries/issue_crm_contacts.subscription.graphql","webpack:///./diffs/components/diff_row_utils.js","webpack:///./projects/commit/event_hub.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/form-radio/form-radio-group.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/form/form_radio_group/form_radio_group.js","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_footer.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_footer.vue?15fa","webpack:///sidebar/components/labels/labels_select_widget/dropdown_footer.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_footer.vue?85ba","webpack:///./lib/utils/webpack.js","webpack:////build/source/node_modules/lodash/isNil.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/tfoot.js","webpack:///./vue_shared/mixins/timeago.js","webpack:///./ci/reports/constants.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/js/undefined.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/utils.js","webpack:///./graphql_shared/fragments/page_info.fragment.graphql","webpack:////build/source/node_modules/lodash/_unicodeSize.js","webpack:////build/source/node_modules/lodash/_baseClamp.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/work_item_parents.query.graphql","webpack:////build/source/node_modules/jquery.caret/dist/jquery.caret.js","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_header.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_header.vue?c429","webpack:///sidebar/components/labels/labels_select_widget/dropdown_header.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_header.vue?135b","webpack:///./vue_merge_request_widget/queries/get_state.query.graphql","webpack:////build/source/node_modules/lodash/isBoolean.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/dumper.js","webpack:///./merge_requests/queries/title.subscription.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_issue_epic.query.graphql","webpack:////build/source/node_modules/d3-array/src/ascending.js","webpack:////build/source/node_modules/d3-array/src/bisector.js","webpack:////build/source/node_modules/d3-array/src/bisect.js","webpack:////build/source/node_modules/d3-array/src/cross.js","webpack:////build/source/node_modules/d3-array/src/number.js","webpack:////build/source/node_modules/d3-array/src/extent.js","webpack:////build/source/node_modules/d3-array/src/array.js","webpack:////build/source/node_modules/d3-array/src/range.js","webpack:////build/source/node_modules/d3-array/src/ticks.js","webpack:////build/source/node_modules/d3-array/src/threshold/sturges.js","webpack:////build/source/node_modules/d3-array/src/quantile.js","webpack:////build/source/node_modules/d3-array/src/max.js","webpack:////build/source/node_modules/d3-array/src/min.js","webpack:////build/source/node_modules/d3-array/src/sum.js","webpack:///./sidebar/queries/update_status.mutation.graphql","webpack:///./abuse_reports/components/constants.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_issue_iteration.query.graphql","webpack:////build/source/node_modules/d3-path/src/index.js","webpack:///./sidebar/components/participants/participants.vue","webpack:///./sidebar/components/participants/participants.vue?54f4","webpack:///sidebar/components/participants/participants.vue","webpack:///./sidebar/components/participants/participants.vue?b8fb","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/utils.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/health_status/health_status_dropdown.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/health_status/health_status_dropdown.vue?e58e","webpack:///../../../ee/app/assets/javascripts/sidebar/components/health_status/health_status_dropdown.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/health_status/health_status_dropdown.vue?7f9a","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-stacked.js","webpack:///./lib/logger/index.js","webpack:////build/source/node_modules/d3-selection/src/matcher.js","webpack:////build/source/node_modules/lodash/_initCloneByTag.js","webpack:///./vue_shared/components/user_avatar/user_avatar_list.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_list.vue?fc99","webpack:///vue_shared/components/user_avatar/user_avatar_list.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_list.vue?6d70","webpack:///vue_shared/components/diff_stats_dropdown.vue","webpack:///./vue_shared/components/diff_stats_dropdown.vue?cc39","webpack:///./vue_shared/components/diff_stats_dropdown.vue?add1","webpack:///./vue_shared/components/diff_stats_dropdown.vue?9b09","webpack:///./vue_shared/components/diff_stats_dropdown.vue","webpack:///./init_diff_stats_dropdown.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/normalize-fields.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-items.js","webpack:///./issuable/issuable_bulk_update_sidebar.js","webpack:///./issuable/issuable_context.js","webpack:///./issuable/index.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/scan_result/advanced_settings/constants.js","webpack:////build/source/node_modules/scrollparent/scrollparent.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type.js","webpack:////build/source/node_modules/lodash/_baseIsSet.js","webpack:///./ci/pipeline_mini_graph/graphql/mutations/job_play.mutation.graphql","webpack:///./vue_shared/components/user_access_role_badge.vue","webpack:///./vue_shared/components/user_access_role_badge.vue?59b5","webpack:///vue_shared/components/user_access_role_badge.vue","webpack:///./vue_shared/components/user_access_role_badge.vue?6d9e","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/mark.js","webpack:///./vue_shared/components/modal_copy_button.vue","webpack:///./vue_shared/components/modal_copy_button.vue?eab4","webpack:///vue_shared/components/modal_copy_button.vue","webpack:///./vue_shared/components/modal_copy_button.vue?ef3f","webpack:////build/source/node_modules/lodash/chunk.js","webpack:///./vue_merge_request_widget/queries/states/new_ready_to_merge.query.graphql","webpack:///./vue_shared/components/imported_badge.vue","webpack:///vue_shared/components/imported_badge.vue","webpack:///./vue_shared/components/imported_badge.vue?8b64","webpack:///./vue_shared/components/imported_badge.vue?c532","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tfoot.js","webpack:///./ide/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/constants.js","webpack:////build/source/node_modules/lodash/groupBy.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown.js","webpack:///./ci/pipeline_mini_graph/graphql/mutations/job_unschedule.mutation.graphql","webpack:////build/source/node_modules/d3-selection/src/selector.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/constants.js","webpack:///./sidebar/queries/update_issuable_severity.mutation.graphql","webpack:///./batch_comments/mixins/resolved_status.js","webpack:///./vue_shared/components/content_viewer/viewers/download_viewer.vue","webpack:///./vue_shared/components/content_viewer/viewers/download_viewer.vue?d7cb","webpack:///vue_shared/components/content_viewer/viewers/download_viewer.vue","webpack:///./vue_shared/components/content_viewer/viewers/download_viewer.vue?858c","webpack:///./vue_shared/components/local_storage_sync.vue?a4c7","webpack:///vue_shared/components/local_storage_sync.vue","webpack:///./vue_shared/components/local_storage_sync.vue","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/constants.js","webpack:///./issues/list/eventhub.js","webpack:///./notes/utils/get_notes_filter_data.js","webpack:///./files_comment_button.js","webpack:///./commit/image_file.js","webpack:///./image_diff/helpers/badge_helper.js","webpack:///./image_diff/helpers/comment_indicator_helper.js","webpack:///./image_diff/image_badge.js","webpack:///./image_diff/helpers/index.js","webpack:///./image_diff/helpers/dom_helper.js","webpack:///./image_diff/helpers/utils_helper.js","webpack:///./image_diff/image_diff.js","webpack:///./lib/utils/image_utility.js","webpack:///./image_diff/view_types.js","webpack:///./image_diff/replaced_image_diff.js","webpack:///./image_diff/helpers/init_image_diff.js","webpack:///./single_file_diff.js","webpack:///./diff.js","webpack:////build/source/node_modules/lodash/_createCompounder.js","webpack:///./issuable/components/issuable_by_email.vue","webpack:///./issuable/components/issuable_by_email.vue?0ec9","webpack:///issuable/components/issuable_by_email.vue","webpack:///./issuable/components/issuable_by_email.vue?603b","webpack:///../images/vulnerability/kontra-logo.svg","webpack:///./security_configuration/constants.js","webpack:///../images/vulnerability/scw-logo.svg","webpack:///../images/vulnerability/secureflag-logo.svg","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/utils.js","webpack:///./issuable/issuable_bulk_update_actions.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/float.js","webpack:///./sidebar/components/lock/issuable_lock_form.vue","webpack:///./sidebar/components/lock/issuable_lock_form.vue?518e","webpack:///sidebar/components/lock/issuable_lock_form.vue","webpack:///./sidebar/components/lock/issuable_lock_form.vue?3012","webpack:///./vue_merge_request_widget/stores/state_maps.js","webpack:///./diffs/components/image_diff_overlay.vue","webpack:////build/source/ee/app/assets/javascripts/diffs/mixins/image_diff.js","webpack:///diffs/components/image_diff_overlay.vue","webpack:///./diffs/components/image_diff_overlay.vue?2f3e","webpack:///./diffs/components/image_diff_overlay.vue?3a14","webpack:///./ci/pipeline_mini_graph/graphql/queries/get_pipeline_stage_jobs.query.graphql","webpack:///./vue_shared/security_reports/constants.js","webpack:///./vue_shared/components/time_ago_tooltip.vue","webpack:///./vue_shared/components/time_ago_tooltip.vue?3039","webpack:///vue_shared/components/time_ago_tooltip.vue","webpack:///./vue_shared/components/time_ago_tooltip.vue?f6d8","webpack:///./projects/commit/constants.js","webpack:///./notes/mixins/resolvable.js","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/mappers.js","webpack:///./vue_merge_request_widget/components/widget/status_icon.vue","webpack:///./vue_merge_request_widget/components/widget/status_icon.vue?9b89","webpack:///vue_merge_request_widget/components/widget/status_icon.vue","webpack:///./vue_merge_request_widget/components/widget/status_icon.vue?8148","webpack:////build/source/node_modules/lodash/orderBy.js","webpack:////build/source/node_modules/lodash/_arrayIncludesWith.js","webpack:///./sidebar/sidebar_bundle.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/constants.js","webpack:///./diffs/utils/diff_file.js","webpack:///./related_issues/constants.js","webpack:///./pages/projects/merge_requests/queries/get_state.query.graphql","webpack:////build/source/node_modules/lodash/flattenDeep.js","webpack:///./ci/pipeline_mini_graph/pipeline_mini_graph.vue","webpack:///./ci/pipeline_mini_graph/utils/data_utils.js","webpack:///./ci/pipeline_mini_graph/downstream_pipelines.vue","webpack:///./ci/pipeline_mini_graph/downstream_pipelines.vue?f504","webpack:///ci/pipeline_mini_graph/downstream_pipelines.vue","webpack:///./ci/pipeline_mini_graph/downstream_pipelines.vue?0382","webpack:///./ci/pipeline_mini_graph/pipeline_stage_dropdown.vue?5247","webpack:///ci/pipeline_mini_graph/pipeline_stage_dropdown.vue","webpack:///./ci/pipeline_mini_graph/pipeline_stages.vue?789d","webpack:///ci/pipeline_mini_graph/pipeline_stages.vue","webpack:///./ci/pipeline_mini_graph/pipeline_stage_dropdown.vue?93d4","webpack:///./ci/pipeline_mini_graph/pipeline_stage_dropdown.vue","webpack:///./ci/pipeline_mini_graph/pipeline_stages.vue?35b5","webpack:///./ci/pipeline_mini_graph/pipeline_stages.vue","webpack:///./ci/pipeline_mini_graph/pipeline_mini_graph.vue?7660","webpack:///ci/pipeline_mini_graph/pipeline_mini_graph.vue","webpack:///./ci/pipeline_mini_graph/pipeline_mini_graph.vue?73e2","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issuable_labels.subscription.graphql","webpack:////build/source/node_modules/lodash/difference.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/scan_result/rule/scan_filters/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_notifications_icon.js","webpack:///./vue_shared/components/help_popover.vue","webpack:///./vue_shared/components/help_popover.vue?68da","webpack:///vue_shared/components/help_popover.vue","webpack:///./vue_shared/components/help_popover.vue?ebac","webpack:///./import/constants.js","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/queries/states/auto_merge_enabled.query.graphql","webpack:///./vue_merge_request_widget/queries/merge_request_event_type.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/utils/datetime_utility.js","webpack:///./security_configuration/graphql/configure_secret_detection.mutation.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_todo_icon.js","webpack:///./sidebar/queries/update_issue_lock.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/related_items_tree/components/issue_health_status.vue","webpack:////build/source/ee/app/assets/javascripts/related_items_tree/components/issue_health_status.vue?6a70","webpack:///../../../ee/app/assets/javascripts/related_items_tree/components/issue_health_status.vue","webpack:////build/source/ee/app/assets/javascripts/related_items_tree/components/issue_health_status.vue?ce73","webpack:////build/source/node_modules/lodash/_deburrLetter.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/pairs.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_issue_epic.mutation.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/avatars_inline/avatars_inline.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/group_iterations.query.graphql","webpack:///./graphql_shared/subscriptions/merge_request_prepared.subscription.graphql","webpack:///../images/no_avatar.png","webpack:////build/source/node_modules/lodash/union.js","webpack:///./notes/mixins/issuable_state.js","webpack:///./notes/mixins/diff_line_note_form.js","webpack:////build/source/node_modules/lodash/words.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/progress_bar/progress_bar.js","webpack:///./notes/event_hub.js","webpack:///./vue_shared/components/content_viewer/viewers/image_viewer.vue","webpack:///vue_shared/components/content_viewer/viewers/image_viewer.vue","webpack:///./vue_shared/components/content_viewer/viewers/image_viewer.vue?b6bc","webpack:///./vue_shared/components/content_viewer/viewers/image_viewer.vue?3b92","webpack:////build/source/node_modules/lodash/_asciiWords.js","webpack:////build/source/node_modules/d3-selection/src/selection/style.js","webpack:///./ci/pipelines_page/components/pipelines_artifacts.vue?4174","webpack:///./vue_shared/components/markdown/markdown_editor.vue","webpack:///vue_shared/components/markdown/markdown_editor.vue","webpack:///./vue_shared/components/markdown/markdown_editor.vue?d0a9","webpack:///./vue_shared/components/markdown/markdown_editor.vue?00ed","webpack:////build/source/node_modules/cron-validator/lib/index.js","webpack:///./vue_shared/components/user_select/user_select.vue","webpack:///./vue_shared/components/user_select/user_select.vue?8112","webpack:///vue_shared/components/user_select/user_select.vue","webpack:///./vue_shared/components/user_select/user_select.vue?7ada","webpack:///./notes/components/discussion_counter.vue","webpack:///./notes/components/discussion_counter.vue?533f","webpack:///notes/components/discussion_counter.vue","webpack:///./notes/components/discussion_counter.vue?17d8","webpack:///./mr_notes/init.js","webpack:///./batch_comments/index.js","webpack:///./mr_notes/init_count.js","webpack:///./mr_notes/discussion_counter.js","webpack:////build/source/ee/app/assets/javascripts/mr_notes/index.js","webpack:///./mr_notes/init_mr_notes.js","webpack:///./merge_requests/components/sticky_header.vue?738b","webpack:///merge_requests/components/sticky_header.vue","webpack:///./merge_requests/components/sticky_header.vue?76a0","webpack:///./merge_requests/components/sticky_header.vue","webpack:///./code_review/signals.js","webpack:///vue_shared/components/mr_more_dropdown.vue","webpack:///./vue_shared/components/mr_more_dropdown.vue?a7d4","webpack:///./vue_shared/components/mr_more_dropdown.vue?1a05","webpack:///./vue_shared/components/mr_more_dropdown.vue","webpack:///./surveys/merge_request_experience/index.js","webpack:///./pages/projects/merge_requests/page.js","webpack:///./pages/projects/merge_requests/init_merge_request_show.js","webpack:///./mr_more_dropdown.js","webpack:////build/source/node_modules/@gitlab/ui/dist/directives/outside/outside.js","webpack:///./smart_interval.js","webpack:///./diffs/i18n.js","webpack:////build/source/node_modules/lodash/_baseAssign.js","webpack:////build/source/node_modules/d3-axis/src/array.js","webpack:////build/source/node_modules/d3-dispatch/src/dispatch.js","webpack:////build/source/node_modules/d3-color/src/define.js","webpack:////build/source/node_modules/d3-color/src/color.js","webpack:////build/source/node_modules/d3-interpolate/src/basis.js","webpack:////build/source/node_modules/d3-interpolate/src/constant.js","webpack:////build/source/node_modules/d3-interpolate/src/color.js","webpack:////build/source/node_modules/d3-interpolate/src/rgb.js","webpack:////build/source/node_modules/d3-interpolate/src/basisClosed.js","webpack:////build/source/node_modules/d3-interpolate/src/date.js","webpack:////build/source/node_modules/d3-interpolate/src/number.js","webpack:////build/source/node_modules/d3-interpolate/src/string.js","webpack:////build/source/node_modules/d3-timer/src/timer.js","webpack:////build/source/node_modules/d3-timer/src/timeout.js","webpack:////build/source/node_modules/d3-transition/src/transition/schedule.js","webpack:////build/source/node_modules/d3-transition/src/interrupt.js","webpack:////build/source/node_modules/d3-interpolate/src/transform/parse.js","webpack:////build/source/node_modules/d3-interpolate/src/transform/decompose.js","webpack:////build/source/node_modules/d3-interpolate/src/transform/index.js","webpack:////build/source/node_modules/d3-transition/src/transition/tween.js","webpack:////build/source/node_modules/d3-transition/src/transition/interpolate.js","webpack:////build/source/node_modules/d3-transition/src/transition/attr.js","webpack:////build/source/node_modules/d3-transition/src/transition/attrTween.js","webpack:////build/source/node_modules/d3-transition/src/transition/delay.js","webpack:////build/source/node_modules/d3-transition/src/transition/duration.js","webpack:////build/source/node_modules/d3-transition/src/transition/ease.js","webpack:////build/source/node_modules/d3-transition/src/transition/on.js","webpack:////build/source/node_modules/d3-transition/src/transition/remove.js","webpack:////build/source/node_modules/d3-transition/src/transition/selection.js","webpack:////build/source/node_modules/d3-transition/src/transition/style.js","webpack:////build/source/node_modules/d3-transition/src/transition/styleTween.js","webpack:////build/source/node_modules/d3-transition/src/transition/textTween.js","webpack:////build/source/node_modules/d3-transition/src/transition/index.js","webpack:////build/source/node_modules/d3-transition/src/transition/select.js","webpack:////build/source/node_modules/d3-transition/src/transition/selectAll.js","webpack:////build/source/node_modules/d3-transition/src/transition/filter.js","webpack:////build/source/node_modules/d3-transition/src/transition/merge.js","webpack:////build/source/node_modules/d3-transition/src/transition/transition.js","webpack:////build/source/node_modules/d3-transition/src/transition/text.js","webpack:////build/source/node_modules/d3-transition/src/transition/end.js","webpack:////build/source/node_modules/d3-transition/src/selection/transition.js","webpack:////build/source/node_modules/d3-ease/src/cubic.js","webpack:////build/source/node_modules/d3-transition/src/selection/index.js","webpack:////build/source/node_modules/d3-transition/src/selection/interrupt.js","webpack:////build/source/node_modules/d3-brush/src/brush.js","webpack:////build/source/node_modules/d3-chord/src/math.js","webpack:////build/source/node_modules/d3-chord/src/array.js","webpack:////build/source/node_modules/d3-collection/src/map.js","webpack:////build/source/node_modules/d3-collection/src/set.js","webpack:////build/source/node_modules/d3-contour/src/array.js","webpack:////build/source/node_modules/d3-quadtree/src/add.js","webpack:////build/source/node_modules/d3-quadtree/src/cover.js","webpack:////build/source/node_modules/d3-quadtree/src/quad.js","webpack:////build/source/node_modules/d3-quadtree/src/x.js","webpack:////build/source/node_modules/d3-quadtree/src/y.js","webpack:////build/source/node_modules/d3-quadtree/src/quadtree.js","webpack:////build/source/node_modules/d3-quadtree/src/data.js","webpack:////build/source/node_modules/d3-quadtree/src/extent.js","webpack:////build/source/node_modules/d3-quadtree/src/find.js","webpack:////build/source/node_modules/d3-quadtree/src/remove.js","webpack:////build/source/node_modules/d3-quadtree/src/root.js","webpack:////build/source/node_modules/d3-quadtree/src/size.js","webpack:////build/source/node_modules/d3-quadtree/src/visit.js","webpack:////build/source/node_modules/d3-quadtree/src/visitAfter.js","webpack:////build/source/node_modules/d3-force/src/simulation.js","webpack:////build/source/node_modules/d3-random/src/defaultSource.js","webpack:////build/source/node_modules/d3-random/src/normal.js","webpack:////build/source/node_modules/d3-random/src/uniform.js","webpack:////build/source/node_modules/d3-random/src/irwinHall.js","webpack:////build/source/node_modules/d3-random/src/logNormal.js","webpack:////build/source/node_modules/d3-random/src/bates.js","webpack:////build/source/node_modules/d3-random/src/exponential.js","webpack:////build/source/node_modules/d3-scale/src/array.js","webpack:////build/source/node_modules/d3-format/src/formatSpecifier.js","webpack:////build/source/node_modules/d3-format/src/formatDecimal.js","webpack:////build/source/node_modules/d3-format/src/exponent.js","webpack:////build/source/node_modules/d3-format/src/formatPrefixAuto.js","webpack:////build/source/node_modules/d3-format/src/defaultLocale.js","webpack:////build/source/node_modules/d3-format/src/formatRounded.js","webpack:////build/source/node_modules/d3-format/src/formatTypes.js","webpack:////build/source/node_modules/d3-format/src/identity.js","webpack:////build/source/node_modules/d3-format/src/locale.js","webpack:////build/source/node_modules/d3-format/src/formatGroup.js","webpack:////build/source/node_modules/d3-format/src/formatNumerals.js","webpack:////build/source/node_modules/d3-format/src/formatTrim.js","webpack:////build/source/node_modules/d3-time/src/interval.js","webpack:////build/source/node_modules/d3-time/src/year.js","webpack:////build/source/node_modules/d3-time/src/month.js","webpack:////build/source/node_modules/d3-time/src/week.js","webpack:////build/source/node_modules/d3-time/src/duration.js","webpack:////build/source/node_modules/d3-time/src/day.js","webpack:////build/source/node_modules/d3-time/src/hour.js","webpack:////build/source/node_modules/d3-time/src/minute.js","webpack:////build/source/node_modules/d3-time/src/second.js","webpack:////build/source/node_modules/d3-time/src/millisecond.js","webpack:////build/source/node_modules/d3-time/src/utcWeek.js","webpack:////build/source/node_modules/d3-time/src/utcDay.js","webpack:////build/source/node_modules/d3-time/src/utcYear.js","webpack:////build/source/node_modules/d3-time-format/src/locale.js","webpack:////build/source/node_modules/d3-time-format/src/defaultLocale.js","webpack:////build/source/node_modules/d3-scale/src/time.js","webpack:////build/source/node_modules/d3-time/src/utcMonth.js","webpack:////build/source/node_modules/d3-time/src/utcHour.js","webpack:////build/source/node_modules/d3-time/src/utcMinute.js","webpack:////build/source/node_modules/d3-voronoi/src/RedBlackTree.js","webpack:////build/source/node_modules/d3-voronoi/src/Edge.js","webpack:////build/source/node_modules/d3-voronoi/src/Cell.js","webpack:////build/source/node_modules/d3-voronoi/src/Circle.js","webpack:////build/source/node_modules/d3-voronoi/src/Beach.js","webpack:////build/source/node_modules/d3-voronoi/src/Diagram.js","webpack:////build/source/node_modules/d3-interpolate/src/zoom.js","webpack:////build/source/node_modules/d3-zoom/src/transform.js","webpack:///./sidebar/queries/update_merge_request_lock.mutation.graphql","webpack:///./sidebar/components/todo_toggle/sidebar_todo_widget.vue","webpack:///sidebar/components/todo_toggle/sidebar_todo_widget.vue","webpack:///./sidebar/components/todo_toggle/sidebar_todo_widget.vue?60df","webpack:///./sidebar/components/todo_toggle/sidebar_todo_widget.vue?a263","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-text.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/dropdown/dropdown_text.js","webpack:////build/source/ee/app/assets/javascripts/vue_shared/security_configuration/graphql/client/queries/shared_drawer_state.query.graphql","webpack:///./vue_shared/issuable/list/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/filter-event.js","webpack:///./vue_shared/components/diff_stats_dropdown.vue?c602","webpack:////build/source/node_modules/d3-sankey/src/align.js","webpack:////build/source/node_modules/d3-sankey/src/constant.js","webpack:////build/source/node_modules/d3-sankey/src/sankey.js","webpack:////build/source/node_modules/d3-shape/src/array.js","webpack:////build/source/node_modules/d3-shape/src/constant.js","webpack:////build/source/node_modules/d3-shape/src/point.js","webpack:////build/source/node_modules/d3-shape/src/link/index.js","webpack:////build/source/node_modules/d3-sankey/src/sankeyLinkHorizontal.js","webpack:///./projects/commit/init_revert_commit_modal.js","webpack:///./sidebar/queries/move_issue.mutation.graphql","webpack:///./issuable/components/status_badge.vue","webpack:///issuable/components/status_badge.vue","webpack:///./issuable/components/status_badge.vue?ad5e","webpack:///./issuable/components/status_badge.vue?6071","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/directives/modal/modal.js","webpack:////build/source/node_modules/modern-screenshot/dist/index.js","webpack:////build/source/node_modules/d3-path/src/path.js","webpack:///./commit/pipelines/utils.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/schema/default_safe.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/bool.js","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/queries/approvals.subscription.graphql","webpack:////build/source/node_modules/lodash/delay.js","webpack:///./notes/components/note_actions/reply_button.vue","webpack:///./notes/components/note_actions/reply_button.vue?fa85","webpack:///notes/components/note_actions/reply_button.vue","webpack:///./notes/components/note_actions/reply_button.vue?ca2e","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/form/form_radio/form_radio.js","webpack:////build/source/node_modules/js-yaml/index.js","webpack:///./notes/stores/utils.js","webpack:///./notes/stores/actions.js","webpack:///./notes/stores/mutation_types.js","webpack:///./notes/stores/collapse_utils.js","webpack:///./notes/stores/getters.js","webpack:///./notes/stores/mutations.js","webpack:///./notes/stores/state.js","webpack:///./notes/stores/modules/index.js","webpack:///./vue_shared/components/notes/timeline_entry_item.vue","webpack:///./vue_shared/components/notes/timeline_entry_item.vue?95e9","webpack:////build/source/node_modules/lodash/clone.js","webpack:////build/source/node_modules/@gitlab/at.js/dist/js/jquery.atwho.js","webpack:///./projects/commit/components/form_modal.vue","webpack:///./projects/commit/components/branches_dropdown.vue?413e","webpack:///projects/commit/components/branches_dropdown.vue","webpack:///./projects/commit/components/branches_dropdown.vue?1b52","webpack:///./projects/commit/components/branches_dropdown.vue","webpack:///./projects/commit/components/projects_dropdown.vue?332e","webpack:///projects/commit/components/projects_dropdown.vue","webpack:///./projects/commit/components/form_modal.vue?e926","webpack:///projects/commit/components/form_modal.vue","webpack:///./projects/commit/components/projects_dropdown.vue?ce14","webpack:///./projects/commit/components/projects_dropdown.vue","webpack:///./projects/commit/components/form_modal.vue?de4c","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/schema/failsafe.js","webpack:///./notes/components/note_form.vue","webpack:///./notes/components/note_form.vue?e4f3","webpack:///notes/components/note_form.vue","webpack:///./notes/components/note_form.vue?ef8a","webpack:////build/source/ee/app/assets/javascripts/vue_shared/security_configuration/graphql/typedefs.graphql","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/scan_result/lib/settings.js","webpack:///./sidebar/components/sidebar_dropdown.vue","webpack:///./sidebar/components/sidebar_dropdown.vue?3b8c","webpack:///sidebar/components/sidebar_dropdown.vue","webpack:///./sidebar/components/sidebar_dropdown.vue?709d","webpack:///./lib/utils/grammar.js","webpack:///./vue_merge_request_widget/components/mr_widget_how_to_merge_modal.vue?f8e4","webpack:///vue_merge_request_widget/components/mr_widget_how_to_merge_modal.vue","webpack:///./vue_merge_request_widget/components/mr_widget_how_to_merge_modal.vue?3469","webpack:///./vue_merge_request_widget/components/mr_widget_how_to_merge_modal.vue","webpack:///./pages/projects/merge_requests/init_checkout_modal.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/scan_result/lib/from_yaml.js","webpack:///./batch_comments/components/draft_note.vue","webpack:///./batch_comments/components/draft_note.vue?4e5e","webpack:///batch_comments/components/draft_note.vue","webpack:///./batch_comments/components/draft_note.vue?c989","webpack:///./ci/pipeline_mini_graph/graphql/mutations/job_cancel.mutation.graphql","webpack:////build/source/node_modules/lodash/_baseInverter.js","webpack:///./vue_merge_request_widget/components/action_buttons.vue","webpack:///./vue_merge_request_widget/components/action_buttons.vue?a563","webpack:///vue_merge_request_widget/components/action_buttons.vue","webpack:///./vue_merge_request_widget/components/action_buttons.vue?c0c7","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/binary.js","webpack:///./ci/pipeline_mini_graph/graphql/fragments/job.fragment.graphql","webpack:////build/source/node_modules/lodash/_createSet.js","webpack:///./vue_shared/mixins/gl_abilities_mixin.js","webpack:///./sidebar/components/severity/severity.vue","webpack:///./sidebar/components/severity/severity.vue?64b6","webpack:///sidebar/components/severity/severity.vue","webpack:///./sidebar/components/severity/severity.vue?f682","webpack:///./lib/utils/http_status.js","webpack:////build/source/ee/app/assets/javascripts/vue_shared/security_reports/mixins/reports_mixin.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/health_status/sidebar_health_status_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/health_status/sidebar_health_status_widget.vue?47be","webpack:///../../../ee/app/assets/javascripts/sidebar/components/health_status/sidebar_health_status_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/health_status/sidebar_health_status_widget.vue?5d31","webpack:////build/source/node_modules/node-libs-browser/node_modules/buffer/index.js","webpack:////build/source/node_modules/esprima/dist/esprima.js","webpack:///./notes/i18n.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/constants.js","webpack:////build/source/node_modules/lodash/_castArrayLikeObject.js","webpack:////build/source/node_modules/d3-selection/src/selection/sparse.js","webpack:////build/source/node_modules/d3-selection/src/selection/enter.js","webpack:////build/source/node_modules/d3-selection/src/selection/data.js","webpack:////build/source/node_modules/d3-selection/src/selection/sort.js","webpack:////build/source/node_modules/d3-selection/src/selection/call.js","webpack:////build/source/node_modules/d3-selection/src/selection/attr.js","webpack:////build/source/node_modules/d3-selection/src/selection/property.js","webpack:////build/source/node_modules/d3-selection/src/selection/classed.js","webpack:////build/source/node_modules/d3-selection/src/selection/text.js","webpack:////build/source/node_modules/d3-selection/src/selection/html.js","webpack:////build/source/node_modules/d3-selection/src/selection/raise.js","webpack:////build/source/node_modules/d3-selection/src/selection/lower.js","webpack:////build/source/node_modules/d3-selection/src/creator.js","webpack:////build/source/node_modules/d3-selection/src/selection/insert.js","webpack:////build/source/node_modules/d3-selection/src/selection/remove.js","webpack:////build/source/node_modules/d3-selection/src/selection/clone.js","webpack:////build/source/node_modules/d3-selection/src/selection/dispatch.js","webpack:////build/source/node_modules/d3-selection/src/selection/index.js","webpack:////build/source/node_modules/d3-selection/src/selection/select.js","webpack:////build/source/node_modules/d3-selection/src/selection/selectAll.js","webpack:////build/source/node_modules/d3-selection/src/selection/filter.js","webpack:////build/source/node_modules/d3-selection/src/constant.js","webpack:////build/source/node_modules/d3-selection/src/selection/exit.js","webpack:////build/source/node_modules/d3-selection/src/selection/join.js","webpack:////build/source/node_modules/d3-selection/src/selection/merge.js","webpack:////build/source/node_modules/d3-selection/src/selection/order.js","webpack:////build/source/node_modules/d3-selection/src/selection/nodes.js","webpack:////build/source/node_modules/d3-selection/src/selection/node.js","webpack:////build/source/node_modules/d3-selection/src/selection/size.js","webpack:////build/source/node_modules/d3-selection/src/selection/empty.js","webpack:////build/source/node_modules/d3-selection/src/selection/each.js","webpack:////build/source/node_modules/d3-selection/src/selection/append.js","webpack:////build/source/node_modules/d3-selection/src/selection/datum.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-colgroup.js","webpack:///./lib/utils/number_utils.js","webpack:////build/source/node_modules/lodash/truncate.js","webpack:////build/source/node_modules/@gitlab/favicon-overlay/lib/index.js","webpack:///./lib/utils/favicon.js","webpack:///./notes/utils.js","webpack:///./vue_merge_request_widget/queries/states/ready_to_merge_merge_request.fragment.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/thead.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-thead.js","webpack:///./vue_merge_request_widget/event_hub.js","webpack:///./diffs/event_hub.js","webpack:////build/source/node_modules/vue-virtual-scroll-list/dist/index.js","webpack:///./behaviors/shortcuts/shortcuts_issuable.js","webpack:///./notes/components/note_header.vue","webpack:///./notes/components/note_header.vue?4b13","webpack:///notes/components/note_header.vue","webpack:///./notes/components/note_header.vue?0c8b","webpack:////build/source/node_modules/lodash/_baseDifference.js","webpack:///./blob/blob_fork_suggestion.js","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/mixins/assign_reviewers_action_button.js","webpack:///./sourcegraph/index.js","webpack:///./notes/components/comment_field_layout.vue","webpack:///vue_shared/components/notes/noteable_warning.vue","webpack:///./vue_shared/components/notes/noteable_warning.vue?e124","webpack:///./vue_shared/components/notes/noteable_warning.vue?2f53","webpack:///./vue_shared/components/notes/noteable_warning.vue","webpack:///./notes/components/email_participants_warning.vue?a204","webpack:///notes/components/email_participants_warning.vue","webpack:///./notes/components/email_participants_warning.vue?3a17","webpack:///./notes/components/email_participants_warning.vue","webpack:///notes/components/comment_field_layout.vue","webpack:///./notes/components/comment_field_layout.vue?fbea","webpack:///./notes/components/comment_field_layout.vue?36e9","webpack:///./vue_shared/components/confidentiality_badge.vue","webpack:///./vue_shared/components/confidentiality_badge.vue?d1d1","webpack:///vue_shared/components/confidentiality_badge.vue","webpack:///./vue_shared/components/confidentiality_badge.vue?05af","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issue_health_status.query.graphql","webpack:////build/source/node_modules/d3-selection/src/namespace.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/constants.js","webpack:///./abuse_reports/components/abuse_category_selector.vue","webpack:///./abuse_reports/components/abuse_category_selector.vue?5b67","webpack:///abuse_reports/components/abuse_category_selector.vue","webpack:///./abuse_reports/components/abuse_category_selector.vue?54dd","webpack:////build/source/node_modules/lodash/_cloneSymbol.js","webpack:///./notes/graphql/note.query.graphql","webpack:///./vue_shared/components/design_management/design_note_pin.vue","webpack:///./vue_shared/components/design_management/design_note_pin.vue?0aca","webpack:///vue_shared/components/design_management/design_note_pin.vue","webpack:///./vue_shared/components/design_management/design_note_pin.vue?84f7","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_issue_update_parent.mutation.graphql","webpack:////build/source/node_modules/lodash/findLastIndex.js","webpack:////build/source/ee/app/assets/javascripts/vue_shared/components/pipeline_account_verification_alert.vue","webpack:///../../../ee/app/assets/javascripts/vue_shared/components/pipeline_account_verification_alert.vue","webpack:////build/source/ee/app/assets/javascripts/vue_shared/components/pipeline_account_verification_alert.vue?5159","webpack:////build/source/ee/app/assets/javascripts/vue_shared/components/pipeline_account_verification_alert.vue?5f17","webpack:///./merge_requests/components/merge_request_header.vue","webpack:///merge_requests/components/merge_request_header.vue","webpack:///./merge_requests/components/merge_request_header.vue?cc29","webpack:///./merge_requests/components/merge_request_header.vue?5fc4","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/common.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/iteration/sidebar_iteration_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/iteration/sidebar_iteration_widget.vue?ac44","webpack:///../../../ee/app/assets/javascripts/sidebar/components/iteration/sidebar_iteration_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/iteration/sidebar_iteration_widget.vue?a955","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/animated_icon/animated_smile_icon.js","webpack:////build/source/node_modules/@floating-ui/dom/dist/floating-ui.dom.esm.js","webpack:///./notes/components/discussion_navigator.vue?16dc","webpack:///notes/components/discussion_navigator.vue","webpack:///./notes/components/discussion_navigator.vue","webpack:///./vue_merge_request_widget/components/approvals/messages.js","webpack:///./vue_merge_request_widget/mixins/approvals.js","webpack:///./vue_merge_request_widget/components/state_container.vue?6aa3","webpack:///vue_merge_request_widget/components/state_container.vue","webpack:///./vue_merge_request_widget/components/state_container.vue?bf44","webpack:///./vue_merge_request_widget/components/state_container.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/policy_approval_settings_icon.vue?a33f","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/policy_approval_settings_icon.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/policy_approval_settings_icon.vue?e89d","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/policy_approval_settings_icon.vue","webpack:///./vue_merge_request_widget/components/approvals/approvals_summary.vue?f728","webpack:///vue_merge_request_widget/components/approvals/approvals_summary.vue","webpack:///./vue_merge_request_widget/components/approvals/approvals_summary.vue?c3d9","webpack:///./vue_merge_request_widget/components/approvals/approvals_summary.vue","webpack:///./vue_merge_request_widget/components/approvals/approvals_summary_optional.vue?487d","webpack:///vue_merge_request_widget/components/approvals/approvals_summary_optional.vue","webpack:///./vue_merge_request_widget/components/approvals/approvals.vue?4ecb","webpack:///vue_merge_request_widget/components/approvals/approvals.vue","webpack:///./vue_merge_request_widget/components/approvals/approvals_summary_optional.vue?84b4","webpack:///./vue_merge_request_widget/components/approvals/approvals_summary_optional.vue","webpack:///./vue_merge_request_widget/components/approvals/approvals.vue?c5b7","webpack:///./vue_merge_request_widget/components/approvals/approvals.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_auth.vue?dd07","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_auth.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_auth.vue?ab18","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_auth.vue","webpack:////build/source/ee/app/assets/javascripts/approvals/components/mr_widget_approval_check/approval_check_popover.vue?bf0b","webpack:///../../../ee/app/assets/javascripts/approvals/components/mr_widget_approval_check/approval_check_popover.vue","webpack:////build/source/ee/app/assets/javascripts/approvals/components/mr_widget_approval_check/approval_check_rule_popover.vue?1805","webpack:///../../../ee/app/assets/javascripts/approvals/components/mr_widget_approval_check/approval_check_rule_popover.vue","webpack:////build/source/ee/app/assets/javascripts/approvals/components/mr_widget_approval_check/approval_check_popover.vue?5028","webpack:////build/source/ee/app/assets/javascripts/approvals/components/mr_widget_approval_check/approval_check_popover.vue","webpack:////build/source/ee/app/assets/javascripts/approvals/components/mr_widget_approval_check/approval_check_rule_popover.vue?36e0","webpack:////build/source/ee/app/assets/javascripts/approvals/components/mr_widget_approval_check/approval_check_rule_popover.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approved_icon.vue?2ef7","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approved_icon.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approved_icon.vue?7ceb","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approved_icon.vue","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/number_of_approvals.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/number_of_approvals.vue?ed28","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/number_of_approvals.vue?6ddd","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/number_of_approvals.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_users_list.vue?03c5","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_users_list.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_users_list.vue?9957","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_users_list.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/utils.js","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_list.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_list.vue?0081","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_footer.vue?3f80","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_footer.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_list.vue?624c","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_list.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals.vue?0a0b","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_footer.vue?fdad","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals_footer.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals.vue?32cc","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/approvals.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/services/mr_widget_service.js","webpack:///./vue_merge_request_widget/stores/get_state_key.js","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/stores/get_state_key.js","webpack:///./lib/utils/finite_state_machine.js","webpack:///./vue_merge_request_widget/stores/mr_widget_store.js","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/stores/mr_widget_store.js","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/stores/state_maps.js","webpack:///./lib/utils/notify.js","webpack:///./vue_merge_request_widget/components/loading.vue?e57d","webpack:///vue_merge_request_widget/components/loading.vue","webpack:///./vue_merge_request_widget/components/loading.vue?6166","webpack:///./vue_merge_request_widget/components/loading.vue","webpack:///./vue_merge_request_widget/components/mr_widget_alert_message.vue?7cef","webpack:///vue_merge_request_widget/components/mr_widget_alert_message.vue","webpack:///./vue_merge_request_widget/components/mr_widget_alert_message.vue?c7a1","webpack:///./vue_merge_request_widget/components/mr_widget_alert_message.vue","webpack:///./vue_merge_request_widget/stores/artifacts_list/mutation_types.js","webpack:///./vue_merge_request_widget/stores/artifacts_list/actions.js","webpack:///./vue_merge_request_widget/stores/artifacts_list/getters.js","webpack:///./vue_merge_request_widget/stores/artifacts_list/mutations.js","webpack:///./vue_merge_request_widget/stores/artifacts_list/index.js","webpack:///./vue_merge_request_widget/components/artifacts_list.vue?2097","webpack:///vue_merge_request_widget/components/artifacts_list.vue","webpack:///./vue_merge_request_widget/components/artifacts_list.vue?dfda","webpack:///./vue_merge_request_widget/components/artifacts_list.vue","webpack:///./vue_merge_request_widget/components/mr_collapsible_extension.vue?4afa","webpack:///vue_merge_request_widget/components/mr_collapsible_extension.vue","webpack:///./vue_merge_request_widget/components/mr_collapsible_extension.vue?525c","webpack:///./vue_merge_request_widget/components/mr_collapsible_extension.vue","webpack:///./vue_merge_request_widget/components/artifacts_list_app.vue?c9ea","webpack:///vue_merge_request_widget/components/artifacts_list_app.vue","webpack:///./vue_merge_request_widget/stores/artifacts_list/state.js","webpack:///./vue_merge_request_widget/components/artifacts_list_app.vue?8b30","webpack:///./vue_merge_request_widget/components/artifacts_list_app.vue","webpack:///./vue_merge_request_widget/components/deployment/deployment_actions.vue","webpack:///./vue_merge_request_widget/components/deployment/deployment_action_button.vue?94fc","webpack:///vue_merge_request_widget/components/deployment/deployment_action_button.vue","webpack:///./vue_merge_request_widget/components/deployment/constants.js","webpack:///./vue_merge_request_widget/components/deployment/deployment_action_button.vue?059d","webpack:///./vue_merge_request_widget/components/deployment/deployment_action_button.vue","webpack:///./vue_merge_request_widget/components/deployment/deployment_view_button.vue?4fa8","webpack:///vue_merge_request_widget/components/deployment/deployment_view_button.vue","webpack:///./vue_merge_request_widget/components/deployment/deployment_actions.vue?1e74","webpack:///vue_merge_request_widget/components/deployment/deployment_actions.vue","webpack:///./vue_merge_request_widget/components/deployment/deployment_view_button.vue?0a9b","webpack:///./vue_merge_request_widget/components/deployment/deployment_view_button.vue","webpack:///./vue_merge_request_widget/components/deployment/deployment_actions.vue?062f","webpack:///./vue_merge_request_widget/components/deployment/deployment_info.vue?ddae","webpack:///vue_merge_request_widget/components/deployment/deployment_info.vue","webpack:///./vue_merge_request_widget/components/deployment/deployment.vue?57b2","webpack:///vue_merge_request_widget/components/deployment/deployment.vue","webpack:///./vue_merge_request_widget/components/deployment/deployment_info.vue?53e4","webpack:///./vue_merge_request_widget/components/deployment/deployment_info.vue","webpack:///./vue_merge_request_widget/components/deployment/deployment_list.vue?d9a9","webpack:///vue_merge_request_widget/components/deployment/deployment_list.vue","webpack:///./vue_merge_request_widget/components/deployment/deployment.vue?68b4","webpack:///./vue_merge_request_widget/components/deployment/deployment.vue","webpack:///./vue_merge_request_widget/components/deployment/deployment_list.vue?b071","webpack:///./vue_merge_request_widget/components/deployment/deployment_list.vue","webpack:///./vue_merge_request_widget/components/mr_widget_container.vue?a182","webpack:///./vue_merge_request_widget/components/mr_widget_container.vue","webpack:///ci/pipelines_page/components/pipelines_artifacts.vue","webpack:///./ci/pipelines_page/components/pipelines_artifacts.vue?7574","webpack:///./ci/pipelines_page/components/pipelines_artifacts.vue?77bd","webpack:///./ci/pipelines_page/components/pipelines_artifacts.vue?414d","webpack:///./ci/pipelines_page/components/pipelines_artifacts.vue","webpack:///./vue_merge_request_widget/mixins/run_pipeline.js","webpack:///./vue_merge_request_widget/components/mr_widget_pipeline.vue?6fae","webpack:///vue_merge_request_widget/components/mr_widget_pipeline.vue","webpack:///./vue_merge_request_widget/components/mr_widget_pipeline_container.vue?5a91","webpack:///vue_merge_request_widget/components/mr_widget_pipeline_container.vue","webpack:///./vue_merge_request_widget/components/mr_widget_pipeline.vue?9923","webpack:///./vue_merge_request_widget/components/mr_widget_pipeline.vue","webpack:///./vue_merge_request_widget/components/mr_widget_pipeline_container.vue?51ba","webpack:///./vue_merge_request_widget/components/mr_widget_pipeline_container.vue","webpack:///./vue_shared/components/dismissible_container.vue?0272","webpack:///vue_shared/components/dismissible_container.vue","webpack:///./vue_shared/components/dismissible_container.vue?56b1","webpack:///./vue_shared/components/dismissible_container.vue","webpack:///./vue_merge_request_widget/components/mr_widget_icon.vue?4aa2","webpack:///vue_merge_request_widget/components/mr_widget_icon.vue","webpack:///./vue_merge_request_widget/components/mr_widget_icon.vue?ca90","webpack:///./vue_merge_request_widget/components/mr_widget_icon.vue","webpack:///vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue","webpack:///./vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue?eb2d","webpack:///./vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue?f690","webpack:///./vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue","webpack:///vue_merge_request_widget/components/mr_widget_migrate_jenkins.vue","webpack:///./vue_merge_request_widget/components/mr_widget_migrate_jenkins.vue?e43b","webpack:///./vue_merge_request_widget/components/mr_widget_migrate_jenkins.vue?22b7","webpack:///./vue_merge_request_widget/components/mr_widget_migrate_jenkins.vue","webpack:///./vue_merge_request_widget/components/source_branch_removal_status.vue?8305","webpack:///vue_merge_request_widget/components/source_branch_removal_status.vue","webpack:///./vue_merge_request_widget/components/source_branch_removal_status.vue?89cc","webpack:///./vue_merge_request_widget/components/source_branch_removal_status.vue","webpack:///./vue_merge_request_widget/components/bold_text.vue?a3d8","webpack:///vue_merge_request_widget/components/bold_text.vue","webpack:///./vue_merge_request_widget/components/bold_text.vue?6972","webpack:///./vue_merge_request_widget/components/bold_text.vue","webpack:///vue_merge_request_widget/components/states/mr_widget_archived.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_archived.vue?903e","webpack:///./vue_merge_request_widget/components/states/mr_widget_archived.vue?4aaa","webpack:///./vue_merge_request_widget/components/states/mr_widget_archived.vue","webpack:///./vue_merge_request_widget/mixins/auto_merge.js","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/mixins/auto_merge.js","webpack:///./vue_merge_request_widget/components/mr_widget_author.vue?7895","webpack:///vue_merge_request_widget/components/mr_widget_author.vue","webpack:///./vue_merge_request_widget/components/mr_widget_author.vue?8dfc","webpack:///./vue_merge_request_widget/components/mr_widget_author.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue?698a","webpack:///vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue?80f5","webpack:///./vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_auto_merge_failed.vue?1a5b","webpack:///vue_merge_request_widget/components/states/mr_widget_auto_merge_failed.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_auto_merge_failed.vue?9ee6","webpack:///./vue_merge_request_widget/components/states/mr_widget_auto_merge_failed.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_checking.vue?c550","webpack:///vue_merge_request_widget/components/states/mr_widget_checking.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_checking.vue?9c32","webpack:///./vue_merge_request_widget/components/states/mr_widget_checking.vue","webpack:///./vue_merge_request_widget/i18n.js","webpack:///vue_merge_request_widget/components/states/mr_widget_preparing.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_preparing.vue?e05c","webpack:///./vue_merge_request_widget/components/states/mr_widget_preparing.vue?eec1","webpack:///./vue_merge_request_widget/components/states/mr_widget_preparing.vue","webpack:///./vue_merge_request_widget/components/mr_widget_author_time.vue?aed3","webpack:///vue_merge_request_widget/components/mr_widget_author_time.vue","webpack:///./vue_merge_request_widget/components/mr_widget_author_time.vue?a1a2","webpack:///./vue_merge_request_widget/components/mr_widget_author_time.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_closed.vue?b487","webpack:///vue_merge_request_widget/components/states/mr_widget_closed.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_closed.vue?159d","webpack:///./vue_merge_request_widget/components/states/mr_widget_closed.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_failed_to_merge.vue?d739","webpack:///vue_merge_request_widget/components/states/mr_widget_failed_to_merge.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_failed_to_merge.vue?1d45","webpack:///./vue_merge_request_widget/components/states/mr_widget_failed_to_merge.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_merged.vue?d4b1","webpack:///vue_merge_request_widget/components/states/mr_widget_merged.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_merged.vue?308e","webpack:///./vue_merge_request_widget/components/states/mr_widget_merged.vue","webpack:///vue_merge_request_widget/components/states/mr_widget_merging.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_merging.vue?e1b4","webpack:///./vue_merge_request_widget/components/states/mr_widget_merging.vue?8194","webpack:///./vue_merge_request_widget/components/states/mr_widget_merging.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_missing_branch.vue?36b9","webpack:///vue_merge_request_widget/components/states/mr_widget_missing_branch.vue","webpack:///./vue_merge_request_widget/components/states/mr_widget_missing_branch.vue?5200","webpack:///./vue_merge_request_widget/components/states/mr_widget_missing_branch.vue","webpack:///./vue_merge_request_widget/components/states/nothing_to_merge.vue?2e77","webpack:///vue_merge_request_widget/components/states/nothing_to_merge.vue","webpack:///./vue_merge_request_widget/components/states/nothing_to_merge.vue?1cf6","webpack:///./vue_merge_request_widget/components/states/nothing_to_merge.vue","webpack:///./vue_merge_request_widget/mixins/ready_to_merge.js","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/mixins/ready_to_merge.js","webpack:///vue_merge_request_widget/components/added_commit_message.vue","webpack:///./vue_merge_request_widget/components/added_commit_message.vue?7261","webpack:///./vue_merge_request_widget/components/added_commit_message.vue?7c51","webpack:///./vue_merge_request_widget/components/added_commit_message.vue","webpack:///./vue_merge_request_widget/components/mr_widget_related_links.vue?9ccc","webpack:///vue_merge_request_widget/components/mr_widget_related_links.vue","webpack:///./vue_merge_request_widget/components/mr_widget_related_links.vue?3c30","webpack:///./vue_merge_request_widget/components/mr_widget_related_links.vue","webpack:///./vue_merge_request_widget/components/states/commit_edit.vue?d083","webpack:///vue_merge_request_widget/components/states/commit_edit.vue","webpack:///./vue_merge_request_widget/components/states/commit_edit.vue?6776","webpack:///./vue_merge_request_widget/components/states/commit_edit.vue","webpack:///./vue_merge_request_widget/components/states/commit_message_dropdown.vue?05dc","webpack:///vue_merge_request_widget/components/states/commit_message_dropdown.vue","webpack:///./vue_merge_request_widget/components/states/commit_message_dropdown.vue?231f","webpack:///./vue_merge_request_widget/components/states/commit_message_dropdown.vue","webpack:///./vue_merge_request_widget/components/states/squash_before_merge.vue?1adf","webpack:///vue_merge_request_widget/components/states/squash_before_merge.vue","webpack:///./vue_merge_request_widget/components/states/squash_before_merge.vue?4cbc","webpack:///./vue_merge_request_widget/components/states/squash_before_merge.vue","webpack:///./vue_merge_request_widget/components/states/merge_failed_pipeline_confirmation_dialog.vue?8f34","webpack:///vue_merge_request_widget/components/states/merge_failed_pipeline_confirmation_dialog.vue","webpack:///./vue_merge_request_widget/components/states/merge_failed_pipeline_confirmation_dialog.vue?faba","webpack:///./vue_merge_request_widget/components/states/merge_failed_pipeline_confirmation_dialog.vue","webpack:///vue_merge_request_widget/components/states/ready_to_merge.vue","webpack:///./vue_merge_request_widget/components/states/ready_to_merge.vue?074f","webpack:///./vue_merge_request_widget/components/states/ready_to_merge.vue?e30a","webpack:///./vue_merge_request_widget/components/states/ready_to_merge.vue","webpack:///./vue_merge_request_widget/components/states/sha_mismatch.vue?a2fb","webpack:///vue_merge_request_widget/components/states/sha_mismatch.vue","webpack:///./vue_merge_request_widget/components/states/sha_mismatch.vue?0645","webpack:///./vue_merge_request_widget/components/states/sha_mismatch.vue","webpack:///./vue_merge_request_widget/components/widget/app.vue?0eff","webpack:///vue_merge_request_widget/components/widget/app.vue","webpack:///./vue_merge_request_widget/components/widget/app.vue?0e21","webpack:///./vue_merge_request_widget/components/widget/app.vue","webpack:///./vue_merge_request_widget/components/states/new_ready_to_merge.vue?d704","webpack:///vue_merge_request_widget/components/states/new_ready_to_merge.vue","webpack:///./vue_merge_request_widget/components/states/new_ready_to_merge.vue?9ae7","webpack:///./vue_merge_request_widget/components/states/new_ready_to_merge.vue","webpack:///./vue_merge_request_widget/components/merge_checks.vue?8547","webpack:///vue_merge_request_widget/components/merge_checks.vue","webpack:///./vue_merge_request_widget/components/merge_checks.vue?7d8d","webpack:///./vue_merge_request_widget/components/merge_checks.vue","webpack:///./vue_merge_request_widget/mr_widget_options.vue?36d4","webpack:///vue_merge_request_widget/mr_widget_options.vue","webpack:///./vue_merge_request_widget/mr_widget_options.vue?df11","webpack:///./vue_merge_request_widget/mr_widget_options.vue","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_jira_association_missing.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_jira_association_missing.vue?d1c2","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_jira_association_missing.vue?8742","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_jira_association_missing.vue","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_policy_violation.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_policy_violation.vue?5c8d","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_policy_violation.vue?749d","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_policy_violation.vue","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_secondary_geo_node.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_secondary_geo_node.vue?319b","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_secondary_geo_node.vue?bd97","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/states/mr_widget_secondary_geo_node.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/widget/app.vue?950a","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/components/widget/app.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/widget/app.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue?f50d","webpack:///../../../ee/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue?2da3","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/mr_widget_options.vue","webpack:///./vue_merge_request_widget/index.js","webpack:///./mr_notes/init_notes.js","webpack:///./mr_notes/mount_app.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/td.js","webpack:///./diffs/components/diff_file_header.vue","webpack:///./diffs/components/diff_file_header.vue?59cd","webpack:///diffs/components/diff_file_header.vue","webpack:///./diffs/components/diff_file_header.vue?0186","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_item.js","webpack:///./issuable/components/csv_import_export_buttons.vue","webpack:///./issuable/components/csv_export_modal.vue?ca45","webpack:///issuable/components/csv_export_modal.vue","webpack:///./issuable/components/csv_export_modal.vue?09d3","webpack:///./issuable/components/csv_export_modal.vue","webpack:///./issuable/components/csv_import_modal.vue?9736","webpack:///issuable/components/csv_import_modal.vue","webpack:///./issuable/components/csv_import_modal.vue?0e79","webpack:///./issuable/components/csv_import_modal.vue","webpack:///./issuable/components/csv_import_export_buttons.vue?2b71","webpack:///issuable/components/csv_import_export_buttons.vue","webpack:///./issuable/components/csv_import_export_buttons.vue?01a0","webpack:////build/source/node_modules/@floating-ui/utils/dist/floating-ui.utils.esm.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/utils.js","webpack:///./ci/mixins/delayed_job_mixin.js","webpack:///./batch_comments/stores/modules/batch_comments/mutation_types.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/th.js","webpack:///./zen_mode.js","webpack:////build/source/node_modules/lodash/uniqBy.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/epic_ancestors.query.graphql","webpack:///./notes/components/comment_type_dropdown.vue","webpack:///./notes/components/comment_type_dropdown.vue?30de","webpack:///notes/components/comment_type_dropdown.vue","webpack:///./notes/components/comment_type_dropdown.vue?fa53","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue?c50c","webpack:///vue_shared/components/user_avatar/user_avatar_link.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue?d6b5","webpack:///./sidebar/components/labels/labels_select_widget/labels_select_root.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue?9ca6","webpack:///sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue?1e44","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents_labels_view.vue","webpack:///./sidebar/components/labels/labels_select_widget/utils.js","webpack:///sidebar/components/labels/labels_select_widget/dropdown_contents.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents.vue?f68a","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents.vue?fcbc","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_contents.vue","webpack:///./sidebar/components/labels/labels_select_widget/embedded_labels_list.vue?8b9d","webpack:///sidebar/components/labels/labels_select_widget/embedded_labels_list.vue","webpack:///./sidebar/components/labels/labels_select_widget/embedded_labels_list.vue?5075","webpack:///./sidebar/components/labels/labels_select_widget/embedded_labels_list.vue","webpack:///./sidebar/components/labels/labels_select_widget/labels_select_root.vue?d5a3","webpack:///sidebar/components/labels/labels_select_widget/labels_select_root.vue","webpack:///./sidebar/components/labels/labels_select_widget/labels_select_root.vue?3d0f","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/cve_id_request/cve_id_request.vue?0155","webpack:///../../../ee/app/assets/javascripts/sidebar/components/cve_id_request/cve_id_request.vue","webpack:///./helpers/cve_id_request_helper.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/cve_id_request/cve_id_request.vue?445d","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/cve_id_request/cve_id_request.vue","webpack:///../../../ee/app/assets/javascripts/sidebar/components/iteration/iteration_dropdown.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/iteration/iteration_dropdown.vue?842a","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/iteration/iteration_dropdown.vue?961f","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/iteration/iteration_dropdown.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_help_state.vue?24d6","webpack:///../../../ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_help_state.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_help_state.vue?4e19","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_help_state.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_collapsed_state.vue?75e8","webpack:///../../../ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_collapsed_state.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_collapsed_state.vue?7010","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policy_collapsed_state.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policies_empty_state.vue?5abf","webpack:///../../../ee/app/assets/javascripts/sidebar/components/incidents/escalation_policies_empty_state.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policies_empty_state.vue?6ad6","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_policies_empty_state.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/sidebar_escalation_policy.vue?2279","webpack:///../../../ee/app/assets/javascripts/sidebar/components/incidents/sidebar_escalation_policy.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/sidebar_escalation_policy.vue?ecfc","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/sidebar_escalation_policy.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/mount_sidebar.js","webpack:////build/source/ee/app/assets/javascripts/vue_shared/security_configuration/graphql/resolvers/resolvers.js","webpack:////build/source/ee/app/assets/javascripts/vue_shared/security_configuration/graphql/provider.js","webpack:///./vue_merge_request_widget/queries/get_state.subscription.graphql","webpack:///./notes/components/noteable_note.vue","webpack:///./notes/components/note_actions/timeline_event_button.vue?039f","webpack:///notes/components/note_actions/timeline_event_button.vue","webpack:///./notes/components/note_actions/timeline_event_button.vue?e00b","webpack:///./notes/components/note_actions/timeline_event_button.vue","webpack:///./notes/components/note_actions.vue?0a41","webpack:///notes/components/note_actions.vue","webpack:///./notes/components/note_actions.vue?f82a","webpack:///./notes/components/note_actions.vue","webpack:///./notes/components/note_attachment.vue?9e90","webpack:///notes/components/note_attachment.vue","webpack:///./notes/components/note_attachment.vue?3be3","webpack:///./notes/components/note_attachment.vue","webpack:///./notes/components/note_awards_list.vue?bce5","webpack:///notes/components/note_awards_list.vue","webpack:///./notes/components/note_awards_list.vue?39f2","webpack:///./notes/components/note_awards_list.vue","webpack:///./notes/components/note_body.vue?efe9","webpack:///notes/components/note_body.vue","webpack:///./notes/components/note_body.vue?522c","webpack:///./notes/components/note_body.vue","webpack:///./notes/components/noteable_note.vue?af54","webpack:///notes/components/noteable_note.vue","webpack:///./notes/components/noteable_note.vue?8bfa","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/graphql/queries/get_file.query.graphql","webpack:///./vue_shared/directives/autofocusonshow.js","webpack:////build/source/node_modules/core-js/internals/regexp-flags.js","webpack:////build/source/node_modules/isarray/index.js","webpack:////build/source/ee/app/assets/javascripts/approvals/components/rules/empty_rule_approvers.vue","webpack:////build/source/ee/app/assets/javascripts/approvals/components/rules/empty_rule_approvers.vue?8dd1","webpack:///../../../ee/app/assets/javascripts/approvals/components/rules/empty_rule_approvers.vue","webpack:////build/source/ee/app/assets/javascripts/approvals/components/rules/empty_rule_approvers.vue?bd36","webpack:////build/source/node_modules/lodash/_initCloneArray.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-header.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/dropdown/dropdown_section_header.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/tbody.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody-row.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-tbody.js","webpack:////build/source/node_modules/immer/dist/immer.esm.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issue_weight.query.graphql","webpack:///notes/components/discussion_notes_replies_wrapper.vue","webpack:///./notes/components/discussion_notes_replies_wrapper.vue?2484","webpack:///./lib/utils/vue3compat/normalize_children.js","webpack:///./notes/components/discussion_notes_replies_wrapper.vue","webpack:///./notes/components/note_signed_out_widget.vue","webpack:///./notes/components/note_signed_out_widget.vue?5189","webpack:///notes/components/note_signed_out_widget.vue","webpack:///./notes/components/note_signed_out_widget.vue?69f8","webpack:///./vue_shared/components/notes/skeleton_note.vue","webpack:///./vue_shared/components/notes/skeleton_note.vue?f249","webpack:///vue_shared/components/notes/skeleton_note.vue","webpack:///./vue_shared/components/notes/skeleton_note.vue?55c3","webpack:///./issuable/constants.js","webpack:///./notes/mixins/noteable.js","webpack:////build/source/ee/app/assets/javascripts/iterations/components/iteration_title.vue","webpack:////build/source/ee/app/assets/javascripts/iterations/components/iteration_title.vue?94c9","webpack:///../../../ee/app/assets/javascripts/iterations/components/iteration_title.vue","webpack:////build/source/ee/app/assets/javascripts/iterations/components/iteration_title.vue?b170","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/schema.js","webpack:///./notes/components/note_edited_text.vue","webpack:///./notes/components/note_edited_text.vue?42f6","webpack:///notes/components/note_edited_text.vue","webpack:///./notes/components/note_edited_text.vue?7674","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/int.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_search_input.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_group.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox.js","webpack:///./notes/components/notes_app.vue","webpack:///./notes/components/note_preview.vue?6047","webpack:///notes/components/note_preview.vue","webpack:///./notes/components/note_preview.vue?2d16","webpack:///./notes/components/note_preview.vue","webpack:///./notes/components/comment_form.vue?efb9","webpack:///notes/components/comment_form.vue","webpack:///./notes/components/comment_form.vue?74ee","webpack:///./notes/components/comment_form.vue","webpack:///./notes/components/discussion_filter_note.vue?3b85","webpack:///notes/components/discussion_filter_note.vue","webpack:///./notes/components/discussion_filter_note.vue?f4a4","webpack:///./notes/components/discussion_filter_note.vue","webpack:///./notes/components/ordered_layout.vue?a400","webpack:///notes/components/ordered_layout.vue","webpack:///./notes/components/ordered_layout.vue","webpack:///./notes/components/sidebar_subscription.vue?b9f5","webpack:///notes/components/sidebar_subscription.vue","webpack:///./notes/components/sidebar_subscription.vue","webpack:///notes/components/discussion_filter.vue","webpack:///./notes/components/discussion_filter.vue?3dbe","webpack:///./notes/components/notes_activity_header.vue?2f16","webpack:///notes/components/notes_activity_header.vue","webpack:///./notes/components/discussion_filter.vue?7ea1","webpack:///./notes/components/discussion_filter.vue","webpack:///./notes/components/notes_app.vue?584c","webpack:///notes/components/notes_app.vue","webpack:///./notes/components/notes_activity_header.vue?d0c9","webpack:///./notes/components/notes_activity_header.vue","webpack:///./notes/components/notes_app.vue?da28","webpack:////build/source/node_modules/lodash/uniq.js","webpack:////build/source/node_modules/lodash/_baseUniq.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/scan_result/lib/vulnerability_states.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/scan_result/lib/filters.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/scan_result/lib/index.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/set.js","webpack:////build/source/node_modules/lodash/isMap.js","webpack:///./sidebar/components/confidential/sidebar_confidentiality_widget.vue","webpack:///./sidebar/components/confidential/sidebar_confidentiality_content.vue?05e7","webpack:///sidebar/components/confidential/sidebar_confidentiality_content.vue","webpack:///./sidebar/components/confidential/sidebar_confidentiality_content.vue?a60c","webpack:///./sidebar/components/confidential/sidebar_confidentiality_content.vue","webpack:///./sidebar/components/confidential/sidebar_confidentiality_form.vue?78e9","webpack:///sidebar/components/confidential/sidebar_confidentiality_form.vue","webpack:///./sidebar/components/confidential/sidebar_confidentiality_form.vue?f31e","webpack:///./sidebar/components/confidential/sidebar_confidentiality_form.vue","webpack:///sidebar/components/confidential/sidebar_confidentiality_widget.vue","webpack:///./sidebar/components/confidential/sidebar_confidentiality_widget.vue?249e","webpack:///./sidebar/components/confidential/sidebar_confidentiality_widget.vue?c4ed","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/merge.js","webpack:///./vue_merge_request_widget/services/mr_widget_service.js","webpack:///./pages/projects/merge_requests/queries/diff_generated.subscription.graphql","webpack:///./sidebar/components/move/issuable_move_dropdown.vue","webpack:///./sidebar/components/move/issuable_move_dropdown.vue?7f83","webpack:///sidebar/components/move/issuable_move_dropdown.vue","webpack:///./sidebar/components/move/issuable_move_dropdown.vue?ce92","webpack:////build/source/node_modules/lodash/_createInverter.js","webpack:////build/source/node_modules/d3-selection/src/namespaces.js","webpack:///./projects/commit/store/mutation_types.js","webpack:///./projects/commit/store/actions.js","webpack:///./projects/commit/store/getters.js","webpack:///./projects/commit/store/mutations.js","webpack:///./projects/commit/store/index.js","webpack:///./projects/commit/store/state.js","webpack:///./vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue","webpack:///vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue","webpack:///./vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue?bc46","webpack:///./vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue?b534","webpack:////build/source/node_modules/@gitlab/ui/dist/components/utilities/intersection_observer/intersection_observer.js","webpack:///./vue_merge_request_widget/queries/states/missing_branch.query.graphql","webpack:///./notes/components/discussion_resolve_button.vue","webpack:///./notes/components/discussion_resolve_button.vue?c7be","webpack:///notes/components/discussion_resolve_button.vue","webpack:///./notes/components/discussion_resolve_button.vue?b5ab","webpack:////build/source/ee/app/assets/javascripts/security_dashboard/constants.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/scan_result/lib/actions.js","webpack:///./vue_merge_request_widget/components/checks/constants.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/disclosure/disclosure_dropdown_group.js","webpack:///./notes/components/noteable_discussion.vue","webpack:///./notes/components/diff_discussion_header.vue?00cb","webpack:///notes/components/diff_discussion_header.vue","webpack:///./notes/components/diff_discussion_header.vue?71f7","webpack:///./notes/components/diff_discussion_header.vue","webpack:///notes/components/diff_with_note.vue","webpack:///./notes/components/diff_with_note.vue?2cbc","webpack:///./notes/components/diff_with_note.vue?969c","webpack:///./notes/components/diff_with_note.vue","webpack:///./notes/components/discussion_resolve_with_issue_button.vue?aa9d","webpack:///notes/components/discussion_resolve_with_issue_button.vue","webpack:///./notes/components/discussion_resolve_with_issue_button.vue?814e","webpack:///./notes/components/discussion_resolve_with_issue_button.vue","webpack:///./notes/components/discussion_actions.vue?78e2","webpack:///notes/components/discussion_actions.vue","webpack:///./notes/components/discussion_actions.vue?9023","webpack:///./notes/components/discussion_actions.vue","webpack:///./notes/components/discussion_notes.vue?d80d","webpack:///notes/components/discussion_notes.vue","webpack:///./notes/components/discussion_notes.vue?e01a","webpack:///./notes/components/discussion_notes.vue","webpack:///./notes/components/noteable_discussion.vue?70dc","webpack:///notes/components/noteable_discussion.vue","webpack:///./notes/components/noteable_discussion.vue?719c","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issuable_epic.subscription.graphql","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/exception.js","webpack:////build/source/node_modules/lodash/_copySymbols.js","webpack:///./projects/commit/init_cherry_pick_commit_modal.js","webpack:////build/source/ee/app/assets/javascripts/issues/list/queries/get_issues_counts.query.graphql","webpack:///./labels/create_label_dropdown.js","webpack:///./labels/labels_select.js","webpack:///./notes/mixins/discussion_navigation.js","webpack:///./vue_shared/components/notes/system_note.vue","webpack:////build/source/ee/app/assets/javascripts/notes/mixins/description_version_history.js","webpack:///vue_shared/components/notes/system_note.vue","webpack:///./vue_shared/components/notes/system_note.vue?a7df","webpack:///./vue_shared/components/notes/system_note.vue?dbb7","webpack:///./notes/components/discussion_reply_placeholder.vue","webpack:///./notes/components/discussion_reply_placeholder.vue?cbcc","webpack:///notes/components/discussion_reply_placeholder.vue","webpack:///./notes/components/discussion_reply_placeholder.vue?656a","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/iteration.fragment.graphql","webpack:///./lib/utils/poll.js","webpack:///./sidebar/components/copy/copyable_field.vue","webpack:///./sidebar/components/copy/copyable_field.vue?079c","webpack:///sidebar/components/copy/copyable_field.vue","webpack:///./sidebar/components/copy/copyable_field.vue?df3a","webpack:///./sidebar/components/todo_toggle/todo_button.vue","webpack:///./sidebar/components/todo_toggle/todo_button.vue?b16f","webpack:///sidebar/components/todo_toggle/todo_button.vue","webpack:///./sidebar/components/todo_toggle/todo_button.vue?7910","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/omap.js","webpack:///./diffs/utils/file_reviews.js","webpack:///./right_sidebar.js","webpack:///./lib/utils/simple_poll.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/scope/constants.js","webpack:///./sidebar/components/participants/sidebar_participants_widget.vue","webpack:///./sidebar/components/participants/sidebar_participants.vue?8f90","webpack:///sidebar/components/participants/sidebar_participants.vue","webpack:///./sidebar/components/participants/sidebar_participants.vue?ffee","webpack:///./sidebar/components/participants/sidebar_participants.vue","webpack:///./sidebar/components/participants/sidebar_participants_widget.vue?676a","webpack:///sidebar/components/participants/sidebar_participants_widget.vue","webpack:///./sidebar/components/participants/sidebar_participants_widget.vue?f368","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/search_box_by_type/search_box_by_type.js","webpack:///./sidebar/components/severity/sidebar_severity_widget.vue","webpack:///./sidebar/components/severity/sidebar_severity_widget.vue?6d30","webpack:///sidebar/components/severity/sidebar_severity_widget.vue","webpack:///./sidebar/components/severity/sidebar_severity_widget.vue?a42c","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/graphql/mutations/create_policy.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_escalation_policies.query.graphql","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/str.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/toggle/toggle.js","webpack:///./diffs/utils/queue_events.js","webpack:////build/source/node_modules/d3-selection/src/window.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/label/label.js","webpack:///./vue_merge_request_widget/queries/states/ready_to_merge.fragment.graphql","webpack:////build/source/node_modules/core-js/modules/es.regexp.flags.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/mixins/has-listener.js","webpack:///./vue_merge_request_widget/queries/states/ready_to_merge.subscription.graphql","webpack:///./security_configuration/graphql/configure_iac.mutation.graphql","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/queries/states/merge_train_position.fragment.graphql","webpack:///./sidebar/components/sidebar_editable_item.vue","webpack:///./sidebar/components/sidebar_editable_item.vue?0348","webpack:///sidebar/components/sidebar_editable_item.vue","webpack:///./sidebar/components/sidebar_editable_item.vue?6457","webpack:///./ci/constants.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_issue_parent.query.graphql","webpack:///./diffs/components/diff_stats.vue","webpack:///./diffs/components/diff_stats.vue?9cf2","webpack:///diffs/components/diff_stats.vue","webpack:///./diffs/components/diff_stats.vue?a622","webpack:///./sidebar/components/assignees/sidebar_assignees_widget.vue","webpack:///./sidebar/components/assignees/assignees_realtime.vue?4bc8","webpack:///sidebar/components/assignees/assignees_realtime.vue","webpack:///./sidebar/components/assignees/assignees_realtime.vue","webpack:///./sidebar/components/assignees/issuable_assignees.vue?6926","webpack:///sidebar/components/assignees/issuable_assignees.vue","webpack:///./sidebar/components/assignees/issuable_assignees.vue?cb0e","webpack:///./sidebar/components/assignees/issuable_assignees.vue","webpack:///./sidebar/components/assignees/sidebar_invite_members.vue?a559","webpack:///sidebar/components/assignees/sidebar_invite_members.vue","webpack:///./sidebar/components/assignees/sidebar_invite_members.vue?0e62","webpack:///./sidebar/components/assignees/sidebar_invite_members.vue","webpack:///sidebar/components/assignees/sidebar_assignees_widget.vue","webpack:///./sidebar/components/assignees/sidebar_assignees_widget.vue?e4e9","webpack:///./sidebar/components/assignees/sidebar_assignees_widget.vue?c10d","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/map.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/seq.js","webpack:////build/source/node_modules/lodash/isRegExp.js","webpack:////build/source/node_modules/lodash/_hasUnicodeWord.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue","webpack:///../../../ee/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue?d7a9","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/sidebar_dropdown_widget.vue?8fb0","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/avatar_link/avatar_link.js","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/tr.js","webpack:///./graphql_shared/queries/merge_request.query.graphql","webpack:////build/source/node_modules/lodash/_asciiSize.js","webpack:////build/source/node_modules/lodash/_copySymbolsIn.js","webpack:////build/source/node_modules/lodash/_baseWhile.js","webpack:///./sidebar/components/date/sidebar_date_widget.vue","webpack:///./sidebar/components/date/sidebar_formatted_date.vue?8561","webpack:///sidebar/components/date/sidebar_formatted_date.vue","webpack:///./sidebar/components/date/sidebar_formatted_date.vue?4339","webpack:///./sidebar/components/date/sidebar_formatted_date.vue","webpack:///./sidebar/components/date/sidebar_inherit_date.vue?c544","webpack:///sidebar/components/date/sidebar_inherit_date.vue","webpack:///./sidebar/components/date/sidebar_inherit_date.vue?f165","webpack:///./sidebar/components/date/sidebar_inherit_date.vue","webpack:///sidebar/components/date/sidebar_date_widget.vue","webpack:///./sidebar/components/date/sidebar_date_widget.vue?c7e5","webpack:///./sidebar/components/date/sidebar_date_widget.vue?dc1e","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/work_item_parent.subscription.graphql","webpack:///./ci/common/private/job_name_component.vue","webpack:///./ci/common/private/job_name_component.vue?272b","webpack:///ci/common/private/job_name_component.vue","webpack:///./ci/common/private/job_name_component.vue?453a","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/js/function.js","webpack:///./vue_merge_request_widget/queries/states/auto_merge_enabled.fragment.graphql","webpack:////build/source/node_modules/base64-js/index.js","webpack:///./vue_merge_request_widget/mixins/merge_request_query_variables.js","webpack:///./security_configuration/graphql/configure_sast.mutation.graphql","webpack:///./vue_merge_request_widget/queries/merge_checks.query.graphql","webpack:///./ide/stores/utils.js","webpack:////build/source/node_modules/lodash/_cloneDataView.js","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_value.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_value.vue?1090","webpack:///sidebar/components/labels/labels_select_widget/dropdown_value.vue","webpack:///./sidebar/components/labels/labels_select_widget/dropdown_value.vue?9943","webpack:///./sidebar/utils.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issue_escalation_policy.query.graphql","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/queries/approval_rules.subscription.graphql","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/schema/default_full.js","webpack:///./ci/utils.js","webpack:///./issuable/components/locked_badge.vue","webpack:///./issuable/components/locked_badge.vue?7fc0","webpack:///issuable/components/locked_badge.vue","webpack:///./issuable/components/locked_badge.vue?3234","webpack:///./sidebar/components/assignees/collapsed_assignee.vue?875d","webpack:///sidebar/components/assignees/collapsed_assignee.vue","webpack:///./sidebar/components/assignees/collapsed_assignee.vue?649a","webpack:///./sidebar/components/assignees/collapsed_assignee.vue","webpack:///sidebar/components/assignees/collapsed_assignee_list.vue","webpack:///./sidebar/components/assignees/collapsed_assignee_list.vue?8f5b","webpack:///./sidebar/components/assignees/collapsed_assignee_list.vue?8f8f","webpack:///./sidebar/components/assignees/collapsed_assignee_list.vue","webpack:///./sidebar/components/copy/copy_email_to_clipboard.vue?a2cc","webpack:///sidebar/components/copy/copy_email_to_clipboard.vue","webpack:///./sidebar/components/copy/copy_email_to_clipboard.vue?9f25","webpack:///./sidebar/components/copy/copy_email_to_clipboard.vue","webpack:///sidebar/components/incidents/escalation_status.vue","webpack:///./sidebar/components/incidents/escalation_status.vue?5e0f","webpack:///./sidebar/components/incidents/escalation_status.vue?9b66","webpack:///./sidebar/components/incidents/escalation_status.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_status.vue?df5d","webpack:///../../../ee/app/assets/javascripts/sidebar/components/incidents/escalation_status.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_status.vue?6e63","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/incidents/escalation_status.vue","webpack:///./sidebar/components/incidents/sidebar_escalation_status.vue?bd8f","webpack:///sidebar/components/incidents/sidebar_escalation_status.vue","webpack:///./sidebar/components/incidents/sidebar_escalation_status.vue?e7fe","webpack:///./sidebar/components/incidents/sidebar_escalation_status.vue","webpack:///sidebar/components/milestone/milestone_dropdown.vue","webpack:///./sidebar/components/milestone/milestone_dropdown.vue?1044","webpack:///./sidebar/components/milestone/milestone_dropdown.vue?0894","webpack:///./sidebar/components/milestone/milestone_dropdown.vue","webpack:///./sidebar/components/move/move_issues_button.vue?9526","webpack:///sidebar/components/move/move_issues_button.vue","webpack:///./sidebar/components/move/move_issues_button.vue?bb2a","webpack:///./sidebar/components/move/move_issues_button.vue","webpack:///./sidebar/components/copy/sidebar_reference_widget.vue?2390","webpack:///sidebar/components/copy/sidebar_reference_widget.vue","webpack:///./sidebar/components/copy/sidebar_reference_widget.vue?439a","webpack:///./sidebar/components/copy/sidebar_reference_widget.vue","webpack:///./sidebar/components/reviewers/sidebar_reviewers_inputs.vue?1448","webpack:///sidebar/components/reviewers/sidebar_reviewers_inputs.vue","webpack:///./sidebar/components/reviewers/sidebar_reviewers_inputs.vue?8ee8","webpack:///./sidebar/components/reviewers/sidebar_reviewers_inputs.vue","webpack:///./sidebar/components/status/status_dropdown.vue?a6d1","webpack:///sidebar/components/status/status_dropdown.vue","webpack:///./sidebar/components/status/status_dropdown.vue?6e3e","webpack:///./sidebar/components/status/status_dropdown.vue","webpack:///./sidebar/components/subscriptions/subscriptions_dropdown.vue?7133","webpack:///sidebar/components/subscriptions/subscriptions_dropdown.vue","webpack:///./sidebar/components/subscriptions/subscriptions_dropdown.vue?2ddf","webpack:///./sidebar/components/subscriptions/subscriptions_dropdown.vue","webpack:///./sidebar/components/time_tracking/sidebar_time_tracking.vue?7e16","webpack:///sidebar/components/time_tracking/sidebar_time_tracking.vue","webpack:///./sidebar/components/time_tracking/sidebar_time_tracking.vue?11f8","webpack:///./sidebar/components/time_tracking/sidebar_time_tracking.vue","webpack:///./sidebar/components/crm_contacts/crm_contacts.vue?a876","webpack:///sidebar/components/crm_contacts/crm_contacts.vue","webpack:///./sidebar/components/crm_contacts/crm_contacts.vue?bc8c","webpack:///./sidebar/components/crm_contacts/crm_contacts.vue","webpack:///./sidebar/components/move/move_issue_button.vue","webpack:///./sidebar/components/move/move_issue_button.vue?2755","webpack:///sidebar/components/move/move_issue_button.vue","webpack:///./sidebar/components/move/move_issue_button.vue?5de6","webpack:///./sidebar/components/confidential/confidentiality_dropdown.vue?8ff8","webpack:///sidebar/components/confidential/confidentiality_dropdown.vue","webpack:///./sidebar/components/confidential/confidentiality_dropdown.vue?391b","webpack:///./sidebar/components/confidential/confidentiality_dropdown.vue","webpack:///./sidebar/mount_sidebar.js","webpack:///./sidebar/track_invite_members.js","webpack:////build/source/node_modules/lodash/_baseIsRegExp.js","webpack:///./notes/components/discussion_locked_widget.vue","webpack:///./notes/components/discussion_locked_widget.vue?d8e1","webpack:///notes/components/discussion_locked_widget.vue","webpack:///./notes/components/discussion_locked_widget.vue?c4cb","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/base_dropdown/base_dropdown.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/base_dropdown/constants.js","webpack:////build/source/node_modules/lodash/_baseAssignIn.js","webpack:////build/source/ee/app/assets/javascripts/approvals/constants.js","webpack:////build/source/node_modules/lodash/_unicodeWords.js","webpack:///./users_select/constants.js","webpack:////build/source/node_modules/lodash/deburr.js","webpack:////build/source/node_modules/d3-selection/src/select.js","webpack:////build/source/node_modules/lodash/takeRightWhile.js","webpack:///./vue_merge_request_widget/queries/states/auto_merge_failed.query.graphql","webpack:///./ci/pipeline_mini_graph/graphql/mutations/job_retry.mutation.graphql","webpack:////build/source/node_modules/lodash/intersection.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/loader.js","webpack:///./vue_shared/components/notes/placeholder_note.vue","webpack:///./vue_shared/components/notes/placeholder_note.vue?d8fc","webpack:///vue_shared/components/notes/placeholder_note.vue","webpack:///./vue_shared/components/notes/placeholder_note.vue?cb3a","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-caption.js","webpack:////build/source/node_modules/d3-selection/src/selectorAll.js","webpack:///./sidebar/components/sidebar_dropdown_widget.vue","webpack:///./sidebar/components/sidebar_dropdown_widget.vue?f2e5","webpack:///sidebar/components/sidebar_dropdown_widget.vue","webpack:///./sidebar/components/sidebar_dropdown_widget.vue?c2a7","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/project_issue_iteration.mutation.graphql","webpack:///./vue_shared/mixins/modal_keyboard_navigation_mixin.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/constants.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/schema/json.js","webpack:////build/source/node_modules/@floating-ui/core/dist/floating-ui.core.esm.js","webpack:///./vue_merge_request_widget/components/mr_widget_status_icon.vue","webpack:///./vue_merge_request_widget/components/mr_widget_status_icon.vue?f2cf","webpack:///vue_merge_request_widget/components/mr_widget_status_icon.vue","webpack:///./vue_merge_request_widget/components/mr_widget_status_icon.vue?1a3a","webpack:///./sidebar/components/time_tracking/time_tracker.vue","webpack:///./sidebar/components/time_tracking/collapsed_state.vue?494b","webpack:///sidebar/components/time_tracking/collapsed_state.vue","webpack:///./sidebar/components/time_tracking/collapsed_state.vue?b7dc","webpack:///./sidebar/components/time_tracking/collapsed_state.vue","webpack:///./sidebar/components/time_tracking/comparison_pane.vue?b1ae","webpack:///sidebar/components/time_tracking/comparison_pane.vue","webpack:///./sidebar/components/time_tracking/comparison_pane.vue?0cd7","webpack:///./sidebar/components/time_tracking/comparison_pane.vue","webpack:///sidebar/components/time_tracking/spent_only_pane.vue","webpack:///./sidebar/components/time_tracking/spent_only_pane.vue?e3e5","webpack:///./sidebar/components/time_tracking/spent_only_pane.vue?7fb1","webpack:///./sidebar/components/time_tracking/spent_only_pane.vue","webpack:///./sidebar/components/time_tracking/time_tracker.vue?3a0a","webpack:///sidebar/components/time_tracking/time_tracker.vue","webpack:///./sidebar/components/time_tracking/time_tracker.vue?94b5","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/issue_escalation_policy.mutation.graphql","webpack:///./vue_merge_request_widget/components/review_app_link.vue","webpack:///./vue_merge_request_widget/components/review_app_link.vue?b656","webpack:///vue_merge_request_widget/components/review_app_link.vue","webpack:///./vue_merge_request_widget/components/review_app_link.vue?9abd","webpack:///./sidebar/components/subscriptions/sidebar_subscriptions_widget.vue","webpack:///sidebar/components/subscriptions/sidebar_subscriptions_widget.vue","webpack:///./sidebar/components/subscriptions/sidebar_subscriptions_widget.vue?b3ae","webpack:///./sidebar/components/subscriptions/sidebar_subscriptions_widget.vue?af29","webpack:///./ci/common/private/job_dropdown_item.vue","webpack:///./ci/common/private/job_action_modal.vue?21ee","webpack:///ci/common/private/job_action_modal.vue","webpack:///./ci/common/private/job_action_modal.vue?c514","webpack:///./ci/common/private/job_action_modal.vue","webpack:///ci/common/private/job_action_button.vue","webpack:///./ci/common/private/job_action_button.vue?28db","webpack:///./ci/common/private/job_dropdown_item.vue?1d97","webpack:///ci/common/private/job_dropdown_item.vue","webpack:///./ci/common/private/job_action_button.vue?6d71","webpack:///./ci/common/private/job_action_button.vue","webpack:///./ci/common/private/job_dropdown_item.vue?6f73","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/helpers/mixin-table-renderer.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/group_epics.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/dropdown/dropdown-form.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/dropdown/dropdown_form.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/datepicker/datepicker.js","webpack:////build/source/node_modules/d3-selection/src/selection/on.js","webpack:////build/source/node_modules/lodash/_castSlice.js","webpack:///./pages/projects/merge_requests/show/index.js","webpack:////build/source/ee/app/assets/javascripts/pages/projects/merge_requests/show/index.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/epic.fragment.graphql","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/queries/states/merge_train_car_index.fragment.graphql","webpack:////build/source/node_modules/lodash/_baseIsMap.js","webpack:////build/source/node_modules/lodash/kebabCase.js","webpack:///./projects/report_abuse/components/report_abuse_dropdown_item.vue?fd8f","webpack:///projects/report_abuse/components/report_abuse_dropdown_item.vue","webpack:///./projects/report_abuse/components/report_abuse_dropdown_item.vue?83c5","webpack:///./projects/report_abuse/components/report_abuse_dropdown_item.vue","webpack:///./projects/report_abuse/index.js","webpack:///./vue_merge_request_widget/queries/merge_checks.subscription.graphql","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/components/policy_editor/scan_result/lib/rules.js","webpack:///./batch_comments/services/drafts_service.js","webpack:///./batch_comments/stores/modules/batch_comments/actions.js","webpack:///./batch_comments/stores/modules/batch_comments/getters.js","webpack:///./batch_comments/stores/modules/batch_comments/mutations.js","webpack:///./diffs/utils/suggestions.js","webpack:///./diffs/store/getters_versions_dropdowns.js","webpack:///./diffs/store/getters.js","webpack:///./diffs/store/mutations.js","webpack:///./diffs/utils/tree_worker_utils.js","webpack:///./diffs/store/actions.js","webpack:///./diffs/store/mutation_types.js","webpack:///./diffs/store/modules/diff_state.js","webpack:///./mr_notes/stores/mutation_types.js","webpack:///./mr_notes/stores/actions.js","webpack:///./mr_notes/stores/getters.js","webpack:///./mr_notes/stores/mutations.js","webpack:///./mr_notes/stores/drawer/mutation_types.js","webpack:///./mr_notes/stores/drawer/actions.js","webpack:///./mr_notes/stores/drawer/getters.js","webpack:///./mr_notes/stores/drawer/mutations.js","webpack:///./mr_notes/stores/index.js","webpack:///./mr_notes/stores/modules/index.js","webpack:///./diffs/store/modules/index.js","webpack:///./batch_comments/stores/modules/batch_comments/index.js","webpack:///./batch_comments/stores/modules/batch_comments/state.js","webpack:///./mr_notes/stores/drawer/index.js","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/null.js","webpack:///./vue_shared/components/diff_viewer/diff_viewer.vue","webpack:///./vue_shared/components/diff_viewer/constants.js","webpack:///vue_shared/components/diff_viewer/viewers/download_diff_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/download_diff_viewer.vue?5ec3","webpack:///./vue_shared/components/diff_viewer/viewers/download_diff_viewer.vue?2c71","webpack:///./vue_shared/components/diff_viewer/viewers/download_diff_viewer.vue","webpack:///./vue_shared/components/lib/utils/dom_utils.js","webpack:///vue_shared/components/diff_viewer/viewers/image_diff/onion_skin_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/onion_skin_viewer.vue?3f50","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/onion_skin_viewer.vue?3783","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/onion_skin_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/swipe_viewer.vue?cf76","webpack:///vue_shared/components/diff_viewer/viewers/image_diff/swipe_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/swipe_viewer.vue?ea67","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/swipe_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/two_up_viewer.vue?6924","webpack:///vue_shared/components/diff_viewer/viewers/image_diff/two_up_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/two_up_viewer.vue?b1ff","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff/two_up_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff_viewer.vue?4672","webpack:///vue_shared/components/diff_viewer/viewers/image_diff_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff_viewer.vue?578e","webpack:///./vue_shared/components/diff_viewer/viewers/image_diff_viewer.vue","webpack:///./vue_shared/components/diff_viewer/viewers/mode_changed.vue?2136","webpack:///vue_shared/components/diff_viewer/viewers/mode_changed.vue","webpack:///./vue_shared/components/diff_viewer/viewers/mode_changed.vue?dc05","webpack:///./vue_shared/components/diff_viewer/viewers/mode_changed.vue","webpack:///vue_shared/components/diff_viewer/viewers/renamed.vue","webpack:///./vue_shared/components/diff_viewer/viewers/renamed.vue?21bd","webpack:///./vue_shared/components/diff_viewer/utils.js","webpack:///./vue_shared/components/diff_viewer/viewers/renamed.vue?3d25","webpack:///./vue_shared/components/diff_viewer/viewers/renamed.vue","webpack:///./vue_shared/components/diff_viewer/diff_viewer.vue?e812","webpack:///vue_shared/components/diff_viewer/diff_viewer.vue","webpack:///./vue_shared/components/diff_viewer/diff_viewer.vue?3c42","webpack:////build/source/node_modules/js-yaml/lib/js-yaml/type/js/regexp.js","webpack:////build/source/ee/app/assets/javascripts/security_orchestration/graphql/mutations/create_policy_project_async.mutation.graphql","webpack:///./vue_merge_request_widget/constants.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/queries/constants.js","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/queries/approvals.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/vendor/bootstrap-vue/src/components/table/table-lite.js","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/table_lite/table_lite.js","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/queries/states/merge_train_car_count.fragment.graphql","webpack:///./users_select/utils.js","webpack:///./users_select/index.js","webpack:///./sidebar/queries/issue_crm_contacts.fragment.graphql","webpack:////build/source/node_modules/js-yaml/lib/js-yaml.js","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/weight/sidebar_weight_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/weight/sidebar_weight_widget.vue?ef44","webpack:///../../../ee/app/assets/javascripts/sidebar/components/weight/sidebar_weight_widget.vue","webpack:////build/source/ee/app/assets/javascripts/sidebar/components/weight/sidebar_weight_widget.vue?1f0e","webpack:///./notes/components/multiline_comment_utils.js","webpack:///./issuable/components/hidden_badge.vue","webpack:///./issuable/components/hidden_badge.vue?d89a","webpack:///issuable/components/hidden_badge.vue","webpack:///./issuable/components/hidden_badge.vue?8c0c","webpack:////build/source/node_modules/lodash/_cloneRegExp.js","webpack:////build/source/ee/app/assets/javascripts/graphql_shared/subscriptions/issuable_weight.subscription.graphql","webpack:////build/source/ee/app/assets/javascripts/vue_merge_request_widget/components/approvals/queries/approval_rules.query.graphql","webpack:////build/source/node_modules/@gitlab/ui/dist/components/base/new_dropdowns/listbox/listbox_item.js","webpack:///./vue_shared/components/notes/placeholder_system_note.vue","webpack:///./vue_shared/components/notes/placeholder_system_note.vue?2f47","webpack:///vue_shared/components/notes/placeholder_system_note.vue","webpack:///./vue_shared/components/notes/placeholder_system_note.vue?e5c8","webpack:////build/source/node_modules/lodash/_baseSlice.js"],"names":["constant","createInverter","identity","nativeObjectToString","Object","prototype","toString","invert","result","value","key","call","module","exports","props","label","type","required","component","_c","this","_self","staticClass","style","color","attrs","_v","_s","title","getDraftReplyFormData","data","endpoint","notesData","draftsPath","getDraftFormData","params","getFormData","parallelLineKey","line","side","line_code","showDraftOnSide","otherSide","thisCode","otherCode","SetCache","arrayIncludes","arrayIncludesWith","arrayMap","baseUnary","cacheHas","nativeMin","Math","min","arrays","iteratee","comparator","includes","length","othLength","othIndex","caches","Array","maxLength","Infinity","array","undefined","index","seen","outer","computed","cache","push","root","factory","moment","e","hasMoment","hasEventListeners","window","addEventListener","document","sto","setTimeout","addEvent","el","callback","capture","attachEvent","removeEvent","removeEventListener","detachEvent","hasClass","cn","className","indexOf","addClass","removeClass","str","replace","trim","isArray","obj","test","isDate","isNaN","getTime","isWeekend","date","day","getDay","isLeapYear","year","getDaysInMonth","month","setToStartOfDay","setHours","compareDates","a","b","extend","to","from","overwrite","prop","hasProp","nodeName","Date","slice","fireEvent","eventName","ev","createEvent","initEvent","dispatchEvent","createEventObject","adjustCalendar","calendar","ceil","abs","floor","defaults","field","bound","ariaLabel","position","reposition","format","parse","defaultDate","setDefaultDate","firstDay","formatStrict","minDate","maxDate","yearRange","showWeekNumber","pickWholeWeek","minYear","maxYear","minMonth","maxMonth","startRange","endRange","isRTL","yearSuffix","showMonthAfterYear","showDaysInNextAndPreviousMonths","enableSelectionDaysInNextAndPreviousMonths","numberOfMonths","mainCalendar","container","blurFieldOnSelect","i18n","previousMonth","nextMonth","months","weekdays","weekdaysShort","theme","events","onSelect","onOpen","onClose","onDraw","keyboardInput","renderDayName","opts","abbr","renderDay","arr","ariaSelected","isEmpty","isDisabled","isToday","isSelected","hasEvent","isInRange","isStartRange","isEndRange","join","renderRow","days","isRowSelected","reverse","renderTitle","instance","c","refYear","randId","i","j","monthHtml","yearHtml","_o","isMinYear","isMaxYear","html","prev","next","Pikaday","options","self","config","_onMouseDown","target","event","srcElement","parentNode","prevMonth","setDate","getAttribute","hide","blur","preventDefault","returnValue","_onChange","gotoMonth","gotoYear","_onKeyChange","isVisible","keyCode","adjustDate","_onInputChange","firedBy","isValid","toDate","show","_onInputFocus","_onInputClick","_onInputBlur","pEl","activeElement","_b","_onClick","onchange","setAttribute","trigger","createElement","appendChild","body","insertBefore","nextSibling","defDate","gotoDate","disableWeekends","disableDayFn","nom","parseInt","setMinDate","setMaxDate","fallback","getFullYear","_d","toDateString","getMoment","setMoment","preventOnSelect","isMoment","getDate","draw","max","newCalendar","calendars","firstVisibleDate","lastVisibleDate","visibleDate","setMonth","getMonth","adjustCalendars","sign","newDay","difference","valueOf","gotoToday","setStartRange","setEndRange","force","_y","_m","random","substr","render","innerHTML","focus","adjustPosition","width","height","viewportWidth","viewportHeight","scrollTop","left","top","clientRect","leftAligned","bottomAligned","offsetWidth","offsetHeight","innerWidth","documentElement","clientWidth","innerHeight","clientHeight","pageYOffset","getBoundingClientRect","pageXOffset","bottom","offsetLeft","offsetTop","offsetParent","now","before","row","yearOfPreviousMonth","yearOfNextMonth","daysInPreviousMonth","cells","after","d","m","y","onejan","isWeekSelected","r","dayNumber","monthNumber","yearNumber","dayConfig","unshift","weekNum","renderHead","rows","renderTable","v","destroy","removeChild","interactionEvents","scrollToTargetOnResize","targetId","location","hash","scrollContainer","ScrollParent","getElementById","scrollContainerIsDocument","ro","ResizeObserver","entries","forEach","entry","CustomEvent","detail","containerEl","querySelector","interactionListenersAdded","keepTargetAtTop","anchorEl","scrollY","contentTop","scrollTo","removeListeners","unobserve","observe","doc","loc","source","definitionRefs","findOperation","name","definitions","element","def","refs","Set","collectFragmentReferences","node","kind","add","selectionSet","selections","selection","variableDefinitions","operationName","newDoc","hasOwnProperty","opRefs","allRefs","newRefs","refName","size","prevRefs","has","childRef","op","oneQuery","components","GlTooltip","GlAvatar","lazy","Boolean","default","imgSrc","String","defaultAvatarUrl","cssClasses","imgAlt","__","Number","tooltipText","tooltipPlacement","pseudo","sanitizedSource","baseSrc","maximumSize","_isObject","values","resultantSrcAttribute","placeholderImage","_vm","ref","class","backgroundImage","$scopedSlots","$refs","userAvatar","_t","_e","addition","sum","_len","arguments","numbers","_key","reduce","average","modulo","n","divisor","engineeringNotation","precision","invalidValues","NaN","num","allYourBase","0","3","6","9","12","15","18","21","24","exponentialNotation","toExponential","power","split","map","scaledPower","scaledMantissa","toFixed","_","fractionalDigits","formatNumberToLocale","locales","Intl","NumberFormat","toFloat","defaultValue","float","parseFloat","Schema","include","Stack","arrayEach","assignValue","baseAssign","baseAssignIn","cloneBuffer","copyArray","copySymbols","copySymbolsIn","getAllKeys","getAllKeysIn","getTag","initCloneArray","initCloneByTag","initCloneObject","isBuffer","isMap","isObject","isSet","keys","keysIn","cloneableTags","baseClone","bitmask","customizer","object","stack","isDeep","isFlat","isFull","isArr","tag","isFunc","stacked","get","set","subValue","transitionEndEventString","FROM_SENTENCE_REGEX","categoryLabelMap","activity","people","nature","food","travel","objects","symbols","flags","AwardsHandler","constructor","emoji","eventListeners","toggleButtonSelector","menuClass","bindEvents","_this","$parentEl","targetContainerEl","$","registerEventListener","requestAnimationFrame","createEmojiMenu","stopPropagation","showEmojiMenu","currentTarget","closest","is","hideMenuElement","emojiButtonSelector","$target","$glEmojiElement","find","$spriteIconElement","emojiName","addAward","getVotesBlock","getAwardUrl","method","args","$addBtn","_this2","$menu","positionMenu","showMenuElement","$createdMenu","isCreatingEmojiMenu","categoryMap","getEmojiCategoryMap","categoryNameKey","emojisInCategory","firstCategory","renderCategory","frequentlyUsedEmojis","getFrequentlyUsedEmojis","frequentlyUsedCatgegory","frequentEmojis","emojiMenuMarkup","insertAdjacentHTML","addRemainingEmojiMenuCategories","setupSearch","_this3","isAddingRemainingEmojiMenuCategories","menu","emojiContentElement","promiseChain","then","Promise","resolve","categoryMarkup","catch","err","Error","message","emojiList","_this4","_escape","glEmojiTag","sprite","css","outerHeight","offset","bp","getBreakpointSize","outerWidth","votesBlock","awardUrl","_this5","isMainAwardsBlock","isInVueNoteablePage","id","attr","toggleAwardEvent","awardName","noteId","normalizedEmoji","normalizeEmojiName","$emojiButton","findEmojiIcon","postEmoji","addAwardToEmojiBar","addEmojiToFrequentlyUsedList","isActive","decrementCounter","counter","text","addYouToUserList","animateEmoji","createEmoji","$el","currentBlock","resultantVotesBlock","eq","counterNumber","removeYouFromUserList","EMOJI_THUMBS_UP","EMOJI_THUMBS_DOWN","dispose","parents","removeEmoji","remove","$votesBlock","getAwardTooltip","$awardBlock","toSentence","list","sentence","awardBlock","authors","splice","removeData","removeAttr","fixTitle","origTitle","users","createAwardButtonForVotesBlock","buttonHtml","$emoji","_this6","axios","post","ok","createAlert","scrollToAwards","scrollToElement","isEmojiNameValid","_uniq","concat","localStorage","setItem","FREQUENTLY_USED_EMOJIS_STORAGE_KEY","_this7","getItem","filter","inputName","_this8","$search","term","val","searchEmojis","h5","foundEmojis","findMatchingEmojiElements","ul","append","children","getEmojiScore","emojis","elem","x","dataset","score","sortEmojiElements","$elements","_this9","scores","WeakMap","sort","aScore","bScore","query","matchingEmoji","searchEmoji","getEmojiScoreWithIntent","matchingEmojiNames","$matchingElements","elm","clone","$emojiMenu","on","off","awardsHandlerPromise","loadAwardsHandler","reload","Emoji","awardsHandler","setInitialData","commit","fetchAwards","async","dispatch","state","page","headers","joinPaths","gon","relative_url_root","path","per_page","nextPage","normalizeHeaders","error","Sentry","toggleAward","award","awards","user","currentUserId","delete","optimisticAward","MAX_SAFE_INTEGER","current_user_id","current_user_fullname","username","current_username","newOptimisticAward","finally","canAwardEmoji","awardId","Vue","use","Vuex","newCustomEmojiPath","parseBoolean","showDefaultAwardEmojis","store","Store","awardPath","actions","mutations","provide","mapState","created","mounted","methods","mapActions","AwardsList","defaultAwards","selectedClass","isAdded","isRemoved","isUnchanged","isMeta","EXPANDED_LINE_TYPE","isConflictMarker","CONFLICT_MARKER_OUR","CONFLICT_MARKER_THEIR","isConflictSeperator","CONFLICT_MARKER","isConflictOur","CONFLICT_OUR","isConflictTheir","CONFLICT_THEIR","parallelizeDiffLines","diffLines","inline","freeRightIndex","conflictStartIndex","lines","chunk","diffLinesLength","LINE_POSITION_LEFT","LINE_POSITION_RIGHT","right","nextFreeRightIndex","findDiffFile","files","match","matchKey","file","note","noteableType","noteableData","diffFile","noteTargetLine","diffViewType","linePosition","positionType","lineRange","showWhitespace","JSON","stringify","base_sha","diff_refs","start_sha","head_sha","old_path","new_path","position_type","TEXT_DIFF_POSITION_TYPE","old_line","new_line","line_range","ignore_whitespace_change","whitespaceOnlyChange","view","line_type","NEW_LINE_TYPE","OLD_LINE_TYPE","merge_request_diff_head_sha","in_reply_to_discussion_id","note_project_id","target_type","targetType","target_id","return_discussion","noteable_type","noteable_id","commit_id","DIFF_NOTE_TYPE","LEGACY_DIFF_NOTE_TYPE","getNoteFormData","create_note_path","findIndexInInlineLines","lineNumbers","oldLineNumber","newLineNumber","findIndex","getPreviousLineIndex","INLINE_DIFF_LINES_KEY","removeMatchLine","indexForInline","factor","addLineReferences","isExpandDown","nextLineNumbers","lineCount","matchLineIndex","linesWithNumbers","l","MATCH_LINE_TYPE","assign","targetLine","meta_data","old_pos","new_pos","addContextLines","inlineLines","contextLines","inlineIndex","addInlineContextLines","trimFirstCharOfLineContent","parsedLine","rich_text","firstChar","charAt","substring","mergeTwoFiles","originalInline","missingInline","parallel_diff_lines","collapsed","ensureBasicDiffFileLines","prepareLine","problems","brokenSymlink","brokenLineCode","fileOnlyMoved","renamed_file","added_lines","removed_lines","alreadyPrepared","commentsDisabled","discussionsExpanded","discussions","hasForm","prepareLineForRenamedFile","lineNumber","cleanLine","file_hash","prepareDiffFileLines","finalizeDiffFile","_file$viewer","isShowingFullFile","isLoadingFullFile","renderingLines","viewer","whitespace_only","prepareDiffData","diff","priorFiles","meta","updatePosition","transformersChain","allFiles","prepareRawDiffFile","dedupedFiles","newList","content_sha","diffFileUniqueId","existingFile","deduplicateFilesList","diff_files","fileResult","transformer","getDiffPositionByLineCode","diffFiles","acc","isDiscussionApplicableToLine","discussion","diffPosition","latestDiff","dp","dpNotUsed","diffPositionCopy","original_position","removeLineRange","pNotUsed","positionNoLineRange","positions","some","_isEqual","active","getDiffMode","_diffFile$viewer","_diffFile$viewer2","diffModeKey","diffModes","diffViewerModes","mode_changed","no_preview","replaced","convertExpandLines","typeKey","oldLineKey","newLineKey","mapLine","dataLength","_property","beforeLine","afterLine","newLineProperty","beforeLineIndex","afterLineIndex","oldLine","newLine","idleCallback","cb","requestIdleCallback","updateLineInFile","selectedFile","lineCode","updateFn","getLinesFromFileByLineCode","isUrlHashNoteLink","urlHash","startsWith","parseUrlHashAsFileHash","currentDiffFileId","hashless","isNoteLink","extractedSha1","extractFileHash","input","isUrlHashFileHeader","markTreeEntriesLoaded","priorEntries","loadedFiles","newEntries","newFile","diffLoaded","diffLoading","collapseReplies","s__","expandReplies","lastReplyBy","GlButton","GlLink","GlSprintf","GlAvatarLink","GlAvatarsInline","TimeAgoTooltip","replies","lastReply","uniqueAuthors","reply","author","_uniqBy","buttonIcon","buttonLabel","$options","ariaState","toggle","$emit","scopedSlots","_u","fn","avatar","webUrl","avatar_url","avatarUrl","n__","proxy","created_at","createdAt","names","unique","defs","asciiSize","hasUnicode","unicodeSize","string","Api","geoSitePath","geoSitesPath","geoSitesStatusPath","ldapGroupsPath","subscriptionPath","childEpicPath","codeReviewAnalyticsPath","groupActivityIssuesPath","groupActivityMergeRequestsPath","groupActivityNewMembersPath","countriesPath","countryStatesPath","paymentFormPath","filePath","validatePaymentMethodPath","vulnerabilityPath","vulnerabilityActionPath","vulnerabilityIssueLinksPath","descendantGroupsPath","projectDeploymentFrequencyAnalyticsPath","projectGroupsPath","issueMetricImagesPath","issueMetricSingleImagePath","environmentApprovalPath","protectedEnvironmentsPath","mrStatusCheckRetryPath","protectedEnvironmentPath","aiCompletionsPath","aiEmbeddingsPath","aiChatPath","tanukiBotAskPath","userSubscription","namespaceId","url","buildUrl","encodeURIComponent","ldapGroups","provider","search","DEFAULT_PER_PAGE","createChildEpic","confidential","groupId","parentEpicId","parent_id","descendantGroups","codeReviewAnalytics","groupActivityMergeRequestsCount","groupPath","group_path","groupActivityIssuesCount","groupActivityNewMembersCount","fetchCountries","fetchStates","country","fetchPaymentFormParams","getFile","validatePaymentMethod","gitlabUserId","gitlab_user_id","changeVulnerabilityState","getGeoSites","getGeoSitesStatus","createGeoSite","site","updateGeoSite","put","removeGeoSite","deploymentFrequencies","projectId","fetchIssueMetricImages","issueIid","metricImagesUrl","uploadIssueMetricImage","urlText","contentTypeMultipartFormData","formData","FormData","updateIssueMetricImage","imageId","deleteMetricImage","individualMetricImageUrl","projectGroups","deploymentApproval","deploymentId","representedAs","approve","comment","status","represented_as","approveDeployment","rejectDeployment","protectedEnvironments","entityType","createProtectedEnvironment","protectedEnvironment","updateProtectedEnvironment","deleteProtectedEnvironment","requestAICompletions","model","prompt","rest","requestAIEmbeddings","requestAIChat","messages","requestTanukiBotResponse","q","snakeCase","createCompounder","word","toLowerCase","__vue_script__","vertical","__vue_component__","_h","$createElement","_g","$listeners","staticRenderFns","VueApollo","apolloProvider","defaultClient","createDefaultClient","scrollToContainer","destroyPipelines","app","$destroy","toggleLoader","toggleClass","pageBundles","diffs","reports","MergeRequestTabs","action","setUrl","stubLocation","_this$mergeRequestTab","_this$mergeRequestTab2","containers","querySelectorAll","contentWrapper","mergeRequestTabs","mergeRequestTabsAll","mergeRequestTabPanes","mergeRequestTabPanesAll","navbar","peek","sidebar","pageLayout","expandSidebar","paddingTop","actionRegex","scrollPositions","commitsTab","currentTab","diffsLoaded","diffsClass","commitsLoaded","isFixedLayoutPreferred","classList","contains","eventHub","createEventHub","loadedPages","setCurrentAction","bind","switchViewType","tabShown","clickTab","click","_event$state","skipScrolling","pathName","at","getActionFromHref","pathname","href","$on","unbindEvents","$off","storeScroll","recallScroll","storedPosition","behavior","stopImmediatePropagation","isMetaClick","targetLink","visitUrl","shouldScroll","_this$expandSidebar","display","tabPane","tab","init","loadCommits","resetViewContainer","mergeRequestPipelinesTable","expandView","isDiffAction","loadDiff","strip","expandViewContainer","mountPipelinesView","notesTab","notesPane","renderGFM","currentAction","mainContentContainer","tabContentContainer","mainContentTop","scrollDestination","newStatePathname","newState","history","pushState","replaceState","getCurrentAction","count","next_page","textContent","commitsDiv","localTimeAgo","loadMoreButton","pipelineTableViewEl","mrWidgetData","gl","table","MergeRequestPipelinesTable","features","mrPipelinesGraphql","artifactsEndpoint","artifactsEndpointPlaceholder","targetProjectFullPath","target_project_full_path","fullPath","graphqlPath","manualActionsLimit","mergeRequestId","iid","sourceProjectFullPath","source_project_full_path","useFailedJobsWidget","emptyStateSvgPath","errorStateSvgPath","canCreatePipelineInTargetProject","can_create_pipeline_in_target_project","isMergeRequestTable","$mount","mountPipelines","tabs","initDiffStatsDropdown","syntaxHighlight","createDiff","setHubToDiff","each","BlobForkSuggestion","openButtons","forkButtons","cancelButtons","suggestionSections","actionTextPieces","loadDiffs","parseUrlPathname","Diff","mergeRequestEventHub","mrHub","getCookie","$gutterBtn","$collapseSvg","hideSidebar","cachedPageLayoutClasses","showSidebar","MergeRequest","submitNoteForm","initTabs","initMRBtnListeners","taskList","TaskList","dataType","TYPE_MERGE_REQUEST","fieldName","selector","lockVersion","onSuccess","taskStatus","taskStatusShort","innerText","task_status","task_status_short","onError","mrTabs","draftToggles","draftToggle","wipEvent","getParameterValues","mobileDropdown","loader","loadingIconForLegacyJS","classes","firstElementChild","dropdown","prepend","removeAttribute","toggleDraftStatus","$this","shouldSubmit","form","$button","submit","decreaseCounter","by","first","addDelimiter","isReady","toast","titleEl","setUrlParams","DEFAULT_AGENT_NAME","AGENT_KEY","SCAN_EXECUTION_RULES_PIPELINE_KEY","SCAN_EXECUTION_RULES_SCHEDULE_KEY","SCAN_EXECUTION_RULES_LABELS","ADD_CONDITION_LABEL","CONDITIONS_LABEL","SCAN_EXECUTION_PIPELINE_RULE","SCAN_EXECUTION_SCHEDULE_RULE","SCAN_EXECUTION_RULE_SCOPE_BRANCH_KEY","SCAN_EXECUTION_RULE_SCOPE_AGENT_KEY","SCAN_EXECUTION_RULE_SCOPE_TYPE","SCAN_EXECUTION_RULE_PERIOD_DAILY_KEY","SCAN_EXECUTION_RULE_PERIOD_WEEKLY_KEY","SCAN_EXECUTION_RULE_PERIOD_TYPE","ACTION_RUNNER_TAG_MODE_SPECIFIC_TAG_KEY","ACTION_RUNNER_TAG_MODE_SELECTED_AUTOMATICALLY_KEY","TAGS_MODE_SELECTED_ITEMS","DEFAULT_SCANNER","REPORT_TYPE_SECRET_DETECTION","SCANNER_HUMANIZED_TEMPLATE","SCANNER_HUMANIZED_TEMPLATE_ALT","POLICY_ACTION_BUILDER_TAGS_ERROR_KEY","POLICY_ACTION_BUILDER_DAST_PROFILES_ERROR_KEY","RUNNER_TAGS_PARSING_ERROR","DAST_SCANNERS_PARSING_ERROR","ERROR_MESSAGE_MAP","Type","YAML_DATE_REGEXP","RegExp","YAML_TIMESTAMP_REGEXP","exec","construct","hour","minute","second","fraction","delta","UTC","setTime","instanceOf","represent","toISOString","textSelectionActive","sel","containsNode","baseIsSet","nodeUtil","nodeIsSet","read","buffer","isLE","mLen","nBytes","eLen","eMax","eBias","nBits","s","pow","write","rt","log","LN2","baseClamp","toNumber","number","lower","upper","isOption","item","isGroup","every","hasNoDuplicates","flattenedOptions","items","flatMap","itemsValidator","isAllOptionsOrAllGroups","_ref","hasUniqueValues","_ref2","hasUniqueGroups","getIterationPeriod","startDate","dueDate","localeDateFormat","asDate","formatRange","newDate","sortCadences","cadences","sortBy","titleA","titleB","localeCompare","groupByIterationCadences","iterations","iteration","iterationCadence","cadenceIteration","period","cadence","groupOptionsByIterationCadences","CHANGES_TAB","DISCUSSION_TAB","SHOW_TAB","REVIEW_BAR_VISIBLE_CLASS_NAME","isHighlighted","highlightedRow","isCommented","isContextLine","CONTEXT_LINE_TYPE","isMatchLine","isMetaLine","OLD_NO_NEW_LINE_TYPE","NEW_NO_NEW_LINE_TYPE","EMPTY_CELL_TYPE","hasDiscussions","_line$discussions","fileContentsId","createDiffUrl","URL","searchParams","createFileUrl","lineHref","_line$left","_line$right","classNameMapCell","highlighted","commented","selectionStart","selectionEnd","isLoggedIn","isHover","hll","LINE_HOVER_CLASS_NAME","addCommentTooltip","tooltip","wasSymbolic","isSymbolic","wasReal","isReal","parallelViewLeftLineType","_line$right2","mapParallel","hasParallelDraftLeft","hasParallelDraftRight","draftsForLine","_left","_left2","_right","_right2","_left3","_right3","_left4","_right4","_left5","_right5","_left6","_right6","_left7","_right7","hasExpandedDiscussionOnLeft","hasExpandedDiscussionOnRight","renderCommentRow","_line$right3","_line$left2","renderDiscussion","hasDraft","lineDrafts","hasCommentForm","emptyCellClassMap","conflict_our","conflict_their","isMatchLineLeft","isMatchLineRight","isContextLineLeft","isContextLineRight","hasDiscussionsLeft","hasDiscussionsRight","lineHrefOld","lineHrefNew","isMetaLineLeft","isMetaLineRight","draftRowClasses","commentRowClasses","BFormRadioGroup","mixins","getBvRadioGroup","isRadioGroup","GlFormRadio","directives","SafeHtml","inheritAttrs","onInput","onChange","$attrs","_l","option","idx","disabled","rawName","expression","GlDropdownItem","inject","footerCreateLabelTitle","footerManageLabelTitle","showManageLabelsItem","labelsManagePath","allowLabelCreate","nativeOn","$event","resetServiceWorkersPublicPath","relativeRootPath","__webpack_public_path__","footVariant","BTfoot","getBvTableRowGroup","getBvTable","isTfoot","bvTable","dark","isStacked","isResponsive","isStickyHeader","stickyHeader","tableVariant","bvAttrs","role","h","tfootClasses","tfootAttrs","bvListeners","normalizeSlot","timeFormatted","time","getTimeago","timeagoLanguageCode","tooltipTitle","asDateTimeFull","LOADING","ERROR","SUCCESS","STATUS_FAILED","STATUS_SUCCESS","STATUS_NEUTRAL","SLOT_SUCCESS","SLOT_LOADING","SLOT_ERROR","CODE_QUALITY_SCALE_KEY","SAST_SCALE_KEY","predicate","isPolicyInherited","inherited","policyHasNamespace","namespace","isDefaultMode","policyScope","complianceFrameworks","nodes","frameworks","excludingProjects","excluding","includingProjects","including","noScope","existingDefaultScope","_isEmpty","policyScopeHasExcludingProjects","policyScopeHasIncludingProjects","policyScopeProjectsKey","INCLUDING","EXCLUDING","policyScopeHasGroups","includingGroups","policyScopeHasComplianceFrameworks","policyScopeGroups","_policyScope$includin","policyExcludingProjects","_policyScope$excludin","policyScopeComplianceFrameworks","_policyScope$complian","policyScopeProjects","pageInfo","projects","isProject","namespaceType","NAMESPACE_TYPES","PROJECT","GROUP","isScanningReport","scanner","REPORT_TYPE_CONTAINER_SCANNING","REPORT_TYPE_DEPENDENCY_SCANNING","fromYaml","manifest","safeLoad","json","hasScheduledRule","policy","_policyObject","policyObject","yaml","__typename","POLICY_TYPE_COMPONENT_OPTIONS","scanExecution","typeName","rules","checkForPerformanceRisk","projectsCount","extractPolicyContent","withType","defaultPayload","parsingError","hasParsingError","urlParameter","isValidPolicyType","parsedYaml","extractedPolicy","rsAstral","rsCombo","rsFitz","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsSeq","rsSymbol","reUnicode","lastIndex","returnExportsGlobal","EditableCaret","InputCaret","Mirror","Utils","oDocument","oWindow","setContextBy","$inputor","domInputor","setPos","pos","found","getSelection","parent","range","_i","_results","childNodes","nodeType","createRange","setStart","removeAllRanges","addRange","getIEPosition","getPosition","inputor_offset","getOffset","getOldIEPos","preCaretTextRange","textRange","createTextRange","moveToElementText","setEndPoint","getPos","clonedRange","cloneRange","selectNodeContents","setEnd","endContainer","endOffset","detach","getOldIEOffset","rect","duplicate","moveStart","shadowCaret","createTextNode","insertNode","selectNode","scrollLeft","rangeCount","getRangeAt","getIEPos","inputor","len","textInputRange","parentElement","moveToBookmark","getBookmark","collapse","compareEndPoints","move","select","setSelectionRange","getIEOffset","boundingLeft","boundingTop","boundingHeight","end_range","start_range","navigator","userAgent","create","inputorOffset","css_attr","mirrorCss","zIndex","p","$mirror","$flag","contentEditable","settings","iframe","contentWindow","contentDocument","caret","isPlainObject","apply","apis","GlSearchBoxByType","labelsCreateTitle","labelsListTitle","showDropdownContentsCreateView","labelsFetchInProgress","searchKey","isStandalone","dropdownTitle","focusInput","_this$$refs$searchInp","searchInput","_k","baseGetTag","isObjectLike","common","YAMLException","DEFAULT_FULL_SCHEMA","DEFAULT_SAFE_SCHEMA","_toString","_hasOwnProperty","ESCAPE_SEQUENCES","DEPRECATED_BOOLEANS_SYNTAX","encodeHex","character","handle","toUpperCase","repeat","State","schema","indent","noArrayIndent","skipInvalid","flowLevel","isNothing","styleMap","compiledTypeMap","styleAliases","compileStyleMap","sortKeys","lineWidth","noRefs","noCompatMode","condenseFlow","implicitTypes","compiledImplicit","explicitTypes","compiledExplicit","duplicates","usedDuplicates","indentString","spaces","ind","generateNextLine","level","isWhitespace","isPrintable","isPlainSafe","isNsChar","needIndentIndicator","chooseScalarStyle","singleLineOnly","indentPerLevel","testAmbiguousType","char","prev_char","hasLineBreak","hasFoldableLine","shouldTrackWidth","previousLineBreak","plain","charCodeAt","writeScalar","iskey","dump","testImplicitResolving","blockHeader","dropEndingNewline","moreIndented","lineRe","nextLF","foldLine","prevMoreIndented","prefix","foldString","nextChar","escapeSeq","escapeString","indentIndicator","clip","end","breakRe","start","curr","detectType","explicit","_result","typeList","defaultStyle","writeNode","block","compact","duplicateIndex","objectOrArray","objectKey","objectValue","explicitPair","pairBuffer","_tag","objectKeyList","writeBlockMapping","writeFlowMapping","arrayLevel","writeBlockSequence","writeFlowSequence","getDuplicateReferences","duplicatesIndexes","inspectNode","safeDump","f","compare","ascending","lo","hi","mid","ascendingBisect","bisector","bisectRight","bisect","valueof","stop","step","e10","sqrt","e5","e2","ticks","tickIncrement","isFinite","LN10","tickStep","step0","step1","i0","value0","CATEGORY_OPTIONS","GlTooltipDirective","GlLoadingIcon","UserAvatarImage","loading","participants","numberOfLessParticipants","showParticipantLabel","isShowingMoreParticipants","lessParticipants","visibleParticipants","hasMoreParticipants","toggleLabel","sprintf","moreCount","participantLabel","participantCount","toggleMoreParticipants","getParticipantId","participantId","getIdFromGraphQLId","participant","web_url","isItem","_item$text","itemValidator","group","hasOnlyListItemsVue2","defaultSlot","tags","vNode","_vNode$componentOptio","componentOptions","isValidSlotTagVue2","hasOnlyListItemsVue3","fragment","_vNode$type","isValidSlotTagVue3","hasOnlyListItems","version","HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS","HEALTH_STATUS_I18N_NO_STATUS","HEALTH_STATUS_I18N_SELECT_HEALTH_STATUS","healthStatusDropdownOptions","GlCollapsibleListbox","healthStatus","selected","textSrOnly","dropdownText","healthStatusTextMap","open","$$v","stackedMixin","isStackedAlways","logError","console","matches","cloneArrayBuffer","cloneDataView","cloneRegExp","cloneSymbol","cloneTypedArray","Ctor","UserAvatarLink","breakpoint","imgSize","emptyText","isExpanded","visibleItems","hasHiddenItems","hasBreakpoint","expandText","expand","messageAdditionsDeletions","noFilesFound","noFileNameAvailable","searchFiles","variantCssColorMap","success","danger","GlDisclosureDropdown","GlIcon","changed","added","deleted","filteredFiles","fuzzaldrinPlus","dropdownItems","iconColor","messageChanged","focusFirstItem","additionsText","numberOfChanges","deletionsText","locals","content","icon","removed","DiffStatsDropdown","normalizeFields","origFields","fields","formatter","processField","sample","k","memo","mixin","modelMixin","modelProps","MODEL_PROP_NAME","MODEL_EVENT_NAME","primaryKey","itemsMixin","localItems","bvParent","computedFields","paginatedItems","sortedItems","filteredItems","perPage","currentPage","localFilter","localSortBy","sortDesc","localSortDesc","math","apiUrl","watch","newValue","oldValue","computedItems","computedFieldsObj","IssuableBulkUpdateSidebar","initDomElements","initDropdowns","setupBulkUpdateActions","$page","$sidebar","$sidebarInnerContainer","$bulkEditCancelBtn","$bulkEditSubmitBtn","$bulkUpdateEnableBtn","$otherFilters","$checkAllContainer","$issueChecks","$issuesList","$issuableIdsInput","toggleBulkEdit","selectAll","updateFormState","prepForSubmit","issuableEventHub","toggleSubmitButtonDisabled","LabelsSelect","mountMilestoneDropdown","mountMoveIssuesButton","mountStatusDropdown","mountSubscriptionsDropdown","mountAssigneesDropdown","mountConfidentialityDropdown","IS_EE","mountEpicDropdown","mountHealthStatusDropdown","mountIterationDropdown","IssuableBulkUpdateActions","setOriginalDropdownData","noCheckedIssues","updateSelectedIssuableIds","disable","enable","toggleSidebarDisplay","toggleBulkEditButtonDisabled","toggleOtherFiltersDisabled","toggleCheckboxDisplay","getCheckedIssueIds","checkAllButtonState","$checkedIssues","IssuableContext","currentUser","reviewersSelect","UsersSelect","dropdowns","glDropdownInstance","jQueryWrapper","domElement","spinner","realParent","filterInput","$block","$selectbox","bpBreakpoint","setCookie","initBulkUpdateSidebar","prefixId","issuableBulkUpdateActions","initCsvImportExportButtons","showExportButton","showImportButton","issuableType","issuableCount","email","exportCsvPath","importCsvIssuesPath","canEdit","projectImportJiraPath","maxAttachmentSize","CsvImportExportButtons","initIssuableByEmail","GlToast","initialEmail","emailsHelpPagePath","quickActionsHelpPath","markdownHelpPath","resetPath","IssuableByEmail","initIssuableSidebar","sidebarOptions","getSidebarOptions","Sidebar","initialize","CLOSED","OPEN","UNBLOCK_RULES_KEY","UNBLOCK_RULES_TEXT","regex","ps","getComputedStyle","getPropertyValue","scroll","overflow","HTMLElement","SVGElement","scrollingElement","TYPE_CONSTRUCTOR_OPTIONS","YAML_NODE_KINDS","alias","GlBadge","Mark","column","getSnippet","head","tail","snippet","where","_uniqueId","modalId","tooltipContainer","category","modalDomId","$nextTick","clipboard","ClipboardJS","$root","BV_HIDE_TOOLTIP","clearSelection","destroyed","placement","baseSlice","isIterateeCall","toInteger","nativeCeil","nativeMax","guard","resIndex","importableTypeText","TYPE_ACTIVITY","TYPE_COMMENT","TYPE_DESIGN","TYPE_EPIC","TYPE_ISSUE","TYPE_SNIPPET","importableType","textOnly","importable","footClone","footRowVariant","tfootClass","tfootTrClass","tfootMixin","hasNormalizedSlot","headVariant","columns","renderThead","renderTFootCustom","MAX_WINDOW_HEIGHT_COMPACT","MAX_TITLE_LENGTH","MAX_BODY_LENGTH","SIDEBAR_INIT_WIDTH","SIDEBAR_MIN_WIDTH","SIDEBAR_NAV_WIDTH","FILE_VIEW_MODE_EDITOR","FILE_VIEW_MODE_PREVIEW","PERMISSION_CREATE_MR","PERMISSION_READ_MR","PERMISSION_PUSH_CODE","PUSH_RULE_REJECT_UNSIGNED_COMMITS","DEFAULT_PERMISSIONS","viewerTypes","mr","edit","new","renamed","freeze","not_diffable","image","diffViewerErrors","too_large","stored_externally","leftSidebarViews","review","rightSidebarViews","pipelines","keepAlive","jobsDetail","mergeRequestInfo","terminal","stageKeys","unstaged","staged","commitItemIconMap","modified","modalTypes","rename","tree","blob","commitActionTypes","update","SIDE_LEFT","SIDE_RIGHT","MAX_MR_FILES_AUTO_OPEN","DEFAULT_BRANCH","GITLAB_WEB_IDE_FEEDBACK_ISSUE","IDE_ELEMENT_ID","IDE_PATH","WEB_IDE_OAUTH_CALLBACK_URL_PATH","DISCLOSURE_DROPDOWN_ITEM_NAME","DISCLOSURE_DROPDOWN_GROUP_NAME","DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS","baseAssignValue","createAggregator","groupBy","DROPDOWN_SELECTOR","ITEM_SELECTOR","GL_DROPDOWN_SHOWN","GL_DROPDOWN_HIDDEN","GL_DROPDOWN_BEFORE_CLOSE","GL_DROPDOWN_FOCUS_CONTENT","GlBaseDropdown","GlDisclosureDropdownItem","GlDisclosureDropdownGroup","validator","toggleText","primary","variant","toggleId","noCaret","toggleAriaLabelledBy","listAriaLabelledBy","dropdownOffset","fluidWidth","autoClose","positioningStrategy","strategy","startOpened","disclosureId","nextFocusedItemIndex","_this$items","$slots","baseDropdown","close","code","elements","getFocusableListItemElements","focusItem","focusNextItem","handleAutoClose","_this$$refs$content","currentIndex","nextIndex","_elements$index","closeAndFocus","uniqueItemId","GL_DROPDOWN_CONTENTS_CLASS","onShow","onHide","onBeforeClose","onKeydown","disclosureTag","handleAction","groupItem","none","HEALTH_STATUS_I18N_FETCH_ERROR","HEALTH_STATUS_I18N_HEALTH_STATUS","HEALTH_STATUS_I18N_NONE","HEALTH_STATUS_I18N_UPDATE_ERROR","HEALTH_STATUS_OPEN_DROPDOWN_DELAY","HEALTH_STATUS_AT_RISK","HEALTH_STATUS_NEEDS_ATTENTION","HEALTH_STATUS_ON_TRACK","healthStatusVariantMap","healthStatusIconMap","healthStatusColorMap","healthStatusForRestApi","NO_STATUS","healthStatusTracking","Tracking","editEvent","rightSidebarLabel","property","iterationSelectTextMap","noIteration","assignIteration","iterationSelectFail","currentIterationFetchError","iterationsFetchError","noIterationsFound","noAttributeId","noEpic","placeholderEpic","SIDEBAR_ESCALATION_POLICY_TITLE","MAX_DISPLAY_WEIGHT","CVE_ID_REQUEST_SIDEBAR_I18N","description","createRequest","whyRequest","whyText1","whyText2","learnMore","IssuableAttributeType","IssuableAttributeTypeFoss","Iteration","Epic","EscalationPolicy","Parent","LocalizedIssuableAttributeType","LocalizedIssuableAttributeTypeFoss","IssuableAttributeTypeKeyMap","_invert","IssuableAttributeState","IssuableAttributeStateFoss","dropdowni18nText","issuableAttribute","noAttributesFound","dropdowni18nTextFoss","i18nHelpText","linkText","i18nPolicyText","paged","i18nStatusHeaderText","STOPS_PAGING","STATUS_SUBTEXTS","STATUS_TRIGGERED","STATUS_ACKNOWLEDGED","STATUS_RESOLVED","discussionId","resolveDiscussion","isDraft","mapGetters","resolvedStatusMessage","discussionResolved","isDiscussionResolved","draft","discussion_id","discussionToBeResolved","resolve_discussion","showStaysResolved","componentClasses","resolveButtonTitle","resolvedBy","fileSize","fileSizeReadable","numberToHumanSize","fileName","pop","storageKey","asString","persist","clear","newVal","saveValue","serialize","removeItem","exists","getStorageValue","deserialize","warn","_isString","_this$$scopedSlots$de","_this$$scopedSlots","EDITOR_MODE_RULE","EDITOR_MODE_YAML","PARSING_ERROR_MESSAGE","ACTION_SECTION_DISABLE_ERROR","CONDITION_SECTION_DISABLE_ERROR","EDITOR_MODES","DELETE_MODAL_CONFIG","secondary","attributes","cancel","MATCH_ON_INCLUSION_LICENSE","DEFAULT_MR_TITLE","POLICY_RUN_TIME_MESSAGE","POLICY_RUN_TIME_TOOLTIP","SECURITY_POLICY_ACTIONS","APPEND","REMOVE","REPLACE","GRAPHQL_ERROR_MESSAGE","NO_RULE_MESSAGE","ACTIONS","variables","INVALID_RULE_MESSAGE","INVALID_PROTECTED_BRANCHES","ADD_RULE_LABEL","RULES_LABEL","ADD_ACTION_LABEL","ACTIONS_LABEL","RULE_OR_LABEL","SCOPE_LABEL","ACTION_AND_LABEL","RULE_MODE_SCANNERS","REPORT_TYPE_SAST","SAST_SHORT_NAME","REPORT_TYPE_SAST_IAC","SAST_IAC_SHORT_NAME","REPORT_TYPE_DAST","DAST_SHORT_NAME","SECRET_DETECTION_NAME","CONTAINER_SCANNING_NAME","DEPENDENCY_SCANNING_NAME","MAX_ALLOWED_RULES_LENGTH","MAX_ALLOWED_APPROVER_ACTION_LENGTH","PRIMARY_POLICY_KEYS","SPECIFIC_BRANCHES","ALL_BRANCHES","GROUP_DEFAULT_BRANCHES","PROJECT_DEFAULT_BRANCH","ALL_PROTECTED_BRANCHES","ANY_COMMIT","ANY_UNSIGNED_COMMIT","ANY_OPERATOR","GREATER_THAN_OPERATOR","LESS_THAN_OPERATOR","VULNERABILITIES_ALLOWED_OPERATORS","VULNERABILITY_AGE_OPERATORS","SCAN_RESULT_BRANCH_TYPE_OPTIONS","nameSpaceType","SCAN_EXECUTION_BRANCH_TYPE_OPTIONS","VALID_SCAN_EXECUTION_BRANCH_TYPE_OPTIONS","VALID_SCAN_RESULT_BRANCH_TYPE_OPTIONS","BRANCHES_KEY","BRANCH_TYPE_KEY","BRANCH_EXCEPTIONS_KEY","HUMANIZED_BRANCH_TYPE_TEXT_DICT","MORE_LABEL","MULTIPLE_SELECTED_LABEL","MULTIPLE_SELECTED_LABEL_SINGLE_OPTION","SELECTED_ITEMS_LABEL","ALL_SELECTED_LABEL","REGULAR_BRANCH","PROTECTED_BRANCH","BRANCH_TYPES","BRANCH_TYPES_ITEMS","mapToListboxItems","EXCEPTION_KEY","NO_EXCEPTION_KEY","EXCEPTION_TYPE_ITEMS","SPLIT_VIEW_MAX_WIDTH","SPLIT_VIEW_MIN_WIDTH","RULE_SECTION_INITIAL_WIDTH","RULE_SECTION_COLLAPSED_WIDTH","SPLIT_VIEW_HALF_WIDTH","RULE_SECTION_MAX_WIDTH","getNotesFilterData","notesFilterValue","valueData","notesFilters","filtersData","filtersParsed","$diffFile","userCanCreateNote","isParallelView","showButton","hideButton","buttonParentElement","getButtonParent","validateButtonParent","nextElementSibling","hoveredElement","previousElementSibling","viewModes","ImageFile","_defineProperty","wrap","availWidth","requestImageInfo","swipe","maxWidth","maxHeight","prepareFrames","$swipeFrame","$swipeWrap","$swipeBar","wrapPadding","initDraggable","dragTrackWidth","$frame","$frameAdded","$track","$dragger","framePadding","opacity","initViewModes","initView","viewMode","activateViewMode","views","padding","dragging","$body","$offsetEl","dragStart","dragStop","dragMove","pageX","touches","frame","img","domImg","complete","naturalWidth","naturalHeight","createImageBadge","classNames","buttonEl","addCommentIndicator","spriteIcon","defaultMeta","ImageBadge","actual","browser","imageEl","imageDiffHelper","resizeCoordinatesToImageElement","commentIndicatorHelper","removeCommentIndicator","imageFrameEl","commentIndicatorEl","willRemove","showCommentIndicator","coordinate","commentIndicatorOnClick","addImageBadge","badgeText","addImageCommentBadge","addAvatarBadge","badgeNumber","avatarBadgeEl","setPositionDataAttribute","positionObject","updateDiscussionAvatarBadgeNumber","discussionEl","newBadgeNumber","updateDiscussionBadgeNumber","toggleCollapsed","discussionNotesEl","formEl","isCollapsed","imageWidth","imageHeight","widthRatio","heightRatio","round","generateBadgeFromDiscussionDOM","firstNoteEl","getTargetSelection","offsetX","offsetY","actualWidth","actualHeight","normalizedX","normalizedY","ImageDiff","canCreateNote","renderCommentBadge","$noteContainer","imageBadges","imageClickedWrapper","imageClicked","imageBlurredWrapper","addBadgeWrapper","addBadge","removeBadgeWrapper","removeBadge","renderBadgesWrapper","renderBadges","customEvent","renderBadge","imageBadge","numberBadgeOptions","indexToRemove","imageBadgeEls","badge","updatedBadgeNumber","viewTypes","TWO_UP","SWIPE","ONION_SKIN","ReplacedImageDiff","defaultViewType","imageFrameEls","viewModesEl","viewModesEls","currentView","generateImageEls","imageEls","getOwnPropertyNames","viewType","super","changeToViewTwoUp","changeView","changeToViewSwipe","changeToViewOnionSkin","newView","validate","indicator","renderNewView","normalizedIndicator","initImageDiff","fileEl","WRAPPER","LOADING_HTML","outerHTML","ERROR_HTML","COLLAPSED_HTML","renderVueComponentForLegacyJS","SingleFileDiff","toggleDiff","$chevronRightIcon","$chevronDownIcon","diffForPath","isOpen","collapsedContent","loadingContent","hasError","getContentHTML","$file","FilesCommentButton","initImageDiffHelper","isBound","toArray","formatElementToObject","_merge","fileHash","rawButton","renderedButton","renderedViewer","rawViewer","isLocked","firstFile","handleClickUnfold","handleClickLineNum","handleParallelLineDown","$e","viewTypeSwitch","getLocationHash","highlightSelectedLine","openAnchoredDiff","prepareRenderedDiff","since","unfold","prevNewLine","link","replaceWith","locationHash","anchoredDiff","clickTarget","lineClass","originalEvent","diffSource","$diffFiles","allElements","elementsForRenderedDiff","fileElements","onclick","showRawViewer","showRenderedViewer","arrayReduce","deburr","words","reApos","sendEmail","GlModal","GlFormInputGroup","HelpIcon","ModalCopyButton","GlModalDirective","issuableName","mailToLink","subject","new_address","newAddress","$toast","cancelHandler","modal","modifiers","resetIncomingEmailToken","ADVANCED_SAST_NAME","SAST_IAC_NAME","DAST_HELP_PATH","helpPagePath","CONTAINER_SCANNING_FOR_REGISTRY_NAME","COVERAGE_FUZZING_NAME","API_FUZZING_NAME","CLUSTER_IMAGE_SCANNING_NAME","PRE_RECEIVE_SECRET_DETECTION","PRE_RECEIVE_SECRET_DETECTION_NAME","SCANNER_NAMES_MAP","SAST","SAST_ADVANCED","SAST_IAC","DAST","API_FUZZING","CONTAINER_SCANNING","CONTAINER_SCANNING_FOR_REGISTRY","COVERAGE_FUZZING","SECRET_DETECTION","DEPENDENCY_SCANNING","CLUSTER_IMAGE_SCANNING","GENERIC","featureToMutationMap","mutationId","getMutationPayload","projectPath","mutation","configureSastMutation","configuration","global","pipeline","analyzers","configureSastIacMutation","configureSecretDetectionMutation","AUTO_DEVOPS_ENABLED_ALERT_DISMISSED_STORAGE_KEY","TEMP_PROVIDER_LOGOS","Kontra","svg","SecureFlag","TEMP_PROVIDER_URLS","TAB_VULNERABILITY_MANAGEMENT_INDEX","TRACK_TOGGLE_TRAINING_PROVIDER_ACTION","TRACK_TOGGLE_TRAINING_PROVIDER_LABEL","TRACK_CLICK_TRAINING_LINK_ACTION","TRACK_PROVIDER_LEARN_MORE_CLICK_ACTION","TRACK_PROVIDER_LEARN_MORE_CLICK_LABEL","TRACK_TRAINING_LOADED_ACTION","TRACK_PROMOTION_BANNER_CTA_CLICK_ACTION","TRACK_PROMOTION_BANNER_CTA_CLICK_LABEL","configurationHistory","securityTesting","latestPipelineDescription","securityConfiguration","vulnerabilityManagement","securityTraining","securityTrainingDescription","securityTrainingDoc","checkForErrors","errors","validationErrors","cause","modifyPolicy","assignedPolicyProject","namespacePath","yamlEditorValue","extraMergeRequestInput","newPolicyCommitBranch","scanExecutionPolicyCommit","branch","gqClient","mutate","createPolicy","mode","policyYaml","updatePolicy","mergeRequest","sourceBranch","targetBranch","mergeRequestCreate","createMergeRequestMutation","createMergeRequest","goToPolicyMR","assignedPolicyProjectFullPath","redirectToMergeRequest","assignSecurityPolicyProjectAsync","securityPolicyProjectCreateAsync","createPolicyProjectAsync","createHumanizedScanners","scanners","ruleHasConflictingKeys","rule","hasConflictingKeys","hasInvalidKey","allowedValues","isValidPolicy","primaryKeys","rulesKeys","actionsKeys","_policy$rules","_policy$rules2","_policy$actions","slugify","separator","slug","slugifyToArray","branches","hasInvalidCron","cronString","isValidCron","enforceIntValue","renderMultiSelectText","itemTypeName","useAllSelected","useSingleOption","itemsKeys","itemsKeysLength","defaultPlaceholder","commonItems","_intersection","commonItemsLength","oneItemLabel","multiSelectLabel","TEXT_TEMPLATE","NUMBER_TO_EXTRACT","moreLabel","numberOfAdditionalLabels","firstLabel","secondLabel","renderMultiselectLabel","parseCustomFileConfiguration","project","hasFilePath","hasRef","hasProjectPath","showLinkedFile","createProjectWithMinimumValues","mapExceptionsListBoxItem","full_path","mapObjectsToString","itemKey","hasDuplicates","findItemsWithErrors","mapKey","_items$filter","mapBranchesToExceptions","addIdsToPolicy","updatedPolicy","_policy$actions2","_policy$rules3","removeIdsFromPolicy","_policy$actions3","_policy$rules4","enabledRadioButtonTooltipText","getPolicyLimitDetails","policyLimitReached","policyLimit","initialValue","sprintfParameters","radioButton","isEqualOrUndefined","value1","value2","isCauseOfError","errorSources","sourcePrimaryKey","sourceIndex","sourceLocation","parseError","doesFileExist","_data$project","repository","blobs","getMergeRequestConfig","context","compliance_framework_name","frameworkName","compliance_framework_id","frameworkIdString","frameworkLink","gitlab_url","framework","policyBodyToYaml","policyToYaml","_window$gon","securityPoliciesNewYamlFormat","policyWithoutIds","payload","parseAllowDenyLicenseList","licenses","isDenied","DENIED","KEY","ALLOWED","license","_license$packages","exceptions","packages","purls","mapComponentLicenseFormatToYaml","findItemsIntersection","collectionOne","collectionTwo","mapperFn","approver","_isNumber","mappedId","convertToGraphQLId","mapYamlApproversActionsFormatToEditorFormat","group_approvers_ids","groupApproversIds","user_approvers_ids","userApproversIds","role_approvers","roleApprovers","user_approvers","userApprovers","group_approvers","groupApprovers","splitItemsByCommaOrSpace","parseExceptionsStringToItems","parsedExceptions","parsedWithErrorsExceptions","issues","getElement","$labelDropdown","willUpdateLabels","onFormSubmit","getFormDataAsObject","onFormSubmitFailure","assigneeIds","state_event","milestone_id","issuable_ids","subscription_event","health_status","epic_id","sprint_id","add_label_ids","remove_label_ids","assignee_ids","$labelSelect","userCheckedIds","userUncheckedIds","checkedIdsToShow","_difference","_union","getOriginalCommonIds","indeterminateIdsToShow","getOriginalIndeterminateIds","labelIds","uniqueIds","issuableLabels","labelId","scopeEl","YAML_FLOAT_PATTERN","SCIENTIFIC_WITHOUT_DOT","base","digits","POSITIVE_INFINITY","NEGATIVE_INFINITY","isNegativeZero","res","locked","displayText","unlocked","Outside","isEditable","issue","issueCapitalized","mergeRequestCapitalized","lockingMergeRequest","unlockingMergeRequest","lockMergeRequest","unlockMergeRequest","lockedMessage","unlockedMessage","isLoading","isLockDialogOpen","isIssuable","getNoteableData","issuableDisplayName","issuableDisplayNameCapitalized","discussion_locked","lockStatus","lockToggleInProgressText","unlockingMergeRequestText","lockingMergeRequestText","lockToggleText","unlockMergeRequestText","lockMergeRequestText","lockedMessageText","unlockedMessageText","toggleForm","beforeDestroy","toggleLocked","updateLockedAttribute","alertMessage","closeForm","stateToComponentMap","merged","closed","merging","missingBranch","readyToMerge","nothingToMerge","archived","checking","preparing","pipelineFailed","failedToMerge","shaMismatch","mergeChecksFailed","stateKey","diffFileDiscussions","allDiscussions","clickedToggle","toggleDiscussion","calcPercent","renderedSize","DesignNotePin","imageDiffMixin","canComment","showCommentIcon","badgeClass","shouldToggleDiscussion","renderedWidth","renderedHeight","currentCommentForm","getCommentFormForDiffFile","_isArray","getImageDimensions","$parent","getPositionForObject","clickedImage","xPercent","yPercent","openDiffFileCommentForm","resolved","FEEDBACK_TYPE_ISSUE","FEEDBACK_TYPE_MERGE_REQUEST","REPORT_FILE_TYPES","ARCHIVE","TRACE","METADATA","REPORT_TYPE_CONTAINER_SCANNING_FOR_REGISTRY","REPORT_TYPE_CLUSTER_IMAGE_SCANNING","REPORT_TYPE_COVERAGE_FUZZING","REPORT_TYPE_API_FUZZING","reportTypeToSecurityReportTypeEnum","GlTruncate","timeagoMixin","cssClass","dateTimeFormat","DEFAULT_DATE_TIME_FORMAT","timeFormat","DATE_TIME_FORMATS","enableTruncation","timeAgo","OPEN_REVERT_MODAL","REVERT_MODAL_ID","OPEN_CHERRY_PICK_MODAL","CHERRY_PICK_MODAL_ID","I18N_MODAL","startMergeRequest","existingBranch","branchInFork","newMergeRequest","actionCancelText","I18N_REVERT_MODAL","branchLabel","actionPrimaryText","I18N_CHERRY_PICK_MODAL","projectLabel","PREPENDED_MODAL_TEXT","I18N_NO_RESULTS_MESSAGE","I18N_PROJECT_HEADER","I18N_PROJECT_SEARCH_PLACEHOLDER","I18N_BRANCH_HEADER","I18N_BRANCH_SEARCH_PLACEHOLDER","PROJECT_BRANCHES_ERROR","resolveHandler","resolvedState","isResolving","isResolved","resolveAsThread","resolve_path","discussionResolvePath","toggleResolveNote","msg","getApprovalRuleNamesLeft","multipleApprovalRulesAvailable","rulesLeft","_groupBy","_x$type","rule_type","RULE_TYPE_ANY_APPROVER","RULE_TYPE_REGULAR","RULE_TYPE_REPORT_APPROVER","RULE_TYPE_CODE_OWNER","iconName","iconAriaLabel","capitalizeFirstCharacter","backgroundClass","_this$$options$EXTENS","EXTENSION_ICON_CLASS","iconClass","_this$$options$EXTENS2","EXTENSION_ICON_NAMES","baseOrderBy","collection","iteratees","orders","mediator","Mediator","fetch","mountSidebar","DEFAULT_ASSIGNED_POLICY_PROJECT","PAGE_SIZE","GROUP_TYPE","ROLE_TYPE","USER_TYPE","MAX_SCAN_EXECUTION_ACTION_COUNT","fileSymlinkInformation","fileList","iteratedFile","includesSymlink","a_mode","b_mode","DIFF_FILE_SYMLINK_MODE","DIFF_FILE_DELETED_MODE","automaticallyCollapsed","manuallyCollapsed","forceOpen","isNotDiffable","viewerModes","_file$blob2","additionalProperties","drafts","load_collapsed_diff_url","_file$blob","getDerivedMergeRequestInformation","uuids","seeds","file_identifier_hash","identifier","order","collapsedType","_file$viewer2","DIFF_FILE_MANUAL_COLLAPSE","DIFF_FILE_AUTOMATIC_COLLAPSE","_file$viewer3","_file$viewer4","getShortShaFromFile","truncateSha","fileA","fileB","universal","stats","valid","percent","changeInPercent","old_size","new_size","countLinesInBetween","findClosestMatchLine","prevLine","lineExists","linkedIssueTypesMap","BLOCKS","IS_BLOCKED_BY","RELATES_TO","linkedIssueTypesTextMap","autoCompleteTextMap","true","emphasisStart","emphasisEnd","TYPE_INCIDENT","false","inputPlaceholderTextMap","inputPlaceholderConfidentialTextMap","relatedIssuesRemoveErrorMap","pathIndeterminateErrorMap","itemAddFailureTypesMap","NOT_FOUND","MAX_NUMBER_OF_CHILD_EPICS","addRelatedIssueErrorMap","addRelatedItemErrorMap","issuableIconMap","PathIdSeparator","Issue","issuablesBlockHeaderTextMap","issuablesBlockHelpTextMap","issuablesBlockAddButtonTextMap","issuablesFormCategoryHeaderTextMap","issuablesFormInputTextMap","baseFlatten","hasDetailedStatus","detailedStatus","CiIcon","pipelinePath","maxRenderedPipelines","totalPipelineCount","pipelinesTrimmed","shouldRenderCounter","counterLabel","counterTooltipText","pipelineTooltipText","_pipeline$project","_pipeline$detailedSta","loadingText","mergeTrainMessage","stage","stageJobsFetchError","viewStageLabel","JobDropdownItem","isMergeTrain","emits","isDropdownOpen","stageJobs","apollo","getQueryHeaders","graphqlEtag","getPipelineStageJobsQuery","skip","pollInterval","PIPELINE_POLL_INTERVAL_DEFAULT","_data$ciPipelineStage","ciPipelineStage","jobs","reportToSentry","dropdownHeaderText","dropdownTooltipTitle","graphqlEtagStagePath","$apollo","queries","toggleQueryPollingByVisibility","onHideDropdown","stopPolling","onShowDropdown","startPolling","stageAriaLabel","PipelineStageDropdown","job","stages","arrowStyles","DownstreamPipelines","PipelineStages","downstreamPipelines","pipelineStages","upstreamPipeline","formattedDownstreamPipelines","details","TYPENAME_CI_PIPELINE","formattedStages","TYPENAME_CI_STAGE","hasDownstreamPipelines","latestDownstreamPipelines","hasUpstreamPipeline","_this$upstreamPipelin","keepLatestDownstreamPipelines","upstreamPipelineStatus","_this$upstreamPipelin2","_this$upstreamPipelin3","upstreamTooltipText","_this$upstreamPipelin4","_this$upstreamPipelin5","baseDifference","baseRest","isArrayLikeObject","SEVERITY","STATUS","TYPE","ATTRIBUTE","AGE","ALLOW_DENY","UNKNOWN_LICENSE","AGE_TOOLTIP_MAXIMUM_REACHED","AGE_TOOLTIP_NO_PREVIOUSLY_EXISTING_VULNERABILITY","AGE_TOOLTIPS","FILTERS","LICENCE_FILTERS","ALLOWED_DENIED_OPTIONS","ALLOWED_DENIED_LISTBOX_ITEMS","AGE_DAY","AGE_INTERVALS","VULNERABILITY_AGE_ALLOWED_KEYS","FILTERS_STATUS_INDEX","FIX_AVAILABLE","FALSE_POSITIVE","VULNERABILITY_ATTRIBUTES","VULNERABILITY_ATTRIBUTE_OPERATORS","NEWLY_DETECTED","PREVIOUSLY_EXISTING","NEEDS_TRIAGE_PLURAL","NEEDS_TRIAGE_SINGULAR","APPROVAL_VULNERABILITY_STATE_GROUPS","APPROVAL_VULNERABILITY_STATES","new_needs_triage","new_dismissed","detected","confirmed","dismissed","DEFAULT_VULNERABILITY_STATES","APPROVAL_VULNERABILITY_STATES_FLAT","states","extends","iconStateClass","GlPopover","triggerClass","targetFn","_this$$refs$popoverTr","popoverTrigger","slot","BULK_IMPORT_STATIC_ITEMS","badges","boards","epics","labels","iterations_cadences","members","merge_requests","milestones","namespace_settings","auto_devops","ci_pipelines","container_expiration_policy","design","project_feature","protected_branches","push_rule","service_desk_setting","vulnerabilities","commit_notes","STATISTIC_ITEMS","diff_note","issue_attachment","issue_event","lfs_object","merge_request_attachment","milestone","note_attachment","protected_branch","collaborator","pull_request","pull_request_merged_by","pull_request_review","pull_request_review_request","release","release_attachment","convertObjectPropsToCamelCase","getDayDifference","date1","date2","getDateInPast","daysInPast","getDateInFuture","daysInFuture","areDatesEqual","displayAsText","textSize","disableTooltip","statusText","statusClass","statusIcon","statusColor","textSizeClass","deburrLetter","basePropertyOf","pair","avatars","maxVisible","avatarSize","badgeSrOnlyText","badgeTooltipProp","badgeTooltipMaxChars","hiddenAvatars","16","32","badgeSize","collapsable","badgeTooltipTitle","badgeLabel","baseUniq","union","isProjectArchived","getNoteableDataByProp","archivedProjectDocsPath","lockedIssueDocsPath","notes","withBatchComments","_state$batchComments","batchComments","addReplyToReview","noteText","errorCallback","postData","reply_id","draft_note","for_commit","project_id","saveDraft","isReplying","handleClearForm","response","_response$data","reason","errorMessage","SAVING_THE_COMMENT_FAILED","SOMETHING_WENT_WRONG","addToReview","_diffFile$diff_refs","commentLineStart","formatLineRange","diffFileCommentForm","IMAGE_DIFF_POSITION_TYPE","diffFileHeadSha","_this2$line","closeDiffFileCommentForm","diffFileHash","FILE_DIFF_POSITION_TYPE","toggleFileCommentForm","file_path","_response$data2","cancelCommentForm","autosaveKey","clearDraft","resetAutoSave","showDraft","replyId","shouldRenderDraftRowInDiscussion","asciiWords","hasUnicodeWord","unicodeWords","pattern","backgroundClasses","warning","transform","computedValue","computedMax","renderInfo","innerCssClasses","hasFileSize","hasDimensions","safePath","encodeSaferUrl","resizeThrottled","onImgLoad","_throttle","calculateImgSize","timeout","contentImg","reAsciiWord","styleRemove","removeProperty","styleConstant","priority","setProperty","styleFunction","styleValue","waitFor","getEl","interval","t","sleep","GlAlert","MarkdownField","LocalStorageSync","ContentEditor","setFacade","Function","renderMarkdownPath","uploadsPath","uploads_path","enableContentEditor","formFieldProps","autofocus","enableAutocomplete","autocompleteDataSources","supportsQuickActions","markdownDocsPath","drawioEnabled","disableAttachments","codeSuggestionsConfig","restrictedToolBarItems","restoreFromAutosave","editingMode","text_editor","EDITING_MODE_CONTENT_EDITOR","EDITING_MODE_MARKDOWN_FIELD","EDITING_MODE_KEY","autosaveValue","getDraft","alert","markdown","autofocused","isContentEditorActive","contentEditorAutofocused","markdownFieldRestrictedToolBarItems","restrictAttachments","isDefaultEditorEnabled","_window$gon2","_this$setFacade","autofocusTextarea","getValue","setValue","CLEAR_AUTOSAVE_ENTRY_EVENT","updateValue","autosizeTextarea","setTemplate","template","dismiss","applyTemplateAlert","primaryButtonText","secondaryButtonText","primaryAction","secondaryAction","updateMarkdownFromContentEditor","updateMarkdownFromMarkdownField","renderMarkdown","render_quick_actions","origin","otherData","onEditingModeChange","notifyEditingModeChange","onEditingModeRestored","componentToFocus","contentEditor","textarea","setEditorAsAutofocused","updateDraft","togglePreview","markdownField","previewMarkdown","Autosize","ctrlKey","metaKey","placeholder","domProps","canSuggest","showPopover","__assign","defineProperty","safeParseInt","isQuestionMark","validateForRange","condition","splits","endsWith","sides","isWildcard","_a","small","big","isValidRange","isValidStep","monthAlias","jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec","weekdaysAlias","sun","mon","tue","wed","thu","fri","sat","defaultOptions","seconds","allowBlankDay","allowSevenAsSunday","cron","checks","shift","hasValidSeconds","minutes","hours","hasValidMinutes","hasValidHours","hasValidDays","remappedMonths","hasValidMonths","remappedWeekdays","hasValidWeekdays","hasCompatibleDayFormat","unassigned","GlDropdownForm","GlDropdown","GlDropdownDivider","SidebarParticipant","headerText","allowMultipleAssignees","isEditing","issuableId","issuableAuthor","searchUsers","isSearching","participantsQueries","skipQuery","getStatus","_data$workspace","workspace","issuable","canMerge","userSearchQueries","searchUsersVariables","_data$workspace2","_user$mergeRequestInt","mergeRequestInteraction","isMergeRequest","TYPENAME_MERGE_REQUEST","_this$participants","filteredParticipants","mergedSearchResults","current","moveCurrentUserAndAuthorToStart","isSearchEmpty","shouldShowParticipants","isCurrentUserInList","noUsersFound","showCurrentUser","showAuthor","selectedFiltered","foundUsernames","filtered","selectedUserNames","unselectedFiltered","_this$users","selectedIsEmpty","debouncedSearchKeyUpdate","_debounce","setSearchKey","DEFAULT_DEBOUNCE_AND_THROTTLE_MS","selectAssignee","clearAndFocusSearch","unassign","unselect","focusSearch","showDropdown","showDivider","sortedUsers","_this5$issuableAuthor","unselectedUser","GlButtonGroup","glFeatureFlagsMixin","discussionNavigation","blocksMerge","jumpNext","jumpToNextDiscussion","jumpPrevious","jumpToPreviousDiscussion","allResolved","unresolvedDiscussionsCount","toggleThreadsLabel","allVisibleDiscussionsExpanded","nextUnresolvedDiscussionShortcutKey","shouldDisableShortcuts","keysFor","MR_NEXT_UNRESOLVED_DISCUSSION","nextUnresolvedDiscussionTitle","nextUnresolvedDiscussionTooltip","sanitize","previousUnresolvedDiscussionShortcutKey","MR_PREVIOUS_UNRESOLVED_DISCUSSION","previousUnresolvedDiscussionTitle","previousUnresolvedDiscussionTooltip","resolveAllDiscussionsIssuePath","create_issue_to_resolve_discussions_path","threadOptions","toggleAllVisibleDiscussions","extraAttrs","isNotificationsTodosButtons","glFeatures","notificationsTodosButtons","resolvableDiscussionsCount","initMrStateLazyLoad","mrNotes","reviewBarParams","discussionsEl","diffsEl","activeTab","notesDataset","diffsDataset","currentUserData","endpoints","metadata","endpointMetadata","mrPath","endpointBatch","endpointDiffForPath","endpointCoverage","endpointUpdateUser","updateCurrentUserPath","dismissEndpoint","showSuggestPopover","viewDiffsFileByFile","fileByFileDefault","defaultSuggestionCommitMessage","mrReviews","getReviewsForMergeRequest","DIFF_VIEW_COOKIE_NAME","INLINE_DIFF_VIEW_TYPE","setupMrNotesState","$once","ReviewBar","newCommentTemplatePaths","canSummarize","fetchDrafts","draftsCount","initReviewBar","discussionsCount","getters","discussionTabCounter","initOverviewTabCounter","DiscussionCounter","initDiscussionCounter","immediate","lazyLoadParams","mrShowNode","mrAction","initRevertCommitModal","initCherryPickCommitModal","initMrNotes","$subscribe","titleSubscription","mergeRequestMergeStatusUpdated","titleHtml","GlIntersectionObserver","StatusBadge","ImportedBadge","TodoWidget","SubscriptionsWidget","ClipboardButton","defaultBranchName","sourceProjectPath","isFluidLayout","isImported","isStickyHeaderVisible","discussionCounter","doneFetchingBatchDiscussions","badgeState","issuableIid","isSignedIn","isForked","source_branch","copySourceBranchTooltip","shouldShowTargetCopyButton","target_branch","setStickyHeaderVisible","visitTab","_window$mrTabs","safeHtmlConfig","ADD_TAGS","arg","source_branch_path","target_branch_path","signalBus","apolloClient","createApolloClient","signaler","tabCount","subscriber","subscribe","diffGeneratedSubscription","gid","mergeRequestDiffGenerated","EVT_MR_DIFF_GENERATED","unsubscribe","observeMergeRequestDiffGenerated","currentStatus","getMr","gqlMrId","preparedAt","preparationObservable","preparationSubscriber","mrPreparation","preparationUpdate","_preparationUpdate$da","EVT_MR_PREPARED","observeMergeRequestFinishingPreparation","copyReferenceText","reportAbuse","markAsReady","markAsDraft","closing","reopen","reopening","lock","mergeRequestActions","SidebarSubscriptionsWidget","AbuseCategorySelector","glFeatureFlagMixin","reportAbusePath","editUrl","isCurrentUser","defauilt","canUpdateMergeRequest","isMerged","sourceProjectMissing","clipboardText","reportedUserId","isLoadingDraft","isLoadingClipboard","isReportAbuseDrawerOpen","isDropdownVisible","draftLabel","draftState","editItem","showDropdownTooltip","draftAction","closeActionsDropdown","stateAction","api","updateMergeRequest","target_project_id","copyClipboardAction","reportAbuseAction","mrMoreActionsDropdown","showReopenMergeRequestOption","hideDropdown","initMrExperienceSurvey","_gon$features","mrExperienceSurvey","Tracker","enabled","startMrSurveyApp","tabData","observable","initMrPage","ZenMode","initPipelineCountListener","addShortcutsExtension","ShortcutsIssuable","initSourcegraph","initAwardsApp","initCheckoutModal","hidden","imported","getStateQuery","MergeRequestHeader","initialState","copyReferenceButton","initShow","beforeCreate","initReportAbuse","MrMoreDropdown","initMrMoreDropdown","startCodeReviewMessaging","diffsEventHub","changesCountBadge","fileCount","diffStatsSummary","DIFF_TAB_INDEX","diffTab","initSidebarBundle","parsedData","StickyHeader","callbacks","Map","activeEventTypes","lastMousedown","globalListener","eventTypes","onMousedown","OutsideDirective","bindings","_ref3","modifiersList","parseBinding","eventType","startListening","unbind","eventTypesToUnbind","SmartInterval","cfg","startingInterval","maxInterval","hiddenInterval","incrementByFactorOf","lazyStart","immediateExecution","intervalId","currentInterval","pagevisibile","initInterval","triggerCallback","setInterval","getCurrentInterval","incrementInterval","resume","setCurrentInterval","stopTimer","onVisibilityHidden","onVisibilityVisible","onVisibilityChange","onWindowVisibilityChange","initVisibilityChangeHandling","initPageUnloadHandling","handleVisibilityChange","visibilityState","isPageVisible","newInterval","nextInterval","clearInterval","DISCUSSION_SINGLE_DIFF_FAILED","DIFF_FILE_HEADER","optionsDropdownTitle","fileReviewLabel","fileReviewTooltip","DIFF_FILE","tooLarge","blobView","editInFork","fork","autoCollapsed","autoCollapsedGenerated","START_THREAD","SETTINGS_DROPDOWN","whitespace","fileByFile","preferences","CONFLICT_TEXT","both_modified","modified_source_removed_target","modified_target_removed_source","renamed_same_file","removed_source_renamed_target","removed_target_renamed_source","both_added","HIDE_COMMENTS","BUILDING_YOUR_MR","ERROR_LOADING_FULL_DIFF","ERROR_DISMISSING_SUGESTION_POPOVER","ENCODED_FILE_PATHS_TITLE","ENCODED_FILE_PATHS_MESSAGE","copyObject","noop","Dispatch","parseTypenames","typenames","types","typename","T","copy","that","definition","Color","reI","reN","reP","reHex","reRgbInteger","reRgbPercent","reRgbaInteger","reRgbaPercent","reHslPercent","reHslaPercent","named","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","color_formatHex","rgb","formatHex","color_formatRgb","formatRgb","rgbn","Rgb","rgba","hsla","g","rgbConvert","o","rgb_formatHex","hex","rgb_formatRgb","Hsl","hslConvert","hsl2rgb","m1","m2","basis","t1","v0","v1","v2","v3","t2","t3","define","channels","displayable","formatHsl","brighter","darker","linear","gamma","nogamma","exponential","rgbGamma","rgbSpline","spline","colors","reA","reB","taskHead","taskTail","am","bm","bs","bi","one","clockLast","clockNow","clockSkew","clock","performance","setFrame","clearNow","Timer","_call","_time","_next","timer","delay","restart","wake","timerFlush","t0","nap","poke","clearTimeout","TypeError","elapsed","emptyOn","emptyTween","schedules","__transition","tween","__data__","tick","duration","ease","timing","schedule","cssNode","cssRoot","cssView","svgNode","empty","degrees","PI","translateX","translateY","rotate","skewX","scaleX","scaleY","atan2","atan","interpolateTransform","pxComma","pxParen","degParen","xa","ya","xb","yb","translate","scale","interpolateTransformCss","defaultView","decompose","interpolateTransformSvg","createElementNS","baseVal","consolidate","matrix","tweenRemove","tween0","tween1","tweenFunction","tweenValue","transition","_id","attrRemove","attrRemoveNS","fullname","removeAttributeNS","space","local","attrConstant","interpolate","string00","interpolate0","string1","string0","attrConstantNS","getAttributeNS","attrFunction","string10","attrFunctionNS","attrInterpolate","attrInterpolateNS","setAttributeNS","attrTweenNS","_value","attrTween","delayFunction","delayConstant","durationFunction","durationConstant","easeConstant","onFunction","listener","on0","on1","sit","Selection","styleInterpolate","styleTween","textInterpolate","textTween","Transition","groups","_groups","_parents","_name","newId","selection_prototype","subgroups","subnode","subgroup","selectorAll","child","inherit","matcher","merge","groups0","groups1","m0","merges","group0","group1","id0","id1","styleNull","listener0","styleMaybeRemove","textFunction","textConstant","reject","interrupt","defaultTiming","number1","number2","cos","sin","proto","xm","ym","xp","yp","_root","leaf","x0","_x0","y0","_y0","x1","_x1","y1","_y1","_x","quadtree","Quadtree","addAll","leaf_copy","treeProto","cover","xz","yz","z","visit","extent","x2","y2","x3","y3","quads","radius","dx","dy","d2","retainer","previous","removeAll","visitAfter","randomUniform","sourceRandomUniform","randomNormal","mu","sigma","sourceRandomNormal","randomLogNormal","normal","exp","sourceRandomLogNormal","randomIrwinHall","sourceRandomIrwinHall","randomBates","irwinHall","sourceRandomBates","randomExponential","lambda","sourceRandomExponential","re","formatSpecifier","specifier","FormatSpecifier","fill","align","symbol","zero","comma","formatDecimalParts","coefficient","prefixExponent","exponent","toLocaleString","toPrecision","formatRounded","prefixes","locale","grouping","thousands","currencyPrefix","currency","currencySuffix","decimal","numerals","formatNumerals","minus","nan","newFormat","formatTypes","suffix","formatType","maybeSuffix","valuePrefix","valueSuffix","valueNegative","out","i1","formatTrim","formatPrefix","floori","offseti","d0","d1","setFullYear","weekday","getTimezoneOffset","sunday","monday","tuesday","wednesday","thursday","friday","saturday","getMilliseconds","getSeconds","getMinutes","getHours","getUTCSeconds","utcWeekday","setUTCDate","getUTCDate","getUTCDay","setUTCHours","utcSunday","utcMonday","utcTuesday","utcWednesday","utcThursday","utcFriday","utcSaturday","utcDay","utcYear","setUTCMonth","setUTCFullYear","getUTCFullYear","localDate","H","M","S","L","utcDate","pads","numberRe","percentRe","requoteRe","pad","requote","formatRe","formatLookup","parseWeekdayNumberSunday","w","parseWeekdayNumberMonday","u","parseWeekNumberSunday","U","parseWeekNumberISO","V","parseWeekNumberMonday","W","parseFullYear","parseYear","parseZone","Z","parseQuarter","parseMonthNumber","parseDayOfMonth","parseDayOfYear","parseHour24","parseMinutes","parseSeconds","parseMilliseconds","parseMicroseconds","parseLiteralPercent","parseUnixTimestamp","Q","parseUnixTimestampSeconds","formatDayOfMonth","formatHour24","formatHour12","formatDayOfYear","formatMilliseconds","formatMicroseconds","formatMonthNumber","formatMinutes","formatSeconds","formatWeekdayNumberMonday","formatWeekNumberSunday","dISO","formatWeekNumberISO","formatWeekdayNumberSunday","formatWeekNumberMonday","formatYearISO","formatFullYear","formatFullYearISO","formatZone","formatUTCDayOfMonth","formatUTCHour24","getUTCHours","formatUTCHour12","formatUTCDayOfYear","formatUTCMilliseconds","getUTCMilliseconds","formatUTCMicroseconds","formatUTCMonthNumber","getUTCMonth","formatUTCMinutes","getUTCMinutes","formatUTCSeconds","formatUTCWeekdayNumberMonday","dow","formatUTCWeekNumberSunday","UTCdISO","formatUTCWeekNumberISO","formatUTCWeekdayNumberSunday","formatUTCWeekNumberMonday","formatUTCYear","formatUTCYearISO","formatUTCFullYear","formatUTCFullYearISO","formatUTCZone","formatLiteralPercent","formatUnixTimestamp","formatUnixTimestampSeconds","locale_dateTime","dateTime","locale_date","locale_time","locale_periods","periods","locale_weekdays","locale_shortWeekdays","shortDays","locale_months","locale_shortMonths","shortMonths","periodRe","periodLookup","weekdayRe","weekdayLookup","shortWeekdayRe","shortWeekdayLookup","monthRe","monthLookup","shortMonthRe","shortMonthLookup","formats","utcFormats","parses","parseSpecifier","newParse","week","X","utcFormat","utcParse","formatLocale","utcMonth","utcHour","setUTCMinutes","utcMinute","setUTCSeconds","RedBlackTree","RedBlackNode","C","R","P","N","RedBlackRotateLeft","RedBlackRotateRight","RedBlackFirst","insert","grandpa","uncle","sibling","createEdge","edge","setEdgeEnd","halfedges","createBorderEdge","vertex","clipEdge","ax","ay","connectEdge","fm","fb","lx","ly","rx","ry","fx","fy","cellHalfedgeAngle","cell","va","vb","cellHalfedgeStart","cellHalfedgeEnd","firstCircle","circlePool","Circle","arc","cy","attachCircle","lArc","rArc","lSite","cSite","rSite","bx","cx","epsilon2","ha","hc","circle","circles","detachCircle","beachPool","Beach","createBeach","beach","detachBeach","beaches","removeBeach","disappearing","iArc","nArcs","addBeach","dxl","dxr","directrix","leftBreakPoint","rightBreakPoint","createCell","newArc","hb","rfocx","rfocy","pby2","lfocx","lfocy","plby2","hl","aby2","lexicographic","Diagram","sites","sortCellHalfedges","clipEdges","iCell","iHalfedge","nHalfedges","startX","startY","endX","endY","nCells","dc","v00","v01","v11","v10","clipCells","edges","polygons","polygon","triangles","s0","e1","s1","links","_found","vx","vy","SQRT2","Transform","point","applyX","applyY","invertX","invertY","rescaleX","domain","rescaleY","trackingMixin","TodoButton","GlAnimatedTodoIcon","isClassicSidebar","todoId","todoQueries","currentUserTodos","_data$workspace$issua","_currentUserTodos$","subscribeToMore","subscription","todoIdQuery","todoIdQueryVariables","_this$$apollo$queries","hasTodo","todoMutationType","todoMutationTypes","markDone","tootltipTitle","todoLabel","toggleTodo","todoMutations","todoMutation","todo","queryProps","sourceData","readQuery","produce","writeQuery","track","textClass","BDropdownText","functional","issuableListTabs","STATUS_OPEN","titleTooltip","STATUS_CLOSED","STATUS_ALL","mergeRequestListTabs","STATUS_MERGED","availableSortOptions","sortDirection","descending","DEFAULT_PAGE_SIZE","DEFAULT_SKELETON_COUNT","PAGE_SIZE_STORAGE_KEY","TABLE_TAG_NAMES","filterEvent","tagName","labelFor","targetDepth","depth","justify","sourceLinks","center","targetLinks","ascendingSourceBreadth","ascendingBreadth","ascendingTargetBreadth","defaultId","defaultNodes","graph","defaultLinks","nodeById","computeLinkBreadths","Sankey","py","linkSort","sankey","computeNodeLinks","computeNodeValues","computeNodeDepths","computeNodeHeights","computeNodeBreadths","fixedValue","kx","layer","computeNodeLayers","ky","reorderLinks","initializeNodeBreadths","alpha","beta","relaxRightToLeft","relaxLeftToRight","targetTop","reorderNodeLinks","resolveCollisions","sourceTop","resolveCollisionsBottomToTop","resolveCollisionsTopToBottom","nodeId","nodeAlign","nodeSort","nodeWidth","nodePadding","linkSource","linkTarget","curve","argv","curveHorizontal","moveTo","bezierCurveTo","horizontalSource","horizontalTarget","initInviteMembersModal","primaryActionEventName","pushCode","branchCollaboration","branchesEndpoint","createStore","defaultBranch","modalTitle","prependedText","CommitFormModal","openModal","badgePropertiesMap","STATUS_LOCKED","badgeProperties","ROOT_ACTION_EVENT_NAME_SHOW","PROPERTY","getTarget","getTriggerElement","setRole","oldProp","handler","componentUpdated","binding","vnode","VBModal","inserted","updated","Ue","Qt","Zt","defineProperties","er","getOwnPropertyDescriptors","getOwnPropertySymbols","Le","Me","propertyIsEnumerable","Oe","Be","enumerable","configurable","writable","D","E","O","throw","done","Int32Array","ae","Uint8Array","ee","F","ze","se","Xe","te","ie","ce","Qe","G","le","A","lt","toDataURL","ne","ue","protocol","Y","implementation","createHTMLDocument","ownerDocument","J","fe","de","XMLSerializer","serializeToString","ut","toBlob","quality","atob","Blob","ft","me","FileReader","onload","onerror","onabort","readAsDataURL","readAsArrayBuffer","dt","decoding","src","currentSrc","poster","readyState","once","decode","originalSrc","ge","all","he","we","gt","it","timeEnd","ct","ht","Ge","pe","autoDestruct","workerUrl","workerNumber","debug","backgroundColor","maximumCanvasSize","progress","requestInit","bypassingCache","fetchFn","font","drawImageInterval","onCloneNode","onEmbedNode","onCreateForeignObjectSvg","includeStyleProperties","__CONTEXT__","ownerWindow","dpi","svgStyleElement","ye","svgDefsElement","svgStyles","defaultComputedStyles","workers","Worker","onmessage","I","onmessageerror","fontFamilies","fontCssTexts","acceptOfImage","requests","drawImageCount","tasks","isEnable","wt","pt","canvas","context2d","getContext","fillStyle","fillRect","yt","drawImage","bt","St","be","sandbox","visibility","namespaceURI","Se","getPropertyPriority","lastIndexOf","Et","Ct","Ee","cloneNode","putImageData","getImageData","xt","et","st","oe","Nt","srcset","kt","crossOrigin","currentTime","It","Ce","Te","nt","currentParentNodeStyle","currentNodeStyle","DOMMatrix","translateSelf","Dt","ve","shadowRoot","firstChild","assignedNodes","Pt","Ze","getAttributeNames","scrollWidth","At","Rt","scrollHeight","Tt","tt","ot","vt","Ae","Ft","responseType","We","AbortController","abort","signal","requestType","imageDom","accept","postMessage","rawUrl","Ne","Ie","ke","Ut","$t","cssText","De","styleSheets","cssRules","Je","Bt","xe","Lt","insertRule","Ye","parentStyleSheet","Mt","Ot","preferredFormat","jt","Re","Wt","Ke","Vt","qt","Pe","Ht","K","B","He","btoa","fromCharCode","Fe","createContext","destroyContext","domToBlob","mt","domToCanvas","domToDataUrl","domToForeignObjectSvg","domToImage","domToJpeg","domToPixel","domToPng","domToSvg","domToWebp","loadMedia","waitUntilLoad","Symbol","toStringTag","pi","tau","tauEpsilon","Path","closePath","lineTo","quadraticCurveTo","arcTo","x21","y21","x01","y01","l01_2","x20","y20","l21_2","l20_2","l21","l01","acos","t01","t21","a0","a1","ccw","cw","da","pipelineCount","implicit","lowercase","uppercase","camelcase","baseDelay","func","wait","buttonText","BFormRadio","checked","findNoteObjectById","getQuickActionText","executedCommands","AjaxCache","GfmAutoComplete","dataSources","commands","command","commandDescription","prepareDiffLines","createGqClient","fetchPolicy","fetchPolicies","NO_CACHE","utils","updateIssueLockMutation","updateMergeRequestLockMutation","discussionLocked","issueSetLocked","mergeRequestSetLocked","expandDiscussion","collapseDiscussion","setNotesData","setNoteableData","setConfidentiality","setUserData","setLastFetchedAt","setInitialNotes","setTargetNoteHash","setNotesFetchedState","toggleAllDiscussions","allDiscussionsExpanded","fetchDiscussions","persistFilter","notes_filter","persist_filter","constants","fetchNotes","isFetching","getFetchDiscussionsConfig","notesEventHub","initPolling","isPollingInitialized","getNotesDataByProp","debouncedFetchUpdatedNotes","actionCable","subscriptions","channel","group_id","noteableId","connected","received","fetchDiscussionsBatch","cursor","_config$params","nextConfig","updateDiscussion","setDiscussionSortDirection","direction","setTimelineView","setSelectedCommentPosition","setSelectedCommentPositionHover","removeNote","isInMRPage","deleteNote","updateNote","updateOrCreateNotes","notesById","base_discussion","currentlyFetchingDiscussions","discussionsPath","promoteCommentToTimelineEvent","addError","addGenericError","promoteTimelineEvent","TYPENAME_NOTE","_data$timelineEventPr","timelineEventPromoteFromNote","captureError","errorObj","replyToDiscussion","createNewNote","removePlaceholderNotes","mutationType","closeIssuable","reopenIssuable","reopenPath","toggleStateButtonLoading","emitStateChangedEvent","EVENT_ISSUABLE_VUE_APP_CHANGE","isClosed","openState","toggleIssueLocalState","STATUS_REOPENED","saveNote","noteData","placeholderText","hasQuickActions","methodToDispatch","noteBody","isSystemNote","quick_actions_status","command_names","commandNames","confidentialWidget","VARIANT_INFO","flashContainer","commands_changes","commandsChanges","emoji_award","emojiAward","spend_time","spendTime","time_estimate","timeEstimate","sidebarTimeTrackingEventHub","setFetchingState","fetchingState","fetchUpdatedNotes","notesPath","lastFetchedAt","getFetchDataParams","resp","_resp$notes","isResolvingDiscussion","last_fetched_at","pollSuccessCallBack","toggleAwardRequest","fetchDiscussionDiffLines","truncated_diff_lines_path","truncated_diff_lines","updateMergeRequestWidget","mrWidgetEventHub","setLoadingState","filterDiscussion","setCommentsDisabled","startTaskList","nextTick","updateResolvableDiscussionsCounts","submitSuggestion","suggestionId","applySuggestion","_err$response$data","defaultMessage","submitSuggestionBatch","suggestionIds","batchSuggestionsInfo","applySuggestionBatch","suggestionInfo","_err$response$data2","addSuggestionInfoToBatch","removeSuggestionInfoFromBatch","convertToDiscussion","removeConvertedDiscussion","setCurrentDiscussionId","fetchDescriptionVersion","startingVersion","versionId","requestUrl","mergeUrlParams","start_version_id","descriptionVersion","requestDescriptionVersion","receiveDescriptionVersion","receiveDescriptionVersionError","softDeleteDescriptionVersion","requestDeleteDescriptionVersion","receiveDeleteDescriptionVersion","receiveDeleteDescriptionVersionError","updateAssignees","assignees","updateDiscussionPosition","updatedPosition","updateMergeRequestFilters","newFilters","collapseSystemNotes","lastDescriptionSystemNote","lastDescriptionSystemNoteIndex","currentNote","system","DESCRIPTION_TYPE","isDescriptionSystemNote","noteBeggining","noteEnd","descriptionNoteBegin","timeDifferenceMinutes","getTimeDifferenceMinutes","TIME_DIFFERENCE_VALUE","description_version_deleted","start_description_version_id","description_version_id","rootState","discussionsInState","_clone","filters","firstNote","hidingFilters","_filter$systemNoteIco","_filter$noteType","_firstNote$author","_filter$noteText","_firstNote$author2","_firstNote$author3","systemNoteIcons","system_note_icon_name","noteType","bot","individualNote","individual_note","hideActivity","mergeRequestFilters","isTimelineEnabled","transformedToIndividualNotes","getDraftComments","discussionSortOrder","convertedDisscussionIds","targetNoteHash","getNotesData","isNotesFetched","persistSortOrder","timelineEnabled","getBlockedByIssues","blocked_by_issues","userCanReply","current_user","can_create_note","getUserData","userData","getUserDataByProp","descriptionVersions","canUserAddIncidentTimelineEvents","_state$userData","can_add_timeline_events","Incident","ISSUE_NOTEABLE_TYPE","MERGE_REQUEST_NOTEABLE_TYPE","EPIC_NOTEABLE_TYPE","merge_params","reverseNotes","isLastNote","getCurrentUserLastNote","_flattenDeep","getDiscussionLastNote","showJumpToNextDiscussion","unresolvedDiscussionsIdsByDiff","unresolvedDiscussionsIdsByDate","resolvedDiscussionsById","allResolvableDiscussions","resolvable","aDate","bDate","allState","authoritativeFiles","diff_file","authoritativeA","authoritativeB","aLines","bLines","resolvedDiscussionCount","resolvedMap","unresolvedDiscussionsIdsOrdered","diffOrder","isLastUnresolvedDiscussion","idsOrdered","findUnresolvedDiscussionIdNeighbor","diffIds","dateIds","ids","nextUnresolvedDiscussionId","previousUnresolvedDiscussionId","firstUnresolvedDiscussionId","getDiscussion","suggestionsCount","_n$suggestions","suggestions","hasDrafts","rootGetters","getSuggestionsFilePaths","suggestion","_discussion$diff_file","defaultConfig","currentFilter","doesHashExistInUrl","expanded","isDiscussion","resolve_with_issue_path","diff_discussion","existingNote","noteObj","isPlaceholderNote","discussionsData","diffData","newDiscussion","oldDiscussion","existingDiscussion","fetchedAt","notesArr","placeholderType","hasEmojiAwardedByCurrentUser","award_emoji","forceExpanded","discussionIds","resolved_at","resolved_by","resolved_by_push","applied","appliable","isApplyingBatch","is_applying_batch","selectedDiscussion","disc","isToggleStateButtonLoading","selectedCommentPosition","selectedCommentPositionHover","currentDiscussionId","isLoadingDescriptionVersion","isPromoteCommentToTimelineEventInProgress","createState","ASC","preview_note_path","MR_FILTER_OPTIONS","DEFAULT_CALLBACKS","KEY_CODE","App","ESC","TAB","ENTER","CTRL","LEFT","UP","RIGHT","DOWN","BACKSPACE","SPACE","beforeSave","Controller","arrayToDefaultHash","flag","subtext","should_startWithSpace","acceptSpaceBar","decodeURI","remoteFilter","sorter","atwho_order","tplEval","tpl","error1","highlighter","li","regexp","$1","$2","$3","beforeInsert","$li","beforeReposition","afterMatchFailed","currentFlag","controllers","aliasMaps","setupRootElement","listen","createContainer","asRoot","parentWindow","frameElement","atwho","iframeAsRoot","controller","setContextFor","reg","setting","EditableController","TextareaController","isComposing","onKeyup","expectedQueryCBId","getOpt","lastScrollTop","currentScrollTop","shutdown","results","lookUp","visible","choose","at1","uid","Model","View","callDefault","funcName","default_value","insertContentFor","renderView","catchQuery","_delayLookUp","_lookUp","remaining","previousCallTime","_stopDelayedCall","delayedCallTimeout","_generateQueryCBId","_callback","queryCBId","ctor","__super__","superClass","caretPos","isString","iframeOffset","scaleBottom","startStr","headPos","change","_getRange","_setRange","setEndAfter","setStartAfter","setEndBefore","setStartBefore","_clearRange","ctrl_a_pressed","_movingEvent","which","_unwrap","unwrap","nodeValue","$inserted","$query","_range","lastNode","matched","query_content","startContainer","contents","last","ELEMENT_NODE","startOffset","cloneContents","TEXT_NODE","previousSibling","siblings","surroundContents","getClientRects","overrides","suffixNode","storage","saved","_remoteFilter","save","load","_load","$elUl","timeoutID","bindEvent","header_tpl","lastCoordX","lastCoordY","$cur","clientX","clientY","expr","stopShowing","_window","overflowOffset","nextEl","prevEl","$ul","isSelecting","setIframe","run","_args","displayTpl","insertTpl","headerTpl","functionOverrides","hideWithoutSuffix","startWithSpace","highlightFirst","limit","maxLen","minLen","displayTimeout","spaceSelectsMatch","tabSelectsMatch","editableAtwhoQueryAttrs","scrollDuration","suspendOnComposing","lookUpOnClick","noResultsMessage","branchHeaderTitle","branchSearchPlaceholder","searchTerm","listboxItems","selectedItem","transformedList","joinedBranches","fetchBranches","selectBranch","debouncedSearch","searchTermChanged","projectHeaderTitle","projectSearchPlaceholder","filterTerm","filteredResults","lowerCasedFilterTerm","sortedProjects","selectedProject","targetProjectId","selectProject","BranchesDropdown","ProjectsDropdown","GlForm","GlFormCheckbox","GlFormGroup","isCherryPick","actionPrimary","actionCancel","BV_SHOW_MODAL","handlePrimary","trackRedisHllUserEvent","resetModalHandler","clearModal","setSelectedBranch","csrf","token","targetProjectName","setSelectedProject","setBranch","COMMENT_FORM","MarkdownEditor","CommentFieldLayout","CommentTemperature","issuableStateMixin","glAbilitiesMixin","saveButtonTitle","updatedNoteBody","conflictWhileEditing","isSubmitting","isMeasuringCommentTemperature","isUnresolving","onSaveHandler","isSubmittingWithKeydown","bodyPlaceholder","_gl$GfmAutoComplete","showBatchCommentsActions","showResolveDiscussionToggle","_this$discussion","_this$discussion2","_n$current_user","can_resolve_discussion","noteHash","diffParams","markdownPreviewPath","notable","previewSuggestions","preview_suggestions","isInternalNote","discussionNote","internal","can_receive_suggestion","changedCommentText","shouldDisableField","shouldMeasureNoteTemperature","isSlashCommand","glAbilities","measureCommentTemperature","updatePlaceholder","shouldToggleResolved","beforeSubmitDiscussionState","newResolvedState","editMyLastNote","lastNoteInDiscussion","shouldConfirm","_this$$refs$markdownE","markdownEditor","_this$discussionNote","bodyPlaceholderInternal","handleKeySubmit","forceUpdate","handleAddToReview","handleUpdate","runCommentTemperatureMeasurement","commentTemperature","shouldMeasureTemperature","trackSavedUsingEditor","editNoteForm","clickType","shouldResolve","hasEmailParticipants","_this$getNoteableData","issue_email_participants","shiftKey","altKey","BLOCK_BRANCH_MODIFICATION","BLOCK_GROUP_BRANCH_MODIFICATION","PREVENT_PUSHING_AND_FORCE_PUSHING","PREVENT_APPROVAL_BY_AUTHOR","PREVENT_APPROVAL_BY_COMMIT_AUTHOR","REMOVE_APPROVALS_WITH_NEW_COMMIT","REQUIRE_PASSWORD_TO_APPROVE","protectedBranchesConfiguration","pushingBranchesConfiguration","PROTECTED_BRANCHES_CONFIGURATION_KEYS","MERGE_REQUEST_CONFIGURATION_KEYS","mergeRequestConfiguration","BLOCK_GROUP_BRANCH_MODIFICATION_WITH_EXCEPTIONS_HUMANIZED_STRING","BLOCK_GROUP_BRANCH_MODIFICATION_HUMANIZED_STRING","SETTINGS_HUMANIZED_STRINGS","SETTINGS_TOOLTIP","SETTINGS_POPOVER_STRINGS","featureName","SETTINGS_LINKS","VALID_APPROVAL_SETTINGS","PERMITTED_INVALID_SETTINGS_KEY","PERMITTED_INVALID_SETTINGS","buildConfig","hasLinkedGroups","baseConfigurations","blockBranchModificationValue","groupProtectedBranchesConfiguration","buildSettingsList","hasEnabledProperty","WITHOUT_EXCEPTIONS","EXCEPT_GROUPS","EXCEPTION_GROUPS_TEXTS","EXCEPTION_GROUPS_LISTBOX_ITEMS","createGroupObject","convertedId","full_name","fullName","isMergeRequestSettingOverridden","expired","GlDropdownText","issuableAttributesQueries","issuableAttributesState","widgetTitleText","Milestone","attrWorkspacePath","currentAttribute","workspaceType","WORKSPACE_PROJECT","WORKSPACE_GROUP","showWorkItemEpics","attributesList","isEpic","issuableAttributeQuery","defaultEpicSort","WORK_ITEM_TYPE_ENUM_EPIC","epicIidPattern","iidStartsWith","in","_data$workspace$attri","listFetchError","debounce","attributeTypeTitle","_this$currentAttribut","emptyPropsList","localizedAttribute","formatIssuableAttribute","kebab","_kebabCase","snake","_snakeCase","isAttributeChecked","attributeId","_this$currentAttribut2","_this$currentAttribut3","isAttributeOverdue","attribute","handleShow","setFocus","_this$$refs","updateAttribute","assignAttribute","noAttribute","attrItem","toNounSeriesText","onlyCommas","nextItem","lastItem","firstItem","steps","help","step2","step3","step4","tip","isFork","sourceProjectDefaultUrl","reviewingDocsPath","resolveConflictsFromCli","anchor","mergeInfo1","escapedOriginBranch","escapeShellString","escapedSourceBranch","escapedForkBranch","mergeInfo2","escapedForkPushBranch","userColorScheme","user_color_scheme","modalEl","MrWidgetHowToMergeModal","validateRuleMode","approval","excludeLicensePackages","approval_settings","fallback_behavior","hasInvalidApprovalSettings","hasInvalidSettingStructure","_isBoolean","hasInvalidFallbackBehavior","fail","createPolicyObject","NoteableNote","draftCommands","references","autosaveDraftKey","scrollToDraft","mapMutations","setDraftEditing","publishNow","publishSingleDraft","handleEditing","draftId","handleNotEditing","handleMouseEnter","handleMouseLeave","deleteDraft","toggleResolveDiscussion","baseForOwn","setter","accumulator","tertiaryButtons","updatingTooltip","hasOneOption","hasMultipleOptions","dataClipboardText","dataMethod","onClickAction","onClick","tooltipOnClick","setTooltip","btn","testId","popoverTarget","popoverTitle","popoverLink","popoverText","NodeBuffer","Buffer","BASE64_MAP","bitlen","tailbits","bits","setToArray","createSet","TooltipOnTruncate","severity","iconSize","iconOnly","HTTP_STATUS_ABORTED","HTTP_STATUS_OK","HTTP_STATUS_CREATED","HTTP_STATUS_NO_CONTENT","HTTP_STATUS_BAD_REQUEST","HTTP_STATUS_UNAUTHORIZED","HTTP_STATUS_FORBIDDEN","HTTP_STATUS_NOT_FOUND","HTTP_STATUS_CONFLICT","HTTP_STATUS_GONE","HTTP_STATUS_PAYLOAD_TOO_LARGE","HTTP_STATUS_UNPROCESSABLE_ENTITY","HTTP_STATUS_TOO_MANY_REQUESTS","HTTP_STATUS_INTERNAL_SERVER_ERROR","successCodes","checkReportStatus","HealthStatusDropdown","SidebarEditableItem","IssueHealthStatus","isUpdating","healthStatusQueries","canUpdate","_this$issuable","healthStatusText","healthStatusTooltip","_this$issuable2","_this$issuable3","editable","updateHealthStatus","updateIssue","base64","ieee754","kMaxLength","TYPED_ARRAY_SUPPORT","createBuffer","RangeError","__proto__","encodingOrOffset","allocUnsafe","ArrayBuffer","byteOffset","byteLength","fromArrayLike","fromArrayBuffer","encoding","isEncoding","fromString","fromObject","assertSize","isView","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","arrayIndexOf","indexSize","arrLength","valLength","buf","readUInt16BE","foundIndex","hexWrite","strLen","parsed","utf8Write","blitBuffer","asciiWrite","byteArray","asciiToBytes","latin1Write","base64Write","ucs2Write","units","utf16leToBytes","fromByteArray","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","codePoints","decodeCodePointsArray","SlowBuffer","alloc","INSPECT_MAX_BYTES","foo","subarray","typedArraySupport","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","toJSON","_arr","ret","toHex","bytes","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt8","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","leadSurrogate","toByteArray","stringtrim","base64clean","dst","modules","installedModules","__webpack_require__","moduleId","loaded","comment_handler_1","jsx_parser_1","parser_1","tokenizer_1","delegate","commentHandler","proxyDelegate","parserDelegate","collectComment","attachComment","CommentHandler","attach","parser","isModule","sourceType","jsx","JSXParser","Parser","ast","parseModule","parseScript","comments","tokens","tolerant","errorHandler","parsingOptions","tokenize","tokenizer","Tokenizer","getNextToken","tolerate","syntax_1","Syntax","leading","trailing","insertInnerComments","BlockStatement","innerComments","findTrailingComments","trailingComments","entry_1","firstComment","findLeadingComments","leadingComments","visitNode","Program","visitComment","AssignmentExpression","AssignmentPattern","ArrayExpression","ArrayPattern","ArrowFunctionExpression","AwaitExpression","BinaryExpression","BreakStatement","CallExpression","CatchClause","ClassBody","ClassDeclaration","ClassExpression","ConditionalExpression","ContinueStatement","DoWhileStatement","DebuggerStatement","EmptyStatement","ExportAllDeclaration","ExportDefaultDeclaration","ExportNamedDeclaration","ExportSpecifier","ExpressionStatement","ForStatement","ForOfStatement","ForInStatement","FunctionDeclaration","FunctionExpression","Identifier","IfStatement","ImportDeclaration","ImportDefaultSpecifier","ImportNamespaceSpecifier","ImportSpecifier","Literal","LabeledStatement","LogicalExpression","MemberExpression","MetaProperty","MethodDefinition","NewExpression","ObjectExpression","ObjectPattern","Property","RestElement","ReturnStatement","SequenceExpression","SpreadElement","Super","SwitchCase","SwitchStatement","TaggedTemplateExpression","TemplateElement","TemplateLiteral","ThisExpression","ThrowStatement","TryStatement","UnaryExpression","UpdateExpression","VariableDeclaration","VariableDeclarator","WhileStatement","WithStatement","YieldExpression","extendStatics","__extends","setPrototypeOf","character_1","JSXNode","jsx_syntax_1","Node","token_1","xhtml_entities_1","getQualifiedElementName","elementName","qualifiedName","JSXSyntax","JSXIdentifier","JSXNamespacedName","ns","JSXMemberExpression","TokenName","_super","parsePrimaryExpression","parseJSXRoot","startJSX","startMarker","lineStart","finishJSX","nextToken","reenterJSX","expectJSX","createJSXNode","collectComments","createJSXChildNode","scanXHTMLEntity","quote","terminated","numeric","eof","ch","Character","isDecimalDigit","isHexDigit","XHTMLEntities","lexJSX","cp","n1","n2","isIdentifierStart","isIdentifierPart","lex","nextJSXToken","lastMarker","convertToken","nextJSXText","isLineTerminator","peekJSXToken","saveState","scanComments","restoreState","throwUnexpectedToken","matchJSX","parseJSXIdentifier","finalize","parseJSXElementName","name_1","parseJSXAttributeName","attributeName","name_2","parseJSXStringLiteralAttribute","raw","getTokenRaw","parseJSXExpressionAttribute","tolerateError","parseAssignmentExpression","JSXExpressionContainer","parseJSXAttributeValue","parseJSXElement","parseJSXNameValueAttribute","JSXAttribute","parseJSXSpreadAttribute","argument","JSXSpreadAttribute","parseJSXAttributes","parseJSXOpeningElement","selfClosing","JSXOpeningElement","parseJSXBoundaryElement","name_3","JSXClosingElement","parseJSXEmptyExpression","JSXEmptyExpression","parseJSXExpressionContainer","parseJSXChildren","JSXText","parseComplexJSXElement","opening","JSXElement","open_1","isStartOfExpression","Regex","NonAsciiIdentifierStart","NonAsciiIdentifierPart","fromCodePoint","isWhiteSpace","isOctalDigit","openingElement","closingElement","generator","operator","AsyncArrowFunctionExpression","AsyncFunctionDeclaration","AsyncFunctionExpression","logical","callee","param","ComputedMemberExpression","consequent","alternate","Directive","directive","declaration","specifiers","exported","isStatic","static","Module","properties","shorthand","RegexLiteral","Script","expressions","StaticMemberExpression","discriminant","cases","quasi","quasis","finalizer","declarations","assert_1","error_handler_1","messages_1","scanner_1","ErrorHandler","Scanner","trackComment","operatorPrecedence","lookahead","hasLineTerminator","await","allowIn","allowStrictDirective","allowYield","firstCoverInitializedNameError","isAssignmentTarget","isBindingElement","inFunctionBody","inIteration","inSwitch","labelSet","strict","throwError","messageFormat","whole","assert","createError","unexpectedTokenError","Messages","UnexpectedToken","UnexpectedEOS","UnexpectedIdentifier","UnexpectedNumber","UnexpectedString","UnexpectedTemplate","isFutureReservedWord","UnexpectedReserved","isStrictModeReservedWord","StrictReservedWord","lastMarkerLineStart","tolerateUnexpectedToken","multiLine","nextRegexToken","scanRegExp","createNode","startNode","lastLineStart","marker","expect","expectCommaSeparator","expectKeyword","keyword","matchKeyword","matchContextualKeyword","matchAssign","isolateCoverGrammar","parseFunction","previousIsBindingElement","previousIsAssignmentTarget","previousFirstCoverInitializedNameError","inheritCoverGrammar","consumeSemicolon","matchAsyncFunction","parseFunctionExpression","octal","StrictOctalLiteral","parseTemplateLiteral","parseGroupExpression","parseArrayInitializer","parseObjectInitializer","parseIdentifierName","parseClassExpression","parseSpreadElement","parsePropertyMethod","previousStrict","previousAllowStrictDirective","simple","parseFunctionSourceElements","firstRestricted","stricted","parsePropertyMethodFunction","previousAllowYield","parseFormalParameters","parsePropertyMethodAsyncFunction","previousAwait","parseObjectPropertyKey","isPropertyKey","parseObjectProperty","hasProto","isAsync","lookaheadPropertyKey","qualifiedPropertyName","parseGetterMethod","parseSetterMethod","parseGeneratorMethod","DuplicateProtoProperty","parseTemplateHead","cooked","parseTemplateElement","parseExpression","reinterpretExpressionAsPattern","startToken","parseRestElement","arrow","parseArguments","isIdentifierName","parseNewExpression","parseLeftHandSideExpression","parseAsyncArgument","parseAsyncArguments","parseLeftHandSideExpressionAllowCall","maybeAsync","previousAllowIn","asyncArrow","parseSuper","parseUpdateExpression","parseUnaryExpression","isRestrictedWord","StrictLHSPrefix","InvalidLHSInAssignment","StrictLHSPostfix","parseAwaitExpression","StrictDelete","parseExponentiationExpression","binaryPrecedence","parseBinaryExpression","prec","markers","precedences","parseConditionalExpression","checkPatternParam","validateParam","reinterpretAsCoverFormalsList","paramSet","StrictParamDupe","parseYieldExpression","StrictLHSAssignment","parseStatementListItem","statement","IllegalExportDeclaration","parseExportDeclaration","IllegalImportDeclaration","parseImportDeclaration","parseLexicalDeclaration","inFor","parseFunctionDeclaration","parseClassDeclaration","isLexicalDeclaration","parseStatement","parseBlock","parseLexicalBinding","parsePattern","StrictVarName","DeclarationMissingInitializer","parseBindingList","parseBindingRestElement","parseArrayPattern","parsePatternWithDefault","parsePropertyPattern","keyToken","parseVariableIdentifier","parseObjectPattern","LetInLexicalBinding","parseVariableDeclaration","parseVariableDeclarationList","opt","parseVariableStatement","parseEmptyStatement","parseExpressionStatement","parseIfClause","StrictFunction","parseIfStatement","parseDoWhileStatement","previousInIteration","parseWhileStatement","parseForStatement","forIn","decl","ForInOfLoopInitializer","initStartToken","InvalidLHSInForIn","InvalidLHSInForLoop","initSeq","parseContinueStatement","UnknownLabel","IllegalContinue","parseBreakStatement","IllegalBreak","parseReturnStatement","IllegalReturn","parseWithStatement","StrictModeWith","parseSwitchCase","parseSwitchStatement","previousInSwitch","defaultFound","clause","MultipleDefaultsInSwitch","parseLabelledStatement","Redeclaration","GeneratorInLegacyContext","parseThrowStatement","NewlineAfterThrow","parseCatchClause","paramMap","DuplicateBinding","StrictCatchVariable","parseFinallyClause","parseTryStatement","NoCatchOrFinally","parseDebuggerStatement","parseDirectivePrologues","previousLabelSet","previousInFunctionBody","StrictParamName","DefaultRestParameter","ParameterAfterRestParameter","parseFormalParameter","identifierIsOptional","isGenerator","StrictFunctionName","previousAllowAwait","formalParameters","parseDirective","IllegalLanguageModeDirective","BadGetterArity","BadSetterArity","BadSetterRestParameter","parseClassElement","hasConstructor","punctuator","ConstructorIsAsync","StaticPrototype","ConstructorSpecialMethod","DuplicateConstructor","parseClassElementList","parseClassBody","elementList","classBody","parseModuleSpecifier","InvalidModuleSpecifier","parseImportSpecifier","parseNamedImports","parseImportDefaultSpecifier","parseImportNamespaceSpecifier","NoAsAfterImportNamespace","MissingFromClause","parseExportSpecifier","exportDeclaration","isExportFromIdentifier","recordError","constructError","col","InvalidEscapedReservedWord","InvalidHexEscapeSequence","InvalidRegExp","TemplateOctalLiteral","UnexpectedTokenIllegal","UnterminatedRegExp","hexValue","octalValue","curlyStack","skipSingleLineComment","skipMultiLineComment","isKeyword","codePointAt","scanHexEscape","scanUnicodeCodePointEscape","getIdentifier","getComplexIdentifier","octalToDecimal","scanIdentifier","restore","scanPunctuator","scanHexLiteral","scanBinaryLiteral","scanOctalLiteral","isImplicitOctalLiteral","scanNumericLiteral","scanStringLiteral","unescaped_1","unescaped","octToDec","scanTemplate","rawOffset","unescaped_2","testRegExp","tmp","$0","exception","scanRegExpBody","classMarker","scanRegExpFlags","quot","amp","apos","nbsp","iexcl","cent","pound","curren","yen","brvbar","sect","uml","ordf","laquo","not","shy","macr","deg","plusmn","sup2","sup3","acute","micro","para","middot","cedil","sup1","ordm","raquo","frac14","frac12","frac34","iquest","Agrave","Aacute","Acirc","Atilde","Auml","Aring","AElig","Ccedil","Egrave","Eacute","Ecirc","Euml","Igrave","Iacute","Icirc","Iuml","ETH","Ntilde","Ograve","Oacute","Ocirc","Otilde","Ouml","times","Oslash","Ugrave","Uacute","Ucirc","Uuml","Yacute","THORN","szlig","agrave","aacute","acirc","atilde","auml","aring","aelig","ccedil","egrave","eacute","ecirc","euml","igrave","iacute","icirc","iuml","eth","ntilde","ograve","oacute","ocirc","otilde","ouml","divide","oslash","ugrave","uacute","ucirc","uuml","yacute","thorn","yuml","OElig","oelig","Scaron","scaron","Yuml","fnof","circ","tilde","Alpha","Beta","Gamma","Delta","Epsilon","Zeta","Eta","Theta","Iota","Kappa","Lambda","Mu","Nu","Xi","Omicron","Pi","Rho","Sigma","Tau","Upsilon","Phi","Chi","Psi","Omega","epsilon","zeta","eta","theta","iota","kappa","nu","xi","omicron","rho","sigmaf","upsilon","phi","chi","psi","omega","thetasym","upsih","piv","ensp","emsp","thinsp","zwnj","zwj","lrm","rlm","ndash","mdash","lsquo","rsquo","sbquo","ldquo","rdquo","bdquo","dagger","Dagger","bull","hellip","permil","prime","Prime","lsaquo","rsaquo","oline","frasl","euro","weierp","real","trade","alefsym","larr","uarr","rarr","darr","harr","crarr","lArr","uArr","rArr","dArr","hArr","forall","part","exist","nabla","isin","notin","ni","prod","lowast","radic","infin","ang","and","or","cap","cup","int","there4","sim","cong","asymp","equiv","sup","nsub","sube","supe","oplus","otimes","perp","sdot","lceil","rceil","lfloor","rfloor","loz","spades","clubs","hearts","diams","lang","rang","Reader","curly","paren","beforeFunctionExpression","isRegexStart","check","trackRange","trackLoc","reader","GENERIC_UNSUBMITTABLE_NETWORK","wiki","internalComment","startThread","startInternalThread","epic","internalVisibility","discussionThatNeedsResolution","internalDiscussionThatNeedsResolution","internalDiscussion","actionButtonWithNote","actionButton","withNote","withoutNote","submitButton","commentHelp","internalCommentHelp","addToReviewButton","saveThread","saveComment","startReview","addCommentNow","addThreadNow","EDITED_TEXT","actionWithAuthor","actionWithoutAuthor","UPDATE_COMMENT_FORM","defaultError","FIELD_KEY_CELL_VARIANT","FIELD_KEY_ROW_VARIANT","FIELD_KEY_SHOW_DETAILS","IGNORED_FIELD_KEYS","EVENT_FILTER","EnterNode","datum","_parent","bindIndex","enter","exit","groupLength","bindKey","keyValue","nodeByKeyValue","keyValues","propertyRemove","propertyConstant","propertyFunction","classArray","ClassList","_node","_names","classedAdd","classedRemove","classedTrue","classedFalse","classedFunction","textRemove","htmlRemove","htmlConstant","htmlFunction","raise","creatorInherit","uri","creatorFixed","constantNull","selection_cloneShallow","selection_cloneDeep","bubbles","cancelable","dispatchConstant","dispatchFunction","enterGroup","updateGroup","_enter","_exit","sparse","onenter","onupdate","onexit","compareDocumentPosition","compareNode","sortgroups","sortgroup","classed","creator","deep","colgroupMixin","$colgroup","bytesToMiB","BYTES_IN_KIB","bytesToGiB","numberToHumanSizeSplit","digitsOptions","minimumFractionDigits","maximumFractionDigits","formatNumberWithLocaleAndDigits","formatNumber","humanSize","numberToMetricPrefix","THOUSAND","MILLION","median","middle","sorted","firstY","lastY","formattedChangeInPercent","nonFiniteResult","isNumeric","numberRegex","isPositiveInteger","countFloatingPointDigits","parts","integer","splitDecimalNumber","baseToString","castSlice","isRegExp","stringSize","stringToArray","reFlags","omission","strLength","strSymbols","newEnd","createLoadedImage","imageSrc","FaviconOverlay","_position","reactiveObject","FaviconOverlayManager","makeReactive","centered","imageUrl","overlayImage","overlays","faviconElement","originalHref","faviconSelector","isInitialized","faviconUrl","faviconImage","clearRect","overlay","getDefaultFaviconManager","_memoize","setFaviconOverlay","resetFavicon","resetFaviconOverlay","trackToggleTimelineView","marked","markedBidi","rawMarkdown","markdownConfig","createNoteErrorMessages","_data$quick_actions_s","error_messages","updateNoteErrorMessage","_e$response","trimmedMessage","BThead","listeners","isThead","theadClasses","theadAttrs","getHeadSlotName","getFootSlotName","headRowVariant","theadClass","theadTrClass","theadMixin","fieldClasses","thClass","isFoot","stopIfBusy","isSortable","isSelectable","hasHeadClickListener","hasListener","selectAllRows","clearSelected","$cells","colIndex","labelHtml","stickyColumn","headerTitle","headClicked","keydown","sortAttrs","sortTheadThAttrs","sortClass","sortTheadThClasses","sortLabel","sortTheadThLabel","thStyle","tabindex","sortable","headerAbbr","getThValues","thAttr","slotNames","scope","$content","$srLabel","$trs","eventHubFactory","_typeof","iterator","later","callNow","remain","rtag","wtag","wclass","wstyle","pagemode","scrollelement","variable","bench","totop","tobottom","onscroll","istable","itemcount","itemprops","changeProp","itemModeForceRender","newScrollelement","oldScrollelement","removeScrollListener","addScrollListener","keeps","total","offsetAll","paddingBottom","varCache","varAverSize","varLastCalcIndex","getZone","setScrollTop","getVarOffset","beforeUpdate","calcstart","zone","isLast","forceRender","scrollHandler","onScroll","vsl","scrollelementRect","_elemRect","updateZone","overs","getVarOvers","shouldRenderNextZone","lastStart","$forceUpdate","low","middleOffset","high","nocache","getVarSize","$children","$vnode","shm","getVarPaddingTop","getVarPaddingBottom","getVarAllHeight","updateVariable","allHeight","slots","hasPadding","renders","dbc","_this$delta","renderList","shortcuts","branchInMemoryButton","branchClipboardInstance","refInMemoryButton","refClipboardInstance","ISSUE_MR_CHANGE_ASSIGNEE","openSidebarDropdown","ISSUE_MR_CHANGE_MILESTONE","ISSUABLE_CHANGE_LABEL","ISSUABLE_EDIT_DESCRIPTION","editIssue","MR_COPY_SOURCE_BRANCH_NAME","copyBranchName","ISSUABLE_COPY_REF","copyIssuableRef","openDropdown","DEBOUNCE_DROPDOWN_DELAY","button","branchName","refButton","copiedRef","actionText","showSpinner","noteUrl","emailParticipant","isUsernameLinkHovered","authorId","authorHref","noteTimestampLink","isGid","hasAuthor","isServiceDeskEmailParticipant","authorLinkClasses","hover","authorName","internalNoteTooltip","updateTargetNoteHash","$store","handleUsernameMouseEnter","authorNameLink","Event","handleUsernameMouseLeave","isCommon","valuesLength","valuesIndex","elementMap","onOpenButtonClick","onCancelButtonClick","showSuggestionSection","forkPath","hideSuggestionSection","userPermissions","userPermissionsQuery","tertiaryActionsButtons","adminMergeRequest","mergeRequestApproversAvailable","sidebarEventHub","sourcegraph","assetsUrl","process","scriptPath","SOURCEGRAPH_ASSETS_URL","SOURCEGRAPH_URL","SOURCEGRAPH_INTEGRATION","script","defer","loadScript","noteableTypeText","Task","KeyResult","Objective","isConfidential","lockedNoteableDocsPath","confidentialNoteableDocsPath","warningIcon","isLockedAndConfidential","confidentialContextText","lockedContextText","emails","moreParticipantsAvailable","showMoreParticipants","ATTACHMENT_REGEXP","attachmentWarning","confidentialAttachmentWarning","EmailParticipantsWarning","NoteableWarning","withAlertContainer","containsLink","hasWarningAbove","hasWarningBelow","showConfidentialAttachmentWarning","showAttachmentWarning","showEmailParticipantsWarning","emailParticipants","_this$noteableData$is","locked_discussion_docs_path","confidential_issues_docs_path","hideTextInSmallScreens","confidentialTooltip","confidentialityInfoText","confidentialTextClass","ARROW_DOWN","ARROW_UP","END","HOME","POSITION_ABSOLUTE","POSITION_FIXED","GlDrawer","GlFormRadioGroup","reportedFromUrl","showDrawer","getDrawerHeaderHeight","getContentWrapperHeight","closeDrawer","symbolProto","symbolValueOf","isInactive","isOnImage","isNewNote","pinLabel","inactive","baseFindIndex","baseIteratee","fromIndex","DEFAULT_TITLE","dismissAlert","identityVerificationRequired","identityVerificationPath","updateStatus","ConfidentialityBadge","LockedBadge","HiddenBadge","fetchState","sequence","cycle","sourceKeys","GlDropdownSectionHeader","SidebarDropdownWidget","IterationTitle","workspacePath","issueId","getCadenceTitle","currentIteration","_currentIteration$ite","attributeUrl","getWindow","_node$ownerDocument","getComputedStyle$1","isNode","getNodeName","isHTMLElement","isElement","Element","isShadowRoot","ShadowRoot","isOverflowElement","overflowX","overflowY","isTableElement","isContainingBlock","safari","isSafari","perspective","containerType","backdropFilter","willChange","contain","CSS","supports","isLastTraversableNode","createEmptyCoords","getCssDimensions","hasOffset","shouldFallback","unwrapElement","contextElement","getScale","noOffsets","getVisualOffsets","isFixed","floatingOffsetParent","_win$visualViewport","_win$visualViewport2","win","visualViewport","includeScale","isFixedStrategy","visualOffsets","offsetWin","currentIFrame","iframeScale","iframeRect","clientLeft","paddingLeft","clientTop","getDocumentElement","getNodeScroll","getWindowScrollBarX","getParentNode","assignedSlot","host","getOverflowAncestors","scrollableAncestor","getNearestOverflowAncestor","isBody","getClientRectFromClippingAncestor","clippingAncestor","visualViewportBased","getViewportRect","getDocumentRect","getInnerBoundingClientRect","hasFixedPositionAncestor","stopNode","getTrueOffsetParent","polyfill","getOffsetParent","currentNode","getContainingBlock","getRectRelativeToOffsetParent","isOffsetParentAnElement","offsets","offsetRect","platform","getClippingRect","boundary","rootBoundary","clippingAncestors","cachedResult","currentContainingBlockComputedStyle","elementIsFixed","computedStyle","currentNodeIsContaining","ancestor","getClippingElementAncestors","firstClippingAncestor","clippingRect","accRect","convertOffsetParentRelativeRectToViewportRelativeRect","getDimensions","reference","floating","getOffsetParentFn","getDimensionsFn","autoUpdate","ancestorScroll","ancestorResize","elementResize","layoutShift","IntersectionObserver","animationFrame","referenceEl","ancestors","passive","cleanupIo","onMove","timeoutId","io","cleanup","disconnect","refresh","threshold","rootMargin","isFirstUpdate","handleObserve","ratio","intersectionRatio","observeMove","frameId","reobserveFrame","resizeObserver","firstEntry","cancelAnimationFrame","prevRefRect","frameLoop","nextRefRect","computePosition","mergedOptions","platformWithCache","jumpToNext","jumpToPrevious","jumpToFirstUnresolvedDiscussion","Mousetrap","FETCH_LOADING","FETCH_ERROR","APPROVE_ERROR","UNAPPROVE_ERROR","APPROVED_BY_YOU_AND_OTHERS","APPROVED_BY_YOU","APPROVED_BY_OTHERS","approvals","approvedByQuery","setApprovals","disableCommittersApproval","mergeRequestsDisableCommittersApproval","mergeRequestApprovalStateUpdated","_this$mr","updateQuery","subscriptionData","queryResult","alerts","clearError","hasApprovalAuthError","refreshApprovals","service","fetchApprovals","StatusIcon","Actions","isCollapsible","collapseOnDesktop","expandDetailsTooltip","collapseDetailsTooltip","wrapperClasses","hasActionsSlot","_this$$scopedSlots$ac","popoverTextGeneric","popoverTextSingle","popoverTextMultiple","policies","policiesWithMergeRequestSettingsOverride","showPolicyDetails","editPath","hasPoliciesOverridingApprovalSettings","hasMultiplePolicies","UserAvatarList","PolicyApprovalSettingsIcon","approvalState","isUserAvatarListExpanded","approvers","_this$approvalState$a","approvedBy","approved","_this$approvalState$a2","approvalsLeft","_this$approvalState$a3","approvalLeftMessage","approvedByMe","approvedByOthers","hasApprovers","currentUserHasCommitted","_this$approvalState$c","committers","policiesOverridingApprovalSettings","onUserAvatarListExpanded","onUserAvatarListCollapsed","canApprove","helpPath","ApprovalsSummary","ApprovalsSummaryOptional","StateContainer","approvalsMixin","isOptionalDefault","approveDefault","requirePasswordToApprove","hasAllApprovals","actionButtons","isApproving","isBasic","approvalsWidgetType","isApproved","isOptional","hasAction","invalidRules","_this$approvals$appro","invalid","invalidApprovedRules","allowMergeWhenInvalid","invalidFailedRules","hasInvalidRules","hasInvalidApprovedRules","hasInvalidFailedRules","_this$approvals$appro2","userHasApproved","userCanApprove","showApprove","showUnapprove","showApproveButton","requireSamlAuthToApprove","approvalText","unapprove","pluralizedApprovedRuleText","invalidRulesPlural","invalidRuleSingular","pluralizedFailedRuleText","invalidFailedRulesPlural","invalidFailedRuleSingular","pluralizedRuleText","samlApprovalPath","updateApproval","approveMergeRequest","approveWithSamlAuth","approveWithAuth","approveMergeRequestWithAuth","_error$response","unapproveMergeRequest","serviceFn","errFn","refetch","linkToInvalidRules","INVALID_RULES_DOCS_PATH","approvalsHelpPath","GlFormInput","approvalPassword","actionPrimaryProps","actionCancelProps","inputState","invalidFeedback","approvalPasswordInput","documentationLink","documentationText","popoverId","ApprovalCheckPopover","codeCoverageCheckHelpPagePath","showCoverageCheckPopover","COVERAGE_CHECK_NAME","approvalRuleConfig","APPROVAL_RULE_CONFIGS","popoverTriggerId","autoApproved","actionRequired","optional","countOfTotal","popover","suggestion1","suggestion2","pendingApprovalsText","isAutoApproved","isActionRequired","approvalsRequired","invalidRulesClasses","rulesDocsPath","settingsDocsPath","createSecurityPolicyRuleHelpText","scanResultPolicies","applicableRules","rulesString","reportTypes","reportType","strings","convertRulesToStrings","approvalRulesQuery","_this$mergeRequest","GlSkeletonLoader","ApprovedIcon","ApprovalCheckRulePopover","EmptyRuleApprovers","NumberOfApprovals","ApprovalsUsersList","eligibleApproversDocsPath","sections","approvalRules","_orderBy","nameClass","section","getTooltipText","summaryText","summaryOptionalText","summaryRequiredText","sectionNameLabel","numberOfColumns","ruleTypeAnyApprover","commentedBy","ApprovalsList","staticStyle","eligibleApprovers","Approvals","ApprovalsAuth","ApprovalsFooter","assignReviewersActionButton","_this$approvals","_this$approvals2","hasFooter","_this$approvals3","MRWidgetService","CEWidgetService","apiApprovalSettingsPath","apiApprovePath","approval_password","fetchApprovalSettings","fetchReport","deviseState","detailedMergeStatus","DETAILED_MERGE_STATUS","PREPARING","commitsCount","projectArchived","branchMissing","CHECKING","isSHAMismatch","MERGEABLE","CI_STILL_RUNNING","autoMergeEnabled","preferredAutoMergeStrategy","MWCP_MERGE_STRATEGY","getStateKey","isGeoSecondaryNode","MTWCP_MERGE_STRATEGY","CEStateKey","CEGetStateKey","hasKeys","STATE_MACHINE","IDLE","MergeRequestStore","sha","diff_head_sha","gitlabLogo","apiApprovalsPath","api_approvals_path","api_approve_path","apiUnapprovePath","api_unapprove_path","hasApprovalsAvailable","has_approvals_available","stateMachine","initial","testState","send","_definition$states","forcedState","startMachine","machine","machineValue","mergeError","multiple_approval_rules_available","setPaths","setData","initCodeQualityReport","setGitpodData","blobPath","blob_path","codeQuality","codequality_reports_path","isRebased","_data$pipeline","_data$pipeline2","_data$pipeline3","initApprovals","updateStatusState","pipelineStatus","squash","squashIsEnabledByDefault","squash_enabled_by_default","squashIsReadonly","squash_readonly","enableSquashBeforeMerge","squashIsSelected","squash_on_merge","targetBranchSha","target_branch_sha","sourceBranchProtected","source_branch_protected","conflictsDocsPath","conflicts_docs_path","commitMessage","default_merge_commit_message","shortMergeCommitSha","short_merged_commit_sha","mergeCommitSha","merged_commit_sha","commitMessageWithDescription","default_merge_commit_message_with_description","divergedCommitsCount","diverged_commits_count","pipelineCoverageDelta","pipeline_coverage_delta","buildsWithCoverage","builds_with_coverage","mergePipeline","merge_pipeline","deployments","postMergeDeployments","commits","commits_without_merge_commits","squashCommitMessage","default_squash_commit_message","rebaseInProgress","rebase_in_progress","mergeRequestDiffsPath","diffs_path","approvals_widget_type","mergeRequestWidgetPath","merge_request_widget_path","issues_links","mentioned","mentioned_but_not_closing","assignToMe","assign_to_closing","unassignedCount","assign_to_closing_count","relatedLinks","closingCount","closing_count","mentionedCount","mentioned_count","updatedAt","updated_at","metrics","buildMetrics","setToAutoMergeBy","formatUserObject","merge_user","mergeUserId","merge_user_id","sourceBranchRemoved","source_branch_exists","shouldRemoveSourceBranch","remove_source_branch","autoMergeStrategy","auto_merge_strategy","availableAutoMergeStrategies","available_auto_merge_strategies","getPreferredAutoMergeStrategy","ffOnlyEnabled","ff_only_enabled","ffMergePossible","ff_merge_possible","isRemovingSourceBranch","mergeRequestState","latestSHA","isMergeAllowed","mergeable","mergeOngoing","merge_ongoing","allowCollaboration","allow_collaboration","sourceProjectId","source_project_id","hasCI","has_ci","ciStatus","ci_status","isPipelinePassing","isPipelineSkipped","pipelineDetailedStatus","isPipelineActive","pipelineIid","pipelineProjectPath","project_path","cleanLeadingSeparator","isPipelineBlocked","only_allow_merge_if_pipeline_succeeds","faviconOverlayPath","favicon_overlay_path","terraformReportsPath","terraform_reports_path","testResultsPath","test_reports_path","accessibilityReportPath","accessibility_report_path","exposedArtifactsPath","exposed_artifacts_path","cancelAutoMergePath","cancel_auto_merge_path","canCancelAutomaticMerge","ciIntegrationJenkins","jenkins_integration_active","retargeted","newBlobPath","new_blob_path","sourceBranchPath","sourceBranchLink","source_branch_with_namespace_link","rebasePath","rebase_path","targetBranchPath","target_branch_commits_path","targetBranchTreePath","target_branch_tree_path","conflictResolutionPath","conflict_resolution_path","removeWIPPath","remove_wip_path","createIssueToResolveDiscussionsPath","mergePath","merge_path","mergeCommitPath","merged_commit_path","canPushToSourceBranch","can_push_to_source_branch","cherryPickInForkPath","cherry_pick_in_fork_path","revertInForkPath","revert_in_fork_path","canRemoveSourceBranch","can_remove_source_branch","canCreateIssue","can_create_issue","canCherryPickInCurrentMR","can_cherry_pick_on_current_merge_request","canRevertInCurrentMR","can_revert_on_current_merge_request","setState","setGraphqlData","onlyAllowMergeIfPipelineSucceeds","allowMergeOnSkippedPipeline","canBeMerged","mergeStatus","commitCount","sourceBranchExists","targetBranchExists","hasConflicts","conflicts","hasMergeableDiscussionsState","mergeableDiscussionsState","mergeAfter","isPipelineFailed","diffHeadSha","shouldBeRebased","setGraphqlSubscriptionData","showGitpodButton","show_gitpod_button","gitpodUrl","gitpod_url","gitpodEnabled","gitpod_enabled","userPreferencesGitpodPath","user_preferences_gitpod_path","userProfileEnableGitpodPath","user_profile_enable_gitpod_path","translateStateToMachine","squashBeforeMergeHelpPath","squash_before_merge_help_path","mrTroubleshootingDocsPath","mr_troubleshooting_docs_path","ciTroubleshootingDocsPath","ci_troubleshooting_docs_path","pipelineMustSucceedDocsPath","pipeline_must_succeed_docs_path","mergeRequestBasicPath","merge_request_basic_path","mergeRequestCachedWidgetPath","merge_request_cached_widget_path","emailPatchesPath","email_patches_path","plainDiffPath","plain_diff_path","mergeCheckPath","merge_check_path","mergeActionsContentPath","commit_change_content_path","mergeRequestPipelinesHelpPath","merge_request_pipelines_docs_path","reviewing_and_managing_merge_requests_docs_path","ciEnvironmentsStatusPath","ci_environments_status_path","code_coverage_check_help_page_path","licenseComplianceDocsPath","license_compliance_docs_path","eligible_approvers_docs_path","mergeImmediatelyDocsPath","merge_immediately_docs_path","approvals_help_path","mergeRequestAddCiConfigPath","merge_request_add_ci_config_path","pipelinesEmptySvgPath","pipelines_empty_svg_path","humanAccess","human_access","newPipelinePath","new_project_pipeline_path","source_project_default_url","userCalloutsPath","user_callouts_path","suggestPipelineFeatureId","suggest_pipeline_feature_id","migrateJenkinsFeatureId","migrate_jenkins_feature_id","isDismissedSuggestPipeline","is_dismissed_suggest_pipeline","isDismissedJenkinsMigration","is_dismissed_jenkins_migration","securityReportsDocsPath","security_reports_docs_path","securityConfigurationPath","security_configuration_path","headBlobPath","head_path","baseBlobPath","base_path","codequalityReportsPath","sastComparisonPath","sast_comparison_path","secretDetectionComparisonPath","secret_detection_comparison_path","sastComparisonPathV2","new_sast_comparison_path","secretDetectionComparisonPathV2","new_secret_detection_comparison_path","mergedBy","merged_by","closedBy","closed_by","mergedAt","formatDate","merged_at","closedAt","closed_at","readableMergedAt","getReadableDate","readableClosedAt","MTWPS_MERGE_STRATEGY","MT_MERGE_STRATEGY","MWPS_MERGE_STRATEGY","setRemoveSourceBranch","removeSourceBranch","isApprovalNeeded","transitionStateMachine","unsafeForce","stateToTransitionMap","transitionOptions","CEMergeRequestStore","sastHelp","sast_help_path","containerScanningHelp","container_scanning_help_path","dastHelp","dast_help_path","apiFuzzingHelp","api_fuzzing_help_path","coverageFuzzingHelp","coverage_fuzzing_help_path","secretDetectionHelp","secret_detection_help_path","dependencyScanningHelp","dependency_scanning_help_path","canReadVulnerabilities","can_read_vulnerabilities","canReadVulnerabilityFeedback","can_read_vulnerability_feedback","canRetryExternalStatusChecks","can_retry_external_status_checks","securityReportsPipelineId","pipeline_id","securityReportsPipelineIid","pipeline_iid","createVulnerabilityFeedbackIssuePath","create_vulnerability_feedback_issue_path","createVulnerabilityFeedbackMergeRequestPath","create_vulnerability_feedback_merge_request_path","createVulnerabilityFeedbackDismissalPath","create_vulnerability_feedback_dismissal_path","appUrl","licenseScanning","license_scanning","require_password_to_approve","require_saml_auth_to_approve","merge_request_approvers_available","aiCommitMessageEnabled","pathLocksPath","path_locks_path","initBrowserPerformanceReport","initLoadPerformanceReport","initLicenseComplianceReport","metricsReportsPath","metrics_reports_path","enabledReports","enabled_reports","api_approval_settings_path","mergeTrainsPath","merge_trains_path","pipelineEtag","pipeline_etag","initGeo","mergePipelinesEnabled","merge_pipelines_enabled","mergeTrainsSkipAllowed","merge_trains_skip_train_allowed","policyViolation","policy_violation","jiraAssociation","jira_associations","_project$mergeTrains","mergeTrainsCount","mergeTrains","cars","mergeTrainCar","_data$mergeRequest","discoverProjectSecurityPath","discover_project_security_path","apiStatusChecksPath","api_status_checks_path","saml_approval_path","containerScanningComparisonPath","container_scanning_comparison_path","coverageFuzzingComparisonPath","coverage_fuzzing_comparison_path","apiFuzzingComparisonPath","api_fuzzing_comparison_path","dastComparisonPath","dast_comparison_path","dependencyScanningComparisonPath","dependency_scanning_comparison_path","containerScanningComparisonPathV2","new_container_scanning_comparison_path","coverageFuzzingComparisonPathV2","new_coverage_fuzzing_comparison_path","apiFuzzingComparisonPathV2","new_api_fuzzing_comparison_path","dastComparisonPathV2","new_dast_comparison_path","dependencyScanningComparisonPathV2","new_dependency_scanning_comparison_path","securityPoliciesPath","security_policies_path","is_geo_secondary_node","geoSecondaryHelpPath","geo_secondary_help_path","NOT_APPROVED","BLOCKED_STATUS","EXTERNAL_STATUS_CHECKS","hasMergeChecksFailed","browserPerformance","browser_performance","browserPerformanceMetrics","improved","degraded","same","loadPerformance","load_performance","loadPerformanceMetrics","license_scanning_comparison_path","license_scanning_comparison_collapsed_path","licenseCompliance","compareBrowserPerformanceMetrics","headMetrics","baseMetrics","headMetricsIndexed","normalizeBrowserPerformanceMetrics","baseMetricsIndexed","subjectMetrics","metric","headMetricData","baseMetricData","metricData","desiredSize","browserPerformanceData","indexedSubjects","indexedMetrics","compareLoadPerformanceMetrics","normalizeLoadPerformanceMetrics","loadPerformanceData","http_reqs","rate","http_req_waiting","passes","fails","ceStateMap","geoSecondaryNode","notificationGranted","notification","Notification","notify","notifyPermissions","requestPermission","notifyMe","permission","dismissible","isDismissed","onDismiss","setEndpoint","requestArtifacts","eTagPoll","clearEtagPoll","restartPolling","fetchArtifacts","Poll","resource","getArtifacts","successCallback","Visibility","makeRequest","receiveArtifactsSuccess","receiveArtifactsError","artifacts","job_path","job_name","arrowIconName","ArtifactsList","MrCollapsibleExtension","hasArtifacts","actionsConfiguration","actionInProgress","buttonTitle","computedDeploymentStatus","containerClasses","isActionInProgress","actionName","ReviewAppLink","autofocusonshow","appButtonText","deployment","deploymentExternalUrl","changes","external_url","shouldRenderDropdown","filteredChanges","_this$deployment","btnIcons","play","DeploymentActionButton","DeploymentViewButton","STOPPING","DEPLOYING","REDEPLOYING","isCurrent","canBeManuallyDeployed","playPath","canBeManuallyRedeployed","redeployPath","hasExternalUrls","external_url_formatted","_this$deployment$deta","playable_build","play_path","retry_url","stopUrl","stop_url","environmentAvailable","environment_available","showDeploymentActionButton","buttonVariant","busyText","confirmMessage","primaryBtnText","primaryBtnVariant","confirmAction","executeInlineAction","stopEnvironment","executeAction","deployManually","redeploy","MemoryUsage","showMetrics","deployedTextMap","deployTimeago","deployed_at","deployedText","hasDeploymentTime","deployed_at_formatted","hasDeploymentMeta","hasMetrics","metrics_url","showMemoryUsage","DeploymentActions","DeploymentInfo","metrics_monitoring_url","isManual","Deployment","deploymentClass","hasDeploymentMetrics","showCollapsedDeployments","multipleDeploymentsTitle","artifactSectionHeader","pipelineId","download","rel","shouldShowDropdown","_this$artifacts","isCreatingPipeline","_this$$refs$modal","postMergeRequestPipeline","unauthorized","primaryButton","mergeRequestEventType","mergeRequestEventTypeQuery","_d$project","PipelineMiniGraph","PipelineArtifacts","HelpPopover","runPipelineMixin","hasCi","pipelineMustSucceed","mergeStrategy","isPostMerge","downstream","triggered","hasPipeline","hasCIError","_this$pipeline","_this$pipeline2","_this$pipeline3","hasStages","_this$pipeline4","hasCommitInfo","isMergeRequestPipeline","merge_request_pipeline","showSourceBranch","finishedAt","_this$pipeline5","finished_at","coverageDeltaClass","pipelineCoverageJobNumberText","pipelineCoverageTooltipDeltaDescription","pipelineCoverageTooltipDescription","_this$pipeline$flags","merge_train_pipeline","showPipelineTypeHelpPopover","_this$pipeline6","PIPELINE_EVENT_TYPE_MERGE_TRAIN","PIPELINE_EVENT_TYPE_MERGED_RESULT","PIPELINE_EVENT_TYPE_MERGE_REQUEST","event_type_name","pipelineTypeHelpPopoverOptions","_this$pipeline7","eventTypeName","PIPELINE_EVENT_TYPE_MAP","errorText","monitoringPipelineText","ArtifactsApp","DeploymentList","MrWidgetContainer","MrWidgetPipeline","runPipeline","triggered_by","commit_path","short_id","coverage","pipelineCoverageQuestion","build","MergeTrainPositionIndicator","branchLink","featureId","feature_name","SP_ICON_NAME","SP_TRACK_LABEL","SP_SHOW_TRACK_EVENT","SP_SHOW_TRACK_VALUE","SP_HELP_CONTENT","SP_HELP_URL","MrWidgetIcon","DismissibleContainer","pipelineSvgPath","userCalloutFeatureId","tracking","InternalEvents","JM_JENKINS_TITLE_ICON_NAME","JM_EVENT_NAME","JM_MIGRATION_LINK","migrationPlan","information","trackEvent","MIGRATION_LINK","removesBranchText","BoldText","cancelButtonText","_mergeTrains$nodes$","CEAutoMergeMixin","_this$state","showAuthorName","authorUrl","autoMergeEnabledQuery","NETWORK_ONLY","mergeRequestQueryVariables","MrWidgetAuthor","autoMergeMixin","mergeRequestQueryVariablesMixin","isCancellingAutoMerge","stateRemoveSourceBranch","forceRemoveSourceBranch","_this$state$mergeRequ","mergeUser","cancelAutomaticMerge","should_remove_source_branch","AUTO_MERGE_STRATEGIES","autoMergeFailedQuery","isRefreshing","refreshWidget","MR_WIDGET_PREPARING_ASYNCHRONOUSLY","MR_WIDGET_MISSING_BRANCH_WHICH","MR_WIDGET_MISSING_BRANCH_RESTORE","MR_WIDGET_MISSING_BRANCH_MANUALCLI","SQUASH_BEFORE_MERGE","checkboxLabel","helpLabel","I18N_SHA_MISMATCH","warningMessage","actionButtonLabel","MR_WIDGET_CLOSED_REOPEN","MR_WIDGET_CLOSED_REOPENING","MR_WIDGET_CLOSED_RELOADING","MR_WIDGET_CLOSED_REOPEN_FAILURE","dateTitle","dateReadable","MrWidgetAuthorTime","isPending","isReloading","reopenText","showGlobalToast","prepareMergeError","timerText","updateTimer","stripHtml","mergeDetailsCollapsed","toggleMergeDetails","isMakingRequest","shouldShowRemoveSourceBranch","shouldShowSourceBranchRemoving","revertTitle","cherryPickTitle","revertLabel","cherryPickLabel","openRevertModal","openCherryPickModal","modalEventHub","transitions","MERGE_FAILURE","statusCount","MERGE_ACTIVE_STATUS_PHRASES","initiateMergePolling","simplePoll","continuePolling","handleMergePolling","poll","fetchUserCounts","initiateRemoveSourceBranchPolling","merge_error","missingBranchQuery","statusEmpty","STATUS_EMPTY","ciHelpPage","PIPELINE_MUST_SUCCEED_CONFLICT_TEXT","MERGE_WHEN_CHECKS_PASS_HELP","isMergeButtonDisabled","shouldShowMergeControls","preventMerge","pipelineMustSucceedConflictText","autoMergeText","autoMergeHelperText","isPreferredAutoMergeStrategyMWPC","autoMergePopoverSettings","helpLink","bodyText","shouldDisplayMergeImmediatelyDropdownOptions","shouldShowMergeImmediatelyDropdown","isAutoMergeAvailable","isMergeImmediatelyDangerous","shouldRenderMergeTrainHelperIcon","showFailedPipelineModalMergeTrain","onStartMergeTrainConfirmation","MERGE_TRAINS_HELP","CEReadyToMergeMixin","PIPELINE_FAILED_STATE","mergeStrateyMergeTrain","handleMergeButtonClick","mergeCommitCount","isSquashEnabled","isFastForwardEnabled","targetBranchEscaped","commitsCountMessage","showAssignToMe","closesText","assignIssueText","shouldShowAssignToMeLink","GlFormTextarea","inputId","AiCommitMessage","mrId","shortId","short_Id","info","confirmation","focusCancelButton","cancelButton","mergeChanges","MERGE","AUTO_MERGE","MERGING","readyToMergeQuery","manual","_data$project2","defaultMergeCommitMessage","squashBeforeMerge","squashOnMerge","isSquashReadOnly","squashReadOnly","defaultSquashCommitMessage","mergeRequestsFfOnlyEnabled","commitMessageIsTouched","squashCommitMessageIsTouched","_isNil","pollingInterval","readyToMergeSubscription","_this$mr2","SquashBeforeMerge","CommitEdit","CommitMessageDropdown","MergeFailedPipelineConfirmationDialog","MergeImmediatelyConfirmationDialog","MergeTrainFailedPipelineConfirmationDialog","MergeTrainRestartTrainConfirmationDialog","AddedCommitMessage","RelatedLinks","readyToMergeMixin","isMergingImmediately","isPipelineFailedModalVisibleMergeTrain","isPipelineFailedModalVisibleNormalMerge","isMergeTrainBeingForceMerged","mergeTrainMergeType","MT_RESTART_TRAIN","skipMergeTrain","editCommitMessage","headPipeline","showMergeFailedPipelineConfirmationDialog","commitTemplateHelpPage","commitTemplateHintText","shouldShowSquashEdit","shouldShowMergeEdit","mergeAndSquashCommitTemplatesHintText","squashCommitTemplateHintText","mergeCommitTemplateHintText","_this$state$commitsWi","commitsWithoutMergeCommits","hasPipelineMustSucceedConflict","mergeButtonText","showAutoMergeHelperText","isNotClosed","isNeitherClosedNorMerged","isRemoveSourceBranchButtonDisabled","shouldShowSquashBeforeMerge","shaMismatchLink","showDangerMessageForMergeTrain","_this$state$userPermi","sourceBranchPreMergeText","sourceBranchMergedText","sourceHasDivergedFromTarget","showMergeDetailsHeader","autoMergeHelpPopoverOptions","isSkipMergeTrainAvailable","mergeTrainsSkipTrain","displaySkipMergeTrainOptions","updateGraphqlState","startingPollInterval","secondsToMilliseconds","useAutoMerge","mergeImmediately","confirmationClicked","skip_merge_train","squash_commit_message","commit_message","handleMergeImmediatelyButtonClick","confirmationDialog","handleMergeTrainMergeImmediatelyButtonClick","processMergeTrain","MT_SKIP_TRAIN","onMergeImmediatelyConfirmation","onMergeWithFailedPipelineConfirmation","handleRemoveBranchPolling","setCommitMessage","setSquashCommitMessage","appendCommitMessage","messageType","updateRemoveSourceBranchSettings","sourceDivergedFromTargetText","divergedCommits","MrSecurityWidget","MrTestReportWidget","MrTerraformWidget","MrCodeQualityWidget","MrAccessibilityWidget","mrReportsTab","testReportWidget","terraformPlansWidget","codeQualityWidget","accessibilityWidget","widgets","widget","mergeChecksQuery","mergeChecksSubscription","warningChecks","checkingMergeChecks","failedChecks","_this$state2","_this$state3","mergeabilityChecks","sortedChecks","isStatusInactive","hasMessage","isStatusFailed","isStatusChecking","isStatusWarning","showChecks","checkComponent","COMPONENTS","FAILURE_REASONS","Loading","WidgetContainer","MrWidgetSuggestPipeline","WidgetSuggestPipeline","MrWidgetMigrateJenkins","MrWidgetPipelineContainer","MrWidgetAlertMessage","MrWidgetMerged","MergedState","MrWidgetClosed","ClosedState","MrWidgetMerging","MergingState","MrWidgetFailedToMerge","FailedToMerge","MrWidgetArchived","ArchivedState","MrWidgetNothingToMerge","NothingToMergeState","MrWidgetMissingBranch","MissingBranchState","MrWidgetReadyToMerge","ShaMismatch","MrWidgetChecking","CheckingState","MrWidgetPreparing","PreparingState","MrWidgetAutoMergeEnabled","MrWidgetAutoMergeFailed","AutoMergeFailed","SourceBranchRemovalStatus","MrWidgetApprovals","ReadyToMerge","ReadyToMergeState","MergeChecks","notifyOnNetworkStatusChange","networkStatus","apolloStateQueryPollingInterval","checkStatus","getStateSubscription","mrData","MRWidgetStore","createService","machineState","recomputeComponentName","STATE_QUERY_POLLING_INTERVAL_DEFAULT","apolloStateQueryMaxPollingInterval","FOUR_MINUTES_IN_MS","unboundedInterval","STATE_QUERY_POLLING_INTERVAL_BACKOFF","_clamp","shouldRenderApprovals","componentName","classState","shouldRenderPipelines","shouldSuggestPipelines","showRenderMigrateFromJenkins","shouldRenderCollaborationStatus","shouldRenderMergedPipeline","showMergePipelineForkWarning","showManageStorageDocsLink","_this$mr$mergeError","formattedHumanAccess","hasMergeError","hasAlerts","mergeBlockedComponentVisible","oldVal","initPostMergeDeploymentsPolling","handleNotification","fetchInitialData","initWidget","unbindEventListeners","deploymentsInterval","postMergeDeploymentsInterval","setFaviconHelper","initDeploymentsPolling","bindEventHubListeners","getServiceEndpoints","deploymentsPoll","fetchPreMergeDeployments","fetchPostMergeDeployments","fetchDeployments","throwDeploymentsError","fetchActionsContent","fetchMergeActionsContent","dataTitle","resumePolling","checkRebasedStatus","setIsRemovingSourceBranch","setMergeError","setMrData","onFetchDeployments","dismissSuggestPipelines","dismissMigrateFromJenkins","MrBrowserPerformanceWidget","MrLoadPerformanceWidget","MrMetricsWidget","MrSecurityWidgetEE","MrSecurityWidgetCE","MrStatusChecksWidget","MrLicenseComplianceWidget","CEWidgetApp","licenseComplianceWidget","browserPerformanceWidget","loadPerformanceWidget","metricsWidget","statusChecksWidget","isNothingToMergeState","securityReportsWidget","MrWidgetGeoSecondaryNode","MrWidgetPolicyViolation","MrWidgetJiraAssociationMissing","BlockingMergeRequestsReport","manageStorageDocsMsg","manageStorageDocsLink","CEWidgetOptions","reportsMixin","Translate","cacheConfig","typePolicies","MergeRequestApprovalState","notesFilterProps","NotesApp","mrFilter","isShowTabActive","mrWidget","gitlab_logo","default_avatar_url","dismissalDescriptions","dismissal_descriptions","vm","artifacts_endpoint","artifacts_endpoint_placeholder","falsePositiveDocUrl","false_positive_doc_url","canViewFalsePositive","can_view_false_positive","commitPathTemplate","commit_path_template","MrWidgetOptions","setEndpoints","fetchMrMetadata","discussionNavigator","shouldShow","initNotes","parseSpan","spanValidator","colspan","rowspan","stackedHeading","BTd","getBvTableTr","bvTableTr","inTbody","inThead","inTfoot","isDark","hasStickyHeader","isStickyColumn","rowVariant","headOrFoot","computedColspan","computedRowspan","isStackedCell","cellClasses","cellAttrs","DiffStats","compareButtonLabel","fileModeTooltip","discussionPath","collapsible","addMergeRequestButtons","canCurrentUserFork","showLocalFileReviews","reviewed","diffContentIDSelector","diffUrl","titleLink","submodule","submodule_tree_url","submodule_link","submoduleDiffCompareLinkText","submodule_compare","truncatedOldSha","old_sha","truncatedNewSha","new_sha","oldCommitId","newCommitId","deleted_file","isUsingLfs","external_storage","collapseIcon","viewFileButtonText","truncatedContentSha","commitId","viewReplacedFileButtonText","truncatedBaseSha","gfmCopyText","isFileRenamed","isModeChanged","expandDiffToFullFileTitle","showEditButton","_this$diffFile$blob","readable_text","edit_path","ide_edit_path","isReviewable","reviewable","externalUrlLabel","formatted_external_url","labelToggleFile","showCommentButton","handleToggleFile","setFileForcedOpen","forced","showForkMessage","can_modify_blob","handleFileNameClick","setCurrentFileHash","toggleReview","newReviewedStatus","reviewFile","setFileCollapsedByUser","old_path_html","new_path_html","view_path","replaced_view_path","is_fully_expanded","diffHasDiscussions","toggleFileDiscussionWrappers","diffHasExpandedDiscussions","toggleFullDiff","ITEM_CLASS","BLink","_this$item","_this$item2","isLink","_item$action","_this$item3","_this$item3$extraAttr","_this$item4","_this$item4$extraAttr","_this$item$wrapperCla","_this$item5","wrapperClass","isCustomContent","MouseEvent","_this$$refs$item","listIndex","wrapperListeners","itemComponent","componentIndex","exportText","dataTrackLabel","isIssue","issuableCountText","maximumFileSizeText","importIssuesText","uploadCsvFileText","mainText","helpText","maxFileSizeText","submitForm","CsvExportModal","CsvImportModal","trackImportClick","exportAsCSV","importCSV","importFromJIRA","exportModalId","importModalId","alignments","placements","oppositeSideMap","oppositeAlignmentMap","clamp","evaluate","getSide","getAlignment","getOppositeAxis","axis","getAxisLength","getSideAxis","getAlignmentAxis","getAlignmentSides","rects","rtl","alignment","alignmentAxis","mainAlignmentSide","getOppositePlacement","getExpandedPlacements","oppositePlacement","getOppositeAlignmentPlacement","getOppositeAxisPlacements","flipAlignment","isStart","lr","rl","tb","getSideList","getPaddingObject","expandPaddingObject","rectToClientRect","getPolicyType","_Object$values$find","decomposeApprovers","existingApprovers","output","roles","hasUsers","hasGroups","TYPENAME_USER","TYPENAME_GROUP","removeUnnecessaryDashes","textMap","remainingTime","formatTime","remainingTimeIntervalId","startRemainingTimeInterval","isDelayedJob","_this$job","_this$job2","scheduled","scheduledAt","scheduledTime","scheduled_at","updateRemainingTime","remainingMilliseconds","calculateRemainingMilliseconds","ADD_NEW_DRAFT","DELETE_DRAFT","SET_BATCH_COMMENTS_DRAFTS","REQUEST_PUBLISH_DRAFT","RECEIVE_PUBLISH_DRAFT_SUCCESS","RECEIVE_PUBLISH_DRAFT_ERROR","REQUEST_PUBLISH_REVIEW","RECEIVE_PUBLISH_REVIEW_SUCCESS","RECEIVE_PUBLISH_REVIEW_ERROR","RECEIVE_DRAFT_UPDATE_SUCCESS","TOGGLE_RESOLVE_DISCUSSION","CLEAR_DRAFTS","SET_REVIEW_BAR_RENDERED","SET_DRAFT_EDITING","BTh","Dropzone","autoDiscover","active_backdrop","active_textarea","storedStyle","backdrop","pause","unpause","autosize","$dropzone","forElement","toggleSrText","trackingLabel","discussionsRequireResolution","noteableDisplayName","isReviewDropdown","isNoteTypeComment","isNoteTypeDiscussion","dropdownCommentButtonTitle","dropdownStartThreadButtonTitle","commentButtonTitle","startDiscussionDescription","commentDescription","testid","handleClick","setNoteType","linkHref","imgCssClasses","imgCssWrapperClasses","popoverUserId","popoverUsername","userId","shouldShowUsername","avatarTooltipText","LabelItem","allowMultiselect","localSelectedLabels","workspaceLabelsQueries","localSelectedLabelsIds","visibleLabels","showNoMatchingResultsMessage","shouldHighlightFirstItem","isLabelSelected","scrollIntoViewIfNeeded","highlightedLabel","labelsListContainer","updateSelectedLabels","handleLabelClick","onDropdownAppear","selectFirstItem","handleFocus","_event$target$parentN","isDropdownVariantSidebar","VARIANT_SIDEBAR","isDropdownVariantStandalone","VARIANT_STANDALONE","isDropdownVariantEmbedded","VARIANT_EMBEDDED","DropdownContentsLabelsView","DropdownContentsCreateView","DropdownHeader","DropdownFooter","toggleAttrs","selectedLabels","dropdownButtonText","labelCreateType","isDirty","dropdownContentsView","firstLabelName","remainingLabelCount","showDropdownFooter","isSidebar","setLabels","toggleDropdownContentsCreateView","toggleDropdownContent","_this$$refs$dropdown","$_popper","scheduleUpdate","handleDropdownHide","header","clearSearch","handleNewLabel","GlLabel","allowLabelRemove","supportsLockOnMerge","labelsFilterBasePath","labelsFilterParam","sortedSelectedLabels","_sortBy","isScopedLabel","buildFilterUrl","basePath","filterParam","scopedLabel","allowScopedLabels","isLabelLocked","lock_on_merge","showCloseButton","removeLabel","DropdownValue","DropdownContents","EmbeddedLabelsList","allowLabelEdit","showEmbeddedLabelsList","issuableSupportsLockOnMerge","contentIsOnViewport","labelsSelectInProgress","oldIid","sidebarExpandedOnClick","issuableLabelIds","isRealtimeEnabled","realtimeLabels","isLabelListEnabled","isLockOnMergeSupported","labelShortcutDescription","labelShortcutKey","labelTooltip","issuableLabelsQueries","issuableQuery","queryVariables","TYPE_TEST_CASE","issuableLabelsSubscription","issuableLabelsUpdated","handleCollapsedValueClick","handleDropdownClose","getUpdateVariables","collapseEditableItem","_this$$refs$editable","dropdownContents","currentIid","updateVariables","operationMode","mutationOperationMode","addLabelIds","removeLabelIds","inputVariables","_data$updateIssuableL","_data$updateIssuableL2","_data$updateIssuableL3","updateIssuableLabels","getRemoveVariables","removeVariables","handleLabelRemove","showHelp","helpHref","showHelpState","newCveIdRequestUrl","currUrl","newUrl","toggleHelpState","groupIterationsQuery","shouldFetch","currentIterationId","_this$currentIteratio","iterationCadences","iterationCadencesListBoxItems","dropdownSelectedText","_this$currentIteratio2","handleSearch","setSearchTerm","iterationId","_this$iterationCadenc","onDropdownShow","POLICIES_PATH","policyText","policyName","EscalationPolicyCollapsedState","EscalationPolicyHelpState","INDEX_PATH","EscalationPoliciesEmptyState","escalationsPossible","policiesPath","attributeTitle","healthStatusFormInput","handleChange","epicFormInput","SidebarDropdown","iterationFormInput","getIdForIteration","handleIterationSelect","IterationDropdown","onIterationSelect","CEMountSidebar","SidebarWeightWidget","mountSidebarWeightWidget","SidebarHealthStatusWidget","mountSidebarHealthStatusWidget","workItemEpics","mountSidebarEpicWidget","SidebarIterationWidget","mountSidebarIterationWidget","hasEscalationPolicies","SidebarEscalationPolicy","mountSidebarEscalationPolicy","CveIdRequest","mountSidebarCveIdRequest","Mutation","discardChanges","getSharedStateQuery","sharedData","showDiscardChangesModal","formTouched","goFirstStep","profileType","goForward","goBack","resetHistory","toggleModal","setCachedPayload","cachedPayload","setFormTouched","setResetAndClose","resetAndClose","Query","cachedData","resolvers","typeDefs","isPromotionInProgress","handleButtonClick","editCommentLabel","deleteCommentLabel","moreActionsLabel","EmojiPicker","ReplyButton","TimelineEventButton","UserAccessRoleBadge","resolvedStatusMixin","accessLevel","isAuthor","isContributor","projectName","showReply","canDelete","canResolve","canReportAsAbuse","shouldShowActionsDropdown","showDeleteAction","isUserAssigned","displayAssignUserText","splitCamelCase","canAssign","can_set_issue_metadata","displayAuthorBadgeText","noteable","displayMemberBadgeText","access","displayContributorBadgeText","resolveIcon","onEdit","onDelete","onResolve","onAbuse","toggleReportAbuseDrawer","onCopyUrl","handleAssigneeUpdate","assignUser","assignee","setAwardEmoji","attachment","filename","toggleAwardPath","noteAuthorId","isAuthoredByMe","handleAward","NoteEditedText","NoteAwardsList","NoteAttachment","NoteForm","Suggestions","DuoCodeReviewFeedback","failedToLoadMetadata","hasSuggestion","lineType","batchFilePaths","filePaths","filesCount","coAuthoredByTrailer","suggestionCommitMessage","file_paths","suggestions_count","files_count","co_authored_by","handleFormUpdate","formCancelHandler","addSuggestionToBatch","removeSuggestionFromBatch","note_html","user_type","composing","$set","last_edited_at","last_edited_by","toggle_award_path","can_award_emoji","NoteHeader","NoteActions","NoteBody","TimelineEntryItem","discussionFile","showReplyButton","discussionRoot","isOverviewTab","shouldScrollToNote","isEditingLocal","isDeleting","isRequesting","_this$note$isEditing","commentType","classNameBindings","isTarget","_this$note$current_us","_this$note$current_us2","_this$note$current_us3","_this$note$current_us4","can_edit","noteAnchorId","commitLink","_this$note$current_us5","_this$note$position","startLineNumber","getStartLineNumber","endLineNumber","getEndLineNumber","showMultiLineComment","commentLineOptions","fileResolvedFromAvailableSource","getDiffFileByHash","isMRDiffView","_this$note$position2","isFileComment","_this$note$position3","scrollIntoView","editHandler","updateSuccess","oldContent","detectAndConfirmSensitiveTokens","handleUpdateError","recoverNoteContent","ignoreWhilePending","secondaryBtnVariant","secondaryBtnText","hideCancel","getLineClasses","assigneesUpdate","external_author","noteable_note_url","is_contributor","is_noteable_author","project_name","deleteHandler","formUpdateHandler","visibilityObserver","anObject","hasIndices","ignoreCase","multiline","dotAll","unicode","unicodeSets","sticky","popoverContainerId","BDropdownHeader","tbodyTransitionHandlers","tbodyTransitionProps","BTbody","isTbody","tbodyProps","tbodyAttrs","isTransitionGroup","detailsTdClass","tbodyTrAttr","tbodyTrClass","tbodyRowMixin","tdValue","thValue","getFieldFormatter","hasDetailsSlot","tbodyRowEventStopped","emitTbodyRowEvent","rowIndex","isRowHeader","formatted","getFormattedValue","cellTag","cellVariant","getTdValues","tdClass","tdAttr","slotScope","unformatted","toggleDetails","toggleDetailsFactory","detailsShowing","supportsSelectableRows","rowSelected","selectRow","unselectRow","slotName","$_bodyFieldSlotNameCache","$childNodes","striped","hasSelectableRowClick","rowShowDetails","hasRowClickHandler","$rows","detailsId","safeId","$tds","renderTbodyRowCell","ariaRowIndex","primaryKeyValue","rowKey","rowId","selectableClasses","selectableRowClasses","selectableAttrs","selectableRowAttrs","userTrClasses","userTrAttrs","mouseenter","rowHovered","mouseleave","rowUnhovered","detailsScope","$details","userDetailsTrClasses","userDetailsTrAttrs","getCellSlotName","tbodyClass","tbodyMixin","tbody","trs","tr","getTbodyTrs","getTbodyTrIndex","tabIndex","onTBodyRowClicked","renderBusy","renderTopRow","renderEmpty","renderBottomRow","$busy","defaultSlotName","lowercaseSlotName","renderTbodyRow","handlers","auxclick","onTbodyRowMiddleMouseRowClicked","contextmenu","onTbodyRowContextmenu","dblclick","onTbodyRowDblClicked","onTbodyRowKeydown","$props","getPrototypeOf","nn","rn","isFrozen","tn","getOwnPropertyDescriptor","en","Proxy","revocable","revoke","Reflect","for","ownKeys","deleteProperty","an","produceWithPatches","useProxies","setUseProxies","autoFreeze","setAutoFreeze","createDraft","finishDraft","applyPatches","isDiffDiscussion","normalizeChildren","registerLink","signInLink","signedOutText","startTagRegister","startTagSignIn","endRegisterTag","endSignInTag","compileList","exclude","includedSchema","currentType","previousType","previousIndex","loadKind","scalar","mapping","collectType","compileMap","DEFAULT","schemas","actionDetailText","editedAt","editedBy","isOctCode","isDecCode","hasDigits","binary","hexadecimal","GlClearIconButton","inputListeners","clearInput","nameId","GROUP_TOP_BORDER_CLASSES","HEADER_ITEMS_BORDER_CLASSES","GlListboxItem","GlListboxGroup","GlListboxSearchInput","multiple","isCheckCentered","searchable","searching","infiniteScroll","totalItems","infiniteScrollLoading","noResultsText","searchPlaceholder","resetButtonLabel","showSelectAllButtonLabel","srOnlyResultsLabel","selectedValues","listboxId","searchStr","topBoundaryVisible","bottomBoundaryVisible","hasItems","listboxTag","_this$flattenedOption","showNoResultsText","showSelectAllButton","toggleClasses","hasSelection","footer","newSelected","observeScroll","_this$scrollObserver","scrollObserver","groupClasses","_this$selectedIndices","focusSearchInput","selectedIndices","isSearchInput","_this$$refs$list","searchBox","onMultiSelect","onSingleSelect","selectedValue","_this$scrollObserver2","observer","_entry$target","$__visibilityProp","isIntersecting","topBoundary","bottomBoundary","listboxToggleText","toggleButtonClasses","headerId","onResetButtonClicked","onSelectAllButtonClicked","listboxClasses","itemTag","hasHeader","isFocused","listboxItemMoreItemsAriaAttributes","onIntersectionObserverAppear","showNote","isSyntheticNote","showEdited","_this$noteId","noteHtml","_this$note","body_html","noteQuery","_data$note$last_edite","_result$errors","_result$data","NoteSignedOutWidget","DiscussionLockedWidget","CommentTypeDropdown","noteIsInternal","canSetInternalNote","can_create_confidential_note","issueActionButtonTitle","openOrClose","actionButtonClassNames","canToggleIssueState","can_update","closedAndLocked","draftEndpoint","slugifyWithUnderscore","disableSubmitButton","convertToCamelCase","handleSaveError","handleSaveDraft","handleSave","withIssueAction","saveNoteParams","discard","toggleIssueState","handleEnter","_badgeState$updateSta","editCurrentUserLastNote","lastNote","dismissError","selectFilter","slotKeys","gqlClient","watchQuery","confidentialityQueries","CACHE_ONLY","_res$data","SORT_OPTIONS","DESC","cls","DISCUSSION_FILTERS_DEFAULT_VALUE","currentValue","NOTE_UNDERSCORE","displayFilters","selectedSortOption","sortStorageKey","toggleFilters","handleLocationHash","toggleCommentsForm","COMMENTS_ONLY_FILTER_VALUE","HISTORY_ONLY_FILTER_VALUE","DISCUSSION_TAB_LABEL","filterType","DISCUSSION_FILTER_TYPES","ALL","COMMENTS","HISTORY","fetchSortedDiscussions","isSortDropdownItemActive","sortDir","TimelineToggle","DiscussionFilter","AiSummarizeNotes","MrDiscussionFilter","showTimelineViewToggle","resourceGlobalId","aiLoading","showAiActions","summarizeComments","NotePreview","NotesActivityHeader","NoteableDiscussion","SystemNote","CommentForm","PlaceholderNote","PlaceholderSystemNote","SkeletonLoadingContainer","DiscussionFilterNote","OrderedLayout","SidebarSubscription","DraftNote","AiSummary","summarizeClientSubscriptionId","uuidv4","renderSkeleton","isInitialEventTriggered","sortDirDesc","previewNoteId","_this$targetNoteHash","skeletonNotes","prerenderedNotesCount","isSkeletonNote","previewNote","isPreviewNote","canReply","isAppReady","checkLocationHash","handleReviewTracking","handleHashChanged","ISSUABLE_COMMENT_OR_REPLY","quoteReply","highlightCurrentUser","getDiscussionInSelection","CopyAsGFM","selectionToGfm","showReplyForm","replyInMainEditor","commentForm","discussionIsIndividualNoteAndNotConverted","startReplying","setAiLoading","noteFormStartReview","noteFormAddToReview","autoSaveKey","getAutoSaveKeyFromDiscussion","systemNote","refInFor","seenIndex","groupSelectedVulnerabilityStates","transformedStates","transformNewlyDetectedState","vulnerabilityStatusGroup","vulnerabilityState","statesForGroup","groupVulnerabilityStatesWithDefaults","buildFiltersFromRule","vulnerability_age","vulnerabilityAge","vulnerability_states","vulnerabilityStates","vulnerability_attributes","vulnerabilityStateGroups","vulnerabilityAttributes","buildFiltersFromLicenseRule","_licenses","license_types","DEFAULT_SETTINGS","DEFAULT_PROJECT_SETTINGS","DEFAULT_GROUP_SETTINGS","FALLBACK","DEFAULT_SCAN_RESULT_POLICY","DEFAULT_SCAN_RESULT_POLICY_NEW_FORMAT","DEFAULT_SCAN_RESULT_POLICY_WITH_SCOPE_WITH_GROUP_SETTINGS","DEFAULT_SCAN_RESULT_POLICY_WITH_SCOPE_WITH_GROUP_SETTINGS_NEW_FORMAT","getPolicyYaml","newYamlFormat","baseIsMap","nodeIsMap","confidentialBodyText","confidentialIcon","tooltipLabel","confidentialityOnWarning","confidentialityOffWarning","toggleButtonText","isTestCase","isIssueOrTestCase","permissions","issuableTypeText","commentText","issuableSetConfidential","hideDropdownEvent","SidebarConfidentialityContent","SidebarConfidentialityForm","client","clients","draftData","removeWIP","targetParam","environment_target","getData","getCachedData","spread","cachedRes","rebase","skipCi","metricsUrl","projectsFetchPath","dropdownButtonTitle","dropdownHeaderTitle","moveInProgress","projectsList","selectedProjects","fetchProjects","triggerSearch","name_with_namespace","handleProjectSelect","handleMoveClick","baseInverter","toIteratee","xhtml","xlink","xml","xmlns","requestBranches","setBranchesEndpoint","_data$Branches","Branches","_state$projects","refsUrl","selectedBranch","GlResizeObserver","GlResizeObserverDirective","truncateTarget","tooltipDisabled","updateTooltip","updateTooltipDebounced","selectTarget","_isFunction","hasHorizontalOverflow","onResize","getObserver","$_gl_intersectionHandler","$_gl_intersectionObserver","DASHBOARD_TYPE_PROJECT","DASHBOARD_TYPE_PIPELINE","DASHBOARD_TYPE_GROUP","DASHBOARD_TYPE_INSTANCE","SEVERITY_LEVEL_CRITICAL","SEVERITY_LEVEL_HIGH","SEVERITY_LEVEL_UNKNOWN","SEVERITY_LEVEL_MEDIUM","SEVERITY_LEVEL_LOW","SEVERITY_LEVELS","SEVERITY_LEVELS_KEYS","REPORT_TYPES_DEFAULT","api_fuzzing","container_scanning","coverage_fuzzing","dast","dependency_scanning","sast","secret_detection","REPORT_TYPES_DEFAULT_KEYS","REPORT_TYPES_CONTAINER_SCANNING_FOR_REGISTRY","container_scanning_for_registry","REPORT_TYPES_WITH_CLUSTER_IMAGE","cluster_image_scanning","REPORT_TYPES_WITH_MANUALLY_ADDED","generic","REPORT_TYPES_ALL","COLLAPSE_SECURITY_REPORTS_SUMMARY_LOCAL_STORAGE_KEY","DOC_PATH_APPLICATION_SECURITY","DOC_PATH_VULNERABILITY_DETAILS","DOC_PATH_VULNERABILITY_REPORT","DOC_PATH_SECURITY_CONFIGURATION","DOC_PATH_SECURITY_SCANNER_INTEGRATION_REPORT","DOC_PATH_SECURITY_SCANNER_INTEGRATION_RETENTION_PERIOD","DOC_PATH_PROJECT_SECURITY_DASHBOARD","SEVERITY_GROUP_F","SEVERITY_GROUP_D","SEVERITY_GROUP_C","SEVERITY_GROUP_B","SEVERITY_GROUP_A","SEVERITY_GROUPS","severityLevels","VULNERABILITY_DETAIL_CODE_FLOWS","APPROVER_TYPE_DICT","ADD_APPROVER_LABEL","APPROVER_TYPE_LIST_ITEMS","mapIds","removeAvailableApproverType","createActionFromApprovers","approvals_required","newAction","userIds","groupIds","actionHasType","approversOutOfSync","_action$user_approver","_action$user_approver2","_action$user_approver3","_action$user_approver4","usersIDs","usersNames","userName","userLength","usersOutOfSync","_action$group_approve","_action$group_approve2","_action$group_approve3","_action$group_approve4","groupsIDs","groupsPaths","groupsOutOfSync","WARN_TEMPLATE","WARN_TEMPLATE_HELP_TITLE","WARN_TEMPLATE_HELP_DESCRIPTION","getDefaultHumanizedTemplate","numOfApproversRequired","DEFAULT_APPROVER_DROPDOWN_TEXT","REQUIRE_APPROVAL_TYPE","BOT_MESSAGE_TYPE","WARN_TYPE","buildApprovalAction","buildBotMessageAction","buildAction","WARN_TYPE_TEXT","ACTION_OPTIONS","ACTION_LISTBOX_ITEMS","securityPolicyApprovalWarnMode","DISABLED_BOT_MESSAGE_ACTION","conflict","discussions_not_resolved","draft_status","merge_time","need_rebase","requested_changes","locked_paths","locked_lfs_files","not_approved","security_policy_violations","commits_status","ci_must_pass","not_open","merge_request_blocked","status_checks_must_pass","jira_association_missing","approvals_syncing","ICON_NAMES","failed","BORDER_CLASSES","bordered","borderPosition","_this$group","showHeader","borderClass","groupLabeledBy","ToggleRepliesWidget","resolvedText","lastUpdatedBy","lastUpdatedAt","linkStart","discussion_path","commitDisplay","isForCommit","linkEnd","toggleDiscussionHandler","FIRST_CHAR_REGEX","DiffFileHeader","DiffViewer","ImageDiffOverlay","diffMode","diffViewerMode","_this$discussion$diff","fileDiffRefs","headSha","baseSha","isTextFile","hasTruncatedDiffLines","_this$discussion$posi","isFileDiscussion","backfilledDiffFile","fetchDiff","highlight","trimChar","userColorSchemeClass","DiscussionReplyPlaceholder","ResolveDiscussionButton","ResolveWithIssueButton","resolveWithIssuePath","shouldShowJumpToNextDiscussion","resolvableNotes","userCanResolveDiscussion","_note$current_user","DiscussionNotesRepliesWrapper","diffLine","shouldGroupReplies","hasReplies","isDiscussionInternal","_this$discussion$note","SYSTEM_NOTE","componentData","DiffDiscussionHeader","DiscussionNotes","DiscussionActions","diffLineNoteFormMixin","renderDiffFile","alwaysExpanded","discussionsByDiffOrder","newNotePath","shouldRenderDiffs","wrapperComponent","DiffWithNote","wrapperComponentProps","shouldHideDiscussionBody","canShowReplyActions","_this$discussion$orig","_this$discussion$orig2","discussionHolderClass","onStartReplying","noteForm","cancelReplyForm","cancelBtnText","replyData","showReplies","draftForDiscussion","saveReply","mark","captureStackTrace","getSymbols","CreateLabelDropdown","$dropdownBack","$cancelButton","$newLabelField","$newColorField","$colorPreview","$addList","$newLabelError","$newLabelErrorContent","$newLabelCreateButton","$colorSuggestions","addListDefault","cleanBinding","addBinding","addColorValue","enableLabelCreateButton","updateColorPreview","updateColorPickerPreview","resetForm","saveLabel","previewColor","newLabel","humanize","addNewList","els","$els","$dropdown","$dropdownContainer","issueUpdateURL","selectedLabel","showNo","showAny","showMenuAbove","defaultLabel","abilityName","$form","$sidebarCollapsedValue","$value","$loading","initialSelected","scopedLabels","saveLabelData","label_ids","labelCount","getLabelTemplate","enableScopedLabels","toRemoveIds","initDeprecatedJQueryDropdown","labelUrl","extraData","isAny","positionMenuAbove","colorEl","removesAll","indeterminate","dropdownValue","multiSelect","linkEl","selectedLayoutClasses","listItemEl","selectable","filterable","$dropdownParent","$dropdownInputField","isIssueIndex","isMRIndex","Issuable","filterResults","clearMenu","vue","clicked","clickEvent","isMarking","selectedObj","enableBulkLabelDropdown","setDropdownData","preserveContext","tplData","linkOpenTag","labelTemplate","_template","labelTextClass","escapeStr","text_color","scopedLabelTemplate","tooltipTitleTemplate","rightLabelTextClass","onSelectCheckboxIssue","$container","isOverviewPage","getAllDiscussionElements","findNextClosestVisibleDiscussion","discussionElements","visibleHorizontalOffset","getNextDiscussion","firstDiscussion","nextClosestDiscussion","nextDiscussion","getPreviousDiscussion","lastDiscussion","previousDiscussion","handleJumpForBothPages","ctx","scrollOptions","_window$mrTabs2","_window$mrTabs3","_window$mrTabs4","disableVirtualScroller","isDescriptionVersionExpanded","deleteInProgress","canSeeDescriptionVersion","description_diff_path","displayDeleteButton","can_delete_description_version","shouldShowDescriptionVersion","descriptionVersionToggleIcon","toggleDescriptionVersion","_this$descriptionVers","deleteDescriptionVersion","delete_description_version_path","ICON_COLORS","deleteButtonLabel","descriptionVersionHistoryMixin","showLines","loadingDiff","isAllowedIcon","isTargetNote","toggleIcon","actionTextHtml","hasMoreCommits","singleLineDescription","deleteButtonClasses","iconBgClass","systemNoteIconName","outdated_line_change_path","labelText","notificationCallback","intervalHeader","canPoll","checkConditions","makeDelayedRequest","clipboardTooltipText","clipboardProps","tooltipBoundary","clipboardTooltip","loadingIconLabel","templateText","isTodo","isIconButton","incrementGlobalTodoCount","updateGlobalTodoCount","decrementGlobalTodoCount","onToggle","pairKey","pairHasKey","objectKeys","getFileReviewsKey","isFileReviewed","reviews","fileReviews","reviewStatuses","flat","reviewsForMr","setReviewsForMergeRequest","markFileReview","usableReviews","updatedReviews","updateSidebarClasses","layoutPage","rightSidebar","windowSize","isMR","addEventListeners","$document","sidebarCollapseClicked","onSidebarDropdownHidden","sidebarToggleClicked","contentRect","$toggleButtons","$collapseIcon","$expandIcon","$toggleContainer","blockOrName","getBlock","setCollapseAfterUpdate","toggleSidebar","sidebarDropdownHidden","triggerOpenSidebar","startTime","differenceInMilliseconds","PROJECTS_WITH_FRAMEWORK","ALL_PROJECTS_IN_GROUP","SPECIFIC_PROJECTS","ALL_PROJECTS_IN_LINKED_GROUPS","PROJECT_SCOPE_TYPE_TEXTS","PROJECT_SCOPE_TYPE_LISTBOX_ITEMS","EXCEPT_PROJECTS","COMPLIANCE_FRAMEWORKS_KEY","PROJECTS_KEY","GROUPS_KEY","EXCEPTION_TYPE_TEXTS","GROUP_EXCEPTION_TYPE_TEXTS","EXCEPTION_TYPE_LISTBOX_ITEMS","GROUP_EXCEPTION_TYPE_LISTBOX_ITEMS","Participants","fetchingError","SidebarParticipants","borderless","clearButtonTitle","focusin","onFocusin","focusout","onFocusout","hasValue","_this$$refs$input","_this$$refs$clearButt","clearButton","relatedTarget","isInputOrClearButton","inputAttributes","showClearButton","I18N","SeverityToken","initialSeverity","INCIDENT_SEVERITY","UNKNOWN","severitiesList","updateSeverity","updateIssuableSeverity","issueSetSeverity","UPDATE_SEVERITY_ERROR","TRY_AGAIN","SEVERITY_VALUE","uuid","labelPosition","isVerticalLayout","shouldRenderDescription","shouldRenderHelp","isChecked","helpId","toggleFeature","queueRedisHllEvents","verifyCap","timestamp","TRACKING_CAP_KEY","TRACKING_CAP_LENGTH","shouldDispatchEvent","deferDuration","_delay","dispatchRedisHllUserEvent","DEFER_DURATION","scoped","splitScopedLabelIndex","textColorVariant","light","labelTitle","labelComponent","scopedKey","scopedValue","tooltipTarget","globalThis","DESCRIPTORS","defineBuiltInAccessor","regExpFlags","RegExpPrototype","INDICES_SUPPORT","calls","expected","addGetter","chr","pairs","hasListenerMixin","$events","_events","buttonId","initialLoading","shouldShowConfirmationPopover","editTooltip","editAriaLabel","editKeyshortcuts","editButtonText","editTooltipText","editAriaLabelText","editKeyshortcutsText","collapseWhenOffClick","collapseOnEscape","emitEvent","forwardDeploymentFailureModalId","BUTTON_TOOLTIP_RETRY","BUTTON_TOOLTIP_CANCEL","BUTTON_TOOLTIP_DELETE","FILTER_TAG_IDENTIFIER","JOB_GRAPHQL_ERRORS","jobMutationErrorText","jobQueryErrorText","ICONS","TAG","MR","BRANCH","RETRY","SUCCESS_STATUS","PASSED_STATUS","MANUAL_STATUS","PIPELINE_ID_KEY","PIPELINE_IID_KEY","RAW_TEXT_WARNING","TRACKING_CATEGORIES","tests","listbox","PIPELINE_POLL_INTERVAL_BACKOFF","NETWORK_STATUS_READY","addedLines","removedLines","diffsCount","diffFilesLength","filesText","isCompareVersionsHeader","hasDiffFiles","notDiffable","fileStats","assigneesQueries","issuableAssigneesUpdated","handleFetchResult","setAssigneesFromRealtime","UncollapsedAssigneeList","signedIn","assigneesText","emptyUsers","InviteMembersTrigger","triggerSource","assigneesWidget","assignTo","IssuableAssignees","SidebarInviteMembers","SidebarAssigneesRealtime","UserSelect","directlyInviteMembers","initialAssignees","TYPE_ALERT","isSettingAssignees","oldSelected","_node$mergeRequestInt","shouldEnableRealtime","assigneeText","isAssigneesLoading","_gon","_gon2","_gon3","current_user_avatar_url","assigneeShortcutDescription","assigneeShortcutKey","assigneeTooltip","assigneeUsernames","issuableSetAssignees","assignSelf","saveAssignees","usernames","collapseWidget","expandWidget","userSelect","showError","setDirtyState","baseIsRegExp","nodeIsRegExp","reHasUnicodeWord","hasWorkItemParent","hasParent","currentFetchError","workItem","_data$workspace3","workItems","setParentData","workItemId","TYPENAME_WORK_ITEM","skipRealTimeWorkItemParentUpdates","_subscriptionData$dat","TYPENAME_ISSUE","workItemType","updating","_response$data$issuab","updateWorkItem","hierarchyWidget","parentId","updateIssuable","WORK_ITEM_TYPE_VALUE_EPIC","issuableSetAttribute","updateError","_workItem$widgets","slotData","BTr","bvTableRowGroup","isRowDark","trClasses","trAttrs","baseProperty","getSymbolsIn","isDrop","fromRight","formattedDate","hasDate","resetText","SidebarFormattedDate","dateType","dateIsFixed","dateFields","isDateFixed","fixed","hasFixedDate","dateFixed","formattedFixedDate","noDate","formattedInheritedDate","dateFromMilestones","GlDatepicker","SidebarInheritDate","dateTypes","due","canInherit","dateQueries","skipIssueDueDateSubscription","startDateQueries","dueDateQueries","dateLabel","removeDateLabel","removeStartDate","removeDueDate","dateValue","first_day_of_week","parsedDate","dataTestId","epicDatePopoverEl","epicDatePopover","openDatePicker","datePicker","setFixedDate","toISODateFormat","issuableSetDate","dateHelpValidMessage","dateHelpUrl","esprima","b64","lens","getLens","validLen","placeHoldersLen","Arr","_byteLength","curByte","revLookup","uint8","extraBytes","len2","encodeChunk","lookup","decorateData","entity","tempFile","opened","rawPath","file_lock","parentPath","mimeType","lastCommitSha","lastOpenedAt","mrChange","prevPath","setPageTitleForFile","setPageTitle","currentBranchId","currentProjectId","commitActionForFile","createCommitPayload","newBranch","preBuiltCommitMessage","stagedFiles","isBlob","isBlobUrl","previous_path","last_commit_id","lastCommit","createNewMergeRequestUrl","projectUrl","sortTreesByTypeAndName","sortTree","sortedTree","filePathMatches","getChangesCountForFiles","mergeTrees","fromTree","toTree","recurseTree","existingTreeNode","getEntryOrRoot","trees","swapInParentTreeWithSorting","oldKey","newPath","removeFromParentTree","updateFileCollections","entryPath","fileCollection","swapInStateArray","cleanTrailingSlash","pathsAreEqual","extractMarkdownImagesFromEntries","mdFile","images","alt","_entries$imagePath","_entries$imagePath2","_entries$imagePath3","imagePath","isRootRelative","relativePathToAbsolute","imageContent","imageRawPath","isAbsolute","dataView","disableLabels","labelsList","labelsString","labelFilterUrl","lockOnMerge","handleCollapsedClick","getStatusLabel","_STATUS_LABELS$status","STATUS_LABELS","failureType","AssigneeAvatar","UserNameWithStatus","availability","_this$user","CollapsedAssignee","hasNoUsers","hasMoreThanOneAssignee","hasMoreThanTwoAssignees","allAssigneesCanMerge","can_merge","sidebarAvatarCounter","collapsedUsers","collapsedLength","tooltipTitleMergeStatus","mergeLength","_u$mergeRequestIntera","usersLength","maxRender","renderUsers","allUsers","isUserBusy","amount","generateCollapsedAssigneeTooltip","tooltipOptions","CopyableField","issueEmailAddress","STATUS_LIST","statusSubtexts","statusDropdownOptions","currentStatusLabel","EscalationStatus","escalationPoliciesEnabled","escalationPolicies","escalationStatus","escalationStatusQuery","fetchError","closeSidebar","escalationStatusMutation","issueSetEscalationStatus","noMilestone","placeholderMilestone","canAdminMilestone","milestoneId","milestoneTitle","projectMilestonesPath","TYPENAME_MILESTONE","footerItemText","IssuableMoveDropdown","projectFullPath","selectedIssuables","cannotMoveTasksWarningTitle","tasksSelected","testCasesSelected","issuesSelected","WORK_ITEM_TYPE_ENUM_ISSUE","incidentsSelected","WORK_ITEM_TYPE_ENUM_INCIDENT","WORK_ITEM_TYPE_ENUM_TASK","WORK_ITEM_TYPE_ENUM_TEST_CASE","handleIssuableChecked","moveIssues","targetProject","iids","issueData","promises","moveIssue","promisesResult","foundError","promiseResult","_promiseResult$data$i","issueMove","refetchQueries","getIssuesQuery","getIssuesCountQuery","moveIssueMutation","moveIssueInput","targetProjectPath","referenceQueries","reviewers","reviewer","defaultDropdownText","handleReset","subscriptionsDropdownOptions","IssuableTimeTracker","limitToHours","canAddTimeEntries","canSetTimeEstimate","listenForQuickActions","quickActionListened","changedCommands","crmDocsLink","DOCS_URL_IN_EE_DIR","groupIssuesPath","contacts","getIssueCrmContactsQuery","_data$issue","customerRelationsContacts","issueCrmContactsSubscription","issueCrmContactsUpdated","shouldShowContacts","_this$contacts","contactsLabel","contactCount","_this$contacts2","shouldShowPopover","contact","popOverData","divider","_contact$organization","organization","phone","getIssuesPath","contactId","firstName","lastName","ProjectSelect","titleInProgress","moveErrorMessage","_data$issueMove","projectsAutocompleteEndpoint","dropdownOptions","sidebarOptEl","mountSidebarReviewers","SidebarReviewers","isInIssuePage","isInDesignPage","reviewersInputEl","SidebarReviewersInputs","reviewerDropdown","userDropdown","trackAction","trackLabel","trackShowInviteMemberLink","MilestoneDropdown","mountSidebarLabelsWidget","LabelsSelectWidget","projectIssuesPath","isInIncidentPage","MoveIssuesButton","StatusDropdown","SubscriptionsDropdown","ConfidentialityDropdown","mountMoveIssueButton","MoveIssueButton","_gon4","assigneeIdsInput","selectedUserName","onSelectedUnassigned","onSelected","SidebarTodoWidget","mountSidebarTodoWidget","SidebarAssigneesWidget","maxAssignees","CollapsedAssigneeList","mountSidebarAssigneesWidget","CrmContacts","mountSidebarCrmContacts","mountSidebarMilestoneWidget","SidebarDueDateWidget","mountSidebarDueDateWidget","SidebarReferenceWidget","mountSidebarReferenceWidget","IssuableLockForm","mountIssuableLockForm","SidebarParticipantsWidget","mountSidebarParticipantsWidget","mountSidebarSubscriptionsWidget","createNoteEmail","CopyEmailToClipboard","mountCopyEmailToClipboard","timeTrackingLimitToHours","canCreateTimelogs","SidebarTimeTracking","mountSidebarTimeTracking","SidebarSeverityWidget","mountSidebarSeverityWidget","SidebarEscalationStatus","mountSidebarEscalationStatus","projectArchivedWarning","lockedIssueWarning","BASE_DROPDOWN_CLASS","ariaHaspopup","ariaLabelledby","mainAxis","openedYet","baseDropdownId","_this$toggleText","hasNoVisibleToggleText","isIconOnly","toggleLabelledBy","isEllipsisButton","isCaretOnly","isDefaultToggle","buttonTextClasses","toggleButtonTextClasses","ariaAttributes","toggleOptions","_this$$refs$toggle","middleware","allowedPlacements","_this$nonScrollableCo","availableHeight","contentsEl","contentsAvailableHeight","nonScrollableContentHeight","toggleElement","checkToggleFocusable","stopFloating","calculateNonScrollableAreaHeight","MutationObserver","childList","subtree","stopAutoUpdate","floatingUIConfig","_this$observer","_this$stopAutoUpdate","prevented","startFloating","hadFocusWithin","hasToggled","focusToggle","toggleOnEnter","toggleOnSpace","scrollableArea","floatingElementBoundingBox","scrollableAreaBoundingBox","toggleComponent","toggleAttributes","toggleListeners","panelClasses","TYPE_USER","TYPE_GROUP","TYPE_HIDDEN_GROUPS","RULE_TYPE_FALLBACK","RULE_NAME_ANY_APPROVER","APPROVAL_SETTINGS_I18N","approvalSettingsHeader","approvalSettingsDescription","saveChanges","loadingErrorMessage","savingErrorMessage","savingSuccessMessage","lockedByAdmin","lockedByGroupOwner","PROJECT_APPROVAL_SETTINGS_LABELS_I18N","authorApprovalLabel","preventMrApprovalRuleEditLabel","preventCommittersApprovalLabel","requireUserPasswordLabel","whenCommitAddedLabel","keepApprovalsLabel","removeApprovalsOnPushLabel","selectiveCodeOwnerRemovalsLabel","GROUP_APPROVAL_SETTINGS_LABELS_I18N","APPROVAL_DIALOG_I18N","approvalsRequiredLabel","approvalTypeLabel","approversLabel","nameLabel","nameDescription","protectedBranchLabel","protectedBranchDescription","validations","approvalsRequiredNegativeNumber","approvalsRequiredNotNumber","approvalsRequiredMinimum","approversRequired","branchesRequired","ruleNameTaken","ruleNameMissing","ruleNameTooLong","MR_APPROVALS_PROMO_DISMISSED","MR_APPROVALS_PROMO_TRACKING_EVENTS","learnMoreClick","tryNowClick","collapsePromo","expandPromo","MR_APPROVALS_PROMO_I18N","accordionTitle","promoTitle","summary","tryNow","valueStatements","DROPDOWN_OPTION_PROJECT_GROUPS","TABLE_HEADERS","rsBreakRange","rsMathOpRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsModifier","rsEmoji","reUnicodeWord","AJAX_USERS_SELECT_PARAMS_MAP","todo_filter","todo_state_filter","author_id","ACTIVE_AND_BLOCKED_USER_STATES","reLatin","reComboMark","baseWhile","baseIntersection","castArrayLikeObject","intersection","mapped","PATTERN_NON_PRINTABLE","PATTERN_NON_ASCII_LINE_BREAKS","PATTERN_FLOW_INDICATORS","PATTERN_TAG_HANDLE","PATTERN_TAG_URI","_class","is_EOL","is_WHITE_SPACE","is_WS_OR_EOL","is_FLOW_INDICATOR","fromHexCode","lc","simpleEscapeSequence","charFromCodepoint","simpleEscapeCheck","simpleEscapeMap","onWarning","legacy","typeMap","lineIndent","documents","generateError","throwWarning","directiveHandlers","YAML","major","minor","checkLineBreaks","tagMap","captureSegment","checkJson","_length","_character","mergeMappings","destination","overridableKeys","quantity","storeMappingPair","keyTag","keyNode","valueNode","startLine","startPos","readLineBreak","skipSeparationSpace","allowComments","checkIndent","lineBreaks","testDocumentSeparator","writeFoldedLines","readBlockSequence","nodeIndent","_line","_anchor","anchorMap","composeNode","readTagProperty","tagHandle","isVerbatim","isNamed","readAnchorProperty","parentIndent","nodeContext","allowToSeek","allowCompact","allowBlockStyles","allowBlockScalars","allowBlockCollections","typeIndex","typeQuantity","flowIndent","blockIndent","indentStatus","atNewLine","hasContent","following","_pos","atExplicitKey","readBlockMapping","terminator","isPair","isExplicitPair","isMapping","readNext","readFlowCollection","captureStart","folding","chomping","didReadContent","detectedIndent","textIndent","emptyLines","atMoreIndented","readBlockScalar","captureEnd","readSingleQuotedScalar","hexLength","hexResult","readDoubleQuotedScalar","readAlias","withinFlowCollection","hasPendingContent","_lineStart","_lineIndent","_kind","readPlainScalar","readDocument","directiveName","directiveArgs","documentStart","hasDirectives","loadDocuments","nullpos","loadAll","safeLoadAll","internalNote","renderedNote","internalNoteClass","caption","captionHtml","captionMixin","$caption","hasCaptionSlot","captionId","isEpicAttribute","issuableParent","_this$glFeatures","epicWidgetEditConfirmation","hasCurrentAttribute","hasEpic","shouldSkipRealTimeEpicLinkUpdates","selectedTitle","editConfirmation","_this$issuableParent","attributeTypeIcon","timeFor","_this$glFeatures2","_this$currentAttribut4","_data$issuableSetAttr","handlePopoverClose","handlePopoverConfirm","handleEditConfirmation","noPermissionToView","editConfirmationCta","editConfirmationCancel","getFocusableOptions","_this$$refs$resultsLi","resultsList","HOME_KEY","END_KEY","ARROW_UP_KEY","ARROW_DOWN_KEY","ESC_KEY","NUMPAD_ENTER_KEY","_event$target","NEW_POLICY_BUTTON_TEXT","PIPELINE_EXECUTION_POLICY_TYPE_HEADER","VULNERABILITY_MANAGEMENT_POLICY_TYPE_HEADER","legacyApproval","pipelineExecution","POLICIES_LIST_CONTAINER_CLASS","computeCoordsFromPlacement","sideAxis","alignLength","isVertical","commonX","commonY","commonAlign","coords","validMiddleware","getElementRects","statefulPlacement","middlewareData","resetCount","nextX","nextY","reset","initialPlacement","detectOverflow","_await$platform$isEle","elementContext","altBoundary","paddingObject","clippingClientRect","offsetScale","elementClientRect","arrowDimensions","isYAxis","minProp","maxProp","clientProp","endDiff","startDiff","arrowOffsetParent","clientSize","centerToReference","largestPossiblePadding","minPadding","maxPadding","min$1","shouldAddOffset","alignmentOffset","centerOffset","autoPlacement","_middlewareData$autoP","_middlewareData$autoP2","_placementsThatFitOnE","crossAxis","autoAlignment","detectOverflowOptions","placements$1","getPlacementList","currentPlacement","alignmentSides","currentOverflows","allOverflows","overflows","nextPlacement","placementsSortedByMostSpace","resetPlacement","flip","_middlewareData$arrow","_middlewareData$flip","checkMainAxis","checkCrossAxis","fallbackPlacements","specifiedFallbackPlacements","fallbackStrategy","fallbackAxisSideDirection","initialSideAxis","isBasePlacement","hasFallbackAxisSideDirection","overflowsData","_middlewareData$flip2","_overflowsData$filter","_overflowsData$filter2","currentSideAxis","getSideOffsets","isAnySideFullyClipped","referenceHiddenOffsets","referenceHidden","escapedOffsets","escaped","getBoundingRect","minX","minY","nativeClientRects","clientRects","sortedRects","prevRect","getRectsByLine","resetRects","firstRect","lastRect","isTop","isLeftSide","maxRight","minLeft","measureRects","_middlewareData$offse","diffCoords","mainAxisMulti","crossAxisMulti","rawValue","convertValueToCoords","limiter","mainAxisCoord","crossAxisCoord","maxSide","limitedCoords","limitShift","computedOffset","limitMin","limitMax","_middlewareData$offse2","isOriginSide","_state$middlewareData","_state$middlewareData2","heightSide","widthSide","maximumClippingHeight","maximumClippingWidth","overflowAvailableHeight","overflowAvailableWidth","noShift","availableWidth","xMin","xMax","yMin","yMax","nextDimensions","showComparisonState","showSpentOnlyState","showEstimateOnlyState","showNoTimeTrackingState","timeSpentHumanReadable","timeEstimateHumanReadable","divClass","spanClass","timeTrackedTooltipText","GlProgressBar","timeSpent","parsedTimeRemaining","diffSeconds","timeRemainingHumanReadable","stringifyTime","timeRemainingTooltip","timeRemainingMinutes","timeRemainingPercent","timeRemainingStatusClass","progressBarVariant","noTimeTrackingText","estimatedOnlyText","TimeTrackingCollapsedState","TimeTrackingSpentOnlyPane","TimeTrackingComparisonPane","TimeTrackingReport","CreateTimelogForm","SetTimeEstimateForm","initialTimeTracking","showCollapsed","timeTracking","issuableTimeTracking","timeTrackingQueries","isTimeTrackingInfoLoading","_this$$apollo","_this$timeTracking","totalTimeSpent","_this$timeTracking2","humanTimeEstimate","_this$timeTracking3","humanTotalTimeSpent","_this$timeTracking4","hasTotalTimeSpent","hasTimeEstimate","isTimeReportSupported","timeEstimateTooltip","openRegisterTimeSpentModal","CREATE_TIMELOG_MODAL_ID","setTimeEstimateModalId","SET_TIME_ESTIMATE_MODAL_ID","GlToggle","GlAnimatedNotificationIcon","showInDropdown","subscribed","emailsDisabled","subscribedQueries","_data$workspace4","parentIsGroup","notificationTooltip","subscribeDisabledDescription","labelOn","labelOff","notificationIcon","canSubscribe","setSubscribed","subscribedState","updateIssuableSubscription","toggleSubscribed","notifications","confirmationText","customMessage","jobName","modalText","confirmButton","cancelJob","playJob","retryJob","unscheduleJob","JOB_ACTIONS","dataName","cancelJobMutation","playJobMutation","retry","retryJobMutation","unscheduleJobMutation","JobActionModal","jobId","jobAction","showConfirmationModal","actionType","hasConfirmationModal","_this$jobAction","confirmationMessage","onActionButtonClick","executeJobAction","JobActionButton","JobNameComponent","delayedJobMixin","hasJobAction","_this$status","_this$status2","detailsPath","_this$status3","statusTooltip","captionTop","noBorderCollapse","outlined","responsive","tableClass","tableRendererMixin","isTableSimple","selectableTableClasses","stackedTableClasses","computedBusy","selectableTableAttrs","ariaAttrs","renderCaption","renderColgroup","renderTbody","renderTfoot","$table","tableClasses","tableAttrs","wrapperStyles","formClass","BDropdownForm","autocomplete","displayField","inputLabel","textInput","customTrigger","triggerOnFocus","computedWidth","openedEvent","drawEvent","pikadayConfig","dateString","defaultDateFormatter","monthEl","yearEl","addAccessibleLabels","pikaday","pikaButtons","today","pikaButton","pikaYear","pikaMonth","pikaDay","pikaButtonDate","compareTo","highlightPastDates","calendarTriggerBtn","resetDate","datepickerClasses","renderClearButton","inputAutocomplete","cleared","filterEvents","filterContextListener","contextListener","related","event1","event0","onRemove","__on","onAdd","sourceEvent","mountNotesApp","PipelineAccountVerificationAlert","kebabCase","MountingPortal","toggleDrawer","ReportAbuseDropdownItem","REPORT_TYPES_KEYS","VULNERABILITY_STATE_KEYS","ANY_MERGE_REQUEST","SCAN_FINDING","LICENSE_FINDING","MATCHING","EXCEPT","LICENSE_STATES","newly_detected","emptyBuildRule","invalidRuleValues","areDuplicatesAllowed","invalidScanners","invalidSeverities","invalidVulnerabilityStates","invalidVulnerabilityAttributes","validAttributes","invalidVulnerabilitiesAllowed","vulnerabilities_allowed","invalidVulnerabilityAge","validOperators","validIntervals","validVulnerabilityStates","getDefaultRule","scanType","severity_levels","branch_type","match_on_inclusion_license","license_states","doesBranchExist","projectProtectedBranch","getInvalidBranches","uniqueBranches","invalidBranches","invalidBranchType","humanizeInvalidBranchesError","lastBranch","createNewDraft","publishDraft","addDraftToDiscussion","publish","_res$position","_draft$position","draftsPublishPath","publishReview","tabEl","draftID","expandAllDiscussions","clearDrafts","discardDrafts","draftsDiscardPath","draftsPerDiscussionId","draftsPerFileHashAndLine","shouldRenderDraftRow","diffFileSha","shouldRenderParallelDraftRow","draftsForFile","lkey","rkey","showDraftsForThisSide","isPublishingDraft","currentlyPublishingDrafts","sortedDrafts","processDraft","shouldAnimateReviewButton","publishingDraftId","isPublishing","reviewBarRendered","draftIndex","computeSuggestionCommitMessage","noEmpties","dict","final","upd","matchPhrases","replacementExpression","selectedTargetIndex","_state$startVersion","startVersion","version_index","DIFF_COMPARE_BASE_VERSION_INDEX","selectedSourceIndex","mergeRequestDiff","selectedContextCommitsDiffs","contextCommitsDiff","showing_context_commits_diff","diffCompareDropdownTargetVersions","diffHeadParam","getParameterByName","diffHead","isBaseSelected","isHeadSelected","baseVersion","head_version_path","versionName","targetBranchName","base_version_path","isBase","headVersion","DIFF_COMPARE_HEAD_VERSION_INDEX","isHead","mergeRequestDiffs","compare_path","versionIndex","diffCompareDropdownSourceVersions","versions","isLatestVersion","version_path","commitsText","commits_count","addDivider","PARALLEL_DIFF_VIEW_TYPE","isInlineView","whichCollapsedTypes","automatic","any","diffHasAllExpandedDiscussions","getDiffFileDiscussions","diffHasAllCollapsedDiscussions","_diff$discussions","diffLineDiscussionsExpanded","expandedOnDiff","allDiffDiscussionsExpanded","highlightedLines","_diff$discussions2","isTreePathLoaded","_state$treeEntries$pa","treeEntries","flatBlobsList","allBlobs","isHeader","commentForms","fileLineCoverage","coverageFiles","fileCoverage","lineCoverage","currentDiffIndex","highlighted_diff_lines","branch_name","mrMetadata","user_full_name","isVirtualScrollingEnabled","isBatchLoading","batchLoadingState","isBatchLoadingError","linkedFile","linkedFileHash","retrievingBatches","updateDiffFilesInState","coverageLoaded","newFileData","diffPositionByLineCode","_discussion$original_","_discussion$position","originalStartLineCode","discussionLineCodes","line_codes","isTargetLine","discussionLineCode","isExpandedDiscussion","discussionItem","isHashTargeted","addDiscussion","originalDiscussions","lineHasDiscussion","showTreeList","fileId","viewedDiffFileIds","isTreeLoaded","renderTreeList","fileFinderVisible","newReviews","flattenTree","flatten","blobTree","treeToFlatten","TREE_TYPE","treeAcc","folder","getFolder","shouldGetFolder","currentFileTypeTree","firstFolder","getLowestSingleFolder","setBaseConfig","viewedId","prefetchSingleFile","treeEntry","diffId","startSha","urlParams","old","diff_head","diff_id","fetchFileByFile","_window2","EVT_PERF_MARK_DIFF_FILES_START","_state$diffFiles$","fetchDiffFilesBatch","linkedFileLoading","_window3","increaseAmount","totalLoaded","scrolledVirtualScroller","getBatch","pagination","_diffFiles$","_state$diffFiles","total_pages","code_navigation_path","codeNavigationPath","definitionPathPrefix","fetchDiffFilesMeta","strippedData","has_encoded_file_paths","merge_request_diffs","EVT_PERF_MARK_FILE_TREE_START","new_file","generateTreeList","EVT_PERF_MARK_FILE_TREE_END","VARIANT_WARNING","prefetchFileNeighbors","fetchCoverageFiles","coveragePoll","getCoverageReports","setHighlightedRow","removeParams","assignDiscussionsToDiff","_window4","EVT_DISCUSSIONS_ASSIGNED","removeDiscussionsFromDiff","removeDiscussion","toggleLineDiscussions","renderFileForDiscussionId","setDiffViewType","historyPushState","TRACKING_CLICK_DIFF_VIEW_SETTING","TRACKING_DIFF_VIEW_INLINE","TRACKING_DIFF_VIEW_PARALLEL","showCommentForm","overflowBottom","preventScroll","scrollBy","loadMoreLines","from_merge_request","scrollToLineIfNeededInline","scrollToLineIfNeededParallel","loadCollapsedDiff","_state$mergeRequestDi","versionPath","loadParams","toggleFileDiscussion","discussionWrappersExpanded","lineCodesWithDiscussions","saveDiffDiscussion","toggleTreeOpen","setTreeOpen","goToFile","scrollToFile","setShowTreeList","saving","MR_TREE_SHOW_KEY","toggleTreeList","setRenderTreeList","trackClick","TREE_LIST_STORAGE_KEY","TRACKING_CLICK_FILE_BROWSER_SETTING","TRACKING_FILE_BROWSER_TREE","TRACKING_FILE_BROWSER_LIST","setShowWhitespace","updateDatabase","show_whitespace_in_diffs","TRACKING_CLICK_WHITESPACE_SETTING","TRACKING_WHITESPACE_SHOW","TRACKING_WHITESPACE_HIDE","toggleFileFinder","receiveFullDiffError","setExpandedDiffLines","expandedDiffLines","TYPE_KEY","OLD_LINE_KEY","NEW_LINE_KEY","MAX_RENDERING_DIFF_LINES","START_RENDERING_INDEX","idleCb","startIndex","timeRemaining","MIN_RENDERING_MS","MAX_RENDERING_BULK_ROWS","fetchFullDiff","context_lines_path","full","switchToFullDiffFromRenamedFile","alternate_viewer","setFileCollapsedAutomatically","setSuggestPopoverDismissed","changeCurrentCommit","commitRE","moveToNeighboringCommit","_state$commit","_state$commit2","previousCommitId","prev_commit_id","nextCommitId","next_commit_id","canMove","rereadNoteHash","_window5","setCurrentDiffFileIdFromNote","_rootGetters$getDiscu","navigateToDiffFileIndex","setFileByFile","TRACKING_CLICK_SINGLE_FILE_SETTING","TRACKING_SINGLE_FILE_MODE","TRACKING_MULTIPLE_FILES_MODE","view_diffs_file_by_file","addDraftToFile","fetchLinkedFile","linkedFileUrl","fragmentFileHash","oldNumber","newNumber","fetchLinkedExpandedLine","matchLine","matchNewPosition","matchOldPosition","linesInBetween","isExpandBoth","previousLine","previousLineNumber","isLastMatchLine","loadLines","unlinkFile","toggleAllDiffDiscussions","expandAllFiles","collapseAllFiles","setActiveTab","_state$endpoints","isDiffsPage","setDrawer","activeDrawer","drawer","notesModule","namespaced","isDraftsFetched","findingsDrawer","canonical","imageViewMode","twoup","onion","DownloadViewer","oldPath","pixeliseValue","ImageViewer","onionMaxWidth","onionMaxHeight","onionOldImgInfo","onionNewImgInfo","onionDraggerPos","onionOpacity","onionMaxPixelWidth","onionMaxPixelHeight","onionDraggerPixelPos","stopDrag","dragTrack","dragger","leftValue","startDrag","prepareOnionSkin","onionNewImgLoaded","imgInfo","onionOldImgLoaded","swipeOldImgInfo","swipeNewImgInfo","swipeMaxWidth","swipeMaxHeight","swipeBarPos","swipeWrapWidth","swipeMaxPixelWidth","swipeMaxPixelHeight","swipeWrapPixelWidth","swipeBarPixelPos","resize","swipeFrame","prepareSwipe","swipeNewImgLoaded","swipeOldImgLoaded","newSize","oldSize","imageViewComponent","TwoUpViewer","SwipeViewer","OnionSkinViewer","isNew","isRenamed","changeMode","newMode","aMode","bMode","outputText","STATE_LOADING","STATE_ERRORED","uiText","showLink","loadError","STATE_IDLING","shortSha","canLoadFullDiff","switchToFull","transitionState","TRANSITION_LOAD_START","TRANSITION_LOAD_SUCCEED","TRANSITION_LOAD_ERROR","transitionEvent","currentState","RENAMED_DIFF_TRANSITIONS","clickLink","TRANSITION_ACKNOWLEDGE_ERROR","newSha","oldSha","RenamedFile","ModeChanged","ImageDiffViewer","DownloadDiffViewer","fullOldPath","fullNewPath","MERGED","classStateMap","EXTENSION_ICONS","neutral","notice","severityCritical","severityHigh","severityMedium","severityLow","severityInfo","severityUnknown","VIEW_MERGE_REQUEST_WIDGET","EXPAND_MERGE_REQUEST_WIDGET","CLICK_FULL_REPORT_ON_MERGE_REQUEST_WIDGET","NOT_OPEN","DISCUSSIONS_NOT_RESOLVED","DRAFT_STATUS","CI_MUST_PASS","issuableIterationQueries","projectIssueIterationQuery","projectIssueIterationMutation","iterationsQueries","issuableEpicQueries","projectIssueEpicQuery","projectIssueEpicMutation","epicsQueries","groupEpicsQuery","parentsQueries","workItemParentsQuery","issuableEscalationPolicyQueries","issueEscalationPolicyQuery","issueEscalationPolicyMutation","escalationPoliciesQueries","projectEscalationPoliciesQuery","parentQueries","workItemParent","updateWorkItemParent","issuableAttributesQueriesFoss","issuableEpicSubscription","workItemParentSubscription","ancestorsQueries","epicAncestorsQuery","weightQueries","issueWeightQuery","updateIssueWeightMutation","issuableWeightSubscription","updateStatusMutation","issueHealthStatusQuery","BTableLite","stickyHeaderClass","localTableClass","getAjaxUsersSelectParams","paramsMap","paramKey","optionKey","elsClassName","usersPath","todoFilter","todoStateFilter","showSuggested","showNullUser","defaultNullUser","showAnyUser","firstUser","issueURL","$assignToMeLink","$collapsedSidebar","selectedIdDefault","assigneeTemplate","collapsedAssigneeTemplate","selectedId","suggestedReviewersHelpPath","suggestedReviewersHeaderTemplate","assignYourself","unassignedSelected","currentUserInfo","inputHtmlString","getSelectedUserInputs","getSelected","checkMaxSelect","maxSelect","firstSelectedId","emitSidebarEvent","getMultiSelectDropdownTitle","selectedUser","selectedUsers","otherSelected","$input","assignee_id","openingTag","closingTag","processData","dataArg","anyUser","selectedInputs","beforeDivider","suggested","suggestedUsers","filterRemote","deprecatedJQueryDropdown","inputValue","filteredFullData","parseData","inputMeta","previouslySelected","addInput","highlightSelected","updateLabel","GitLabDropdownInstance","isEditMergeRequest","isNewMergeRequest","merge_request_iid","approval_rules","show_suggested","linkClasses","tooltipAttributes","dataUserSuggested","busyBadge","renderRowAvatar","renderApprovalRules","applicable_approval_rules","countText","renderApprovalRulesCount","ruleName","dumper","deprecated","FAILSAFE_SCHEMA","JSON_SCHEMA","CORE_SCHEMA","MINIMAL_SCHEMA","SAFE_SCHEMA","DEFAULT_SCHEMA","scan","compose","addConstructor","localWeight","previousWeight","weight","skipIssueWeightSubscription","_this$issuable$weight","hasWeight","weightLabel","noWeightLabel","collapsedWeightLabel","setWeight","shouldRemoveWeight","issuableSetWeight","_issuableSetWeight$er","_issuableSetWeight$is","_issuableSetWeight$is2","handleFormSubmit","removeWeight","inputPlaceholder","maxDisplayWeight","_n","getSymbol","getLineNumber","_lineRange$otherKey","otherLineType","startingLine","preferredSide","fallbackSide","linesCopy","startingLineCode","upToSelected","_takeRightWhile","extractProps","getCommentedLines","endLine","findLineCodeIndex","_position$left","_position$right","toggleSelection","checkedClasses"],"mappings":"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","file":"pages.projects.merge_requests.show.aa40c500.chunk.js","sourcesContent":["var constant = require('./constant'),\n createInverter = require('./_createInverter'),\n identity = require('./identity');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\nvar invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n}, constant(identity));\n\nmodule.exports = invert;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-flex gl-break-anywhere\"},[_c('span',{staticClass:\"dropdown-label-box gl-top-0 gl-mr-3 gl-shrink-0\",style:({ 'background-color': _vm.label.color }),attrs:{\"data-testid\":\"label-color-box\"}}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.label.title))])])\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!./label_item.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!./label_item.vue?vue&type=script&lang=js\"","<script>\nexport default {\n props: {\n label: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-flex gl-break-anywhere\">\n <span\n class=\"dropdown-label-box gl-top-0 gl-mr-3 gl-shrink-0\"\n :style=\"{ 'background-color': label.color }\"\n data-testid=\"label-color-box\"\n ></span>\n <span>{{ label.title }}</span>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./label_item.vue?vue&type=template&id=486db2f8\"\nimport script from \"./label_item.vue?vue&type=script&lang=js\"\nexport * from \"./label_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","import { getFormData } from '~/diffs/store/utils';\n\nexport const getDraftReplyFormData = (data) => ({\n endpoint: data.notesData.draftsPath,\n data,\n});\n\nexport const getDraftFormData = (params) => ({\n endpoint: params.notesData.draftsPath,\n data: getFormData(params),\n});\n\nexport const parallelLineKey = (line, side) => (line[side] ? line[side].line_code : '');\n\nexport const showDraftOnSide = (line, side) => {\n // inline mode\n if (side === null) {\n return true;\n }\n\n // parallel\n if (side === 'left' || side === 'right') {\n const otherSide = side === 'left' ? 'right' : 'left';\n const thisCode = (line[side] && line[side].line_code) || '';\n const otherCode = (line[otherSide] && line[otherSide].line_code) || '';\n\n // either the lineCodes are different\n // or if they're the same, only show on the left side\n if (thisCode !== otherCode || (side === 'left' && thisCode === otherCode)) {\n return true;\n }\n }\n\n return false;\n};\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMin = Math.min;\n\n/**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\nfunction baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseIntersection;\n","/*!\n * Pikaday\n *\n * Copyright © 2014 David Bushell | BSD & MIT license | https://github.com/Pikaday/Pikaday\n */\n\n(function (root, factory)\n{\n 'use strict';\n\n var moment;\n if (typeof exports === 'object') {\n // CommonJS module\n // Load moment.js as an optional dependency\n try { moment = require('moment'); } catch (e) {}\n module.exports = factory(moment);\n } else if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define(function (req)\n {\n // Load moment.js as an optional dependency\n var id = 'moment';\n try { moment = req(id); } catch (e) {}\n return factory(moment);\n });\n } else {\n root.Pikaday = factory(root.moment);\n }\n}(this, function (moment)\n{\n 'use strict';\n\n /**\n * feature detection and helper functions\n */\n var hasMoment = typeof moment === 'function',\n\n hasEventListeners = !!window.addEventListener,\n\n document = window.document,\n\n sto = window.setTimeout,\n\n addEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.addEventListener(e, callback, !!capture);\n } else {\n el.attachEvent('on' + e, callback);\n }\n },\n\n removeEvent = function(el, e, callback, capture)\n {\n if (hasEventListeners) {\n el.removeEventListener(e, callback, !!capture);\n } else {\n el.detachEvent('on' + e, callback);\n }\n },\n\n trim = function(str)\n {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g,'');\n },\n\n hasClass = function(el, cn)\n {\n return (' ' + el.className + ' ').indexOf(' ' + cn + ' ') !== -1;\n },\n\n addClass = function(el, cn)\n {\n if (!hasClass(el, cn)) {\n el.className = (el.className === '') ? cn : el.className + ' ' + cn;\n }\n },\n\n removeClass = function(el, cn)\n {\n el.className = trim((' ' + el.className + ' ').replace(' ' + cn + ' ', ' '));\n },\n\n isArray = function(obj)\n {\n return (/Array/).test(Object.prototype.toString.call(obj));\n },\n\n isDate = function(obj)\n {\n return (/Date/).test(Object.prototype.toString.call(obj)) && !isNaN(obj.getTime());\n },\n\n isWeekend = function(date)\n {\n var day = date.getDay();\n return day === 0 || day === 6;\n },\n\n isLeapYear = function(year)\n {\n // solution by Matti Virkkunen: http://stackoverflow.com/a/4881951\n return year % 4 === 0 && year % 100 !== 0 || year % 400 === 0;\n },\n\n getDaysInMonth = function(year, month)\n {\n return [31, isLeapYear(year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];\n },\n\n setToStartOfDay = function(date)\n {\n if (isDate(date)) date.setHours(0,0,0,0);\n },\n\n compareDates = function(a,b)\n {\n // weak date comparison (use setToStartOfDay(date) to ensure correct result)\n return a.getTime() === b.getTime();\n },\n\n extend = function(to, from, overwrite)\n {\n var prop, hasProp;\n for (prop in from) {\n hasProp = to[prop] !== undefined;\n if (hasProp && typeof from[prop] === 'object' && from[prop] !== null && from[prop].nodeName === undefined) {\n if (isDate(from[prop])) {\n if (overwrite) {\n to[prop] = new Date(from[prop].getTime());\n }\n }\n else if (isArray(from[prop])) {\n if (overwrite) {\n to[prop] = from[prop].slice(0);\n }\n } else {\n to[prop] = extend({}, from[prop], overwrite);\n }\n } else if (overwrite || !hasProp) {\n to[prop] = from[prop];\n }\n }\n return to;\n },\n\n fireEvent = function(el, eventName, data)\n {\n var ev;\n\n if (document.createEvent) {\n ev = document.createEvent('HTMLEvents');\n ev.initEvent(eventName, true, false);\n ev = extend(ev, data);\n el.dispatchEvent(ev);\n } else if (document.createEventObject) {\n ev = document.createEventObject();\n ev = extend(ev, data);\n el.fireEvent('on' + eventName, ev);\n }\n },\n\n adjustCalendar = function(calendar) {\n if (calendar.month < 0) {\n calendar.year -= Math.ceil(Math.abs(calendar.month)/12);\n calendar.month += 12;\n }\n if (calendar.month > 11) {\n calendar.year += Math.floor(Math.abs(calendar.month)/12);\n calendar.month -= 12;\n }\n return calendar;\n },\n\n /**\n * defaults and localisation\n */\n defaults = {\n\n // bind the picker to a form field\n field: null,\n\n // automatically show/hide the picker on `field` focus (default `true` if `field` is set)\n bound: undefined,\n\n // data-attribute on the input field with an aria assistance tekst (only applied when `bound` is set)\n ariaLabel: 'Use the arrow keys to pick a date',\n\n // position of the datepicker, relative to the field (default to bottom & left)\n // ('bottom' & 'left' keywords are not used, 'top' & 'right' are modifier on the bottom/left position)\n position: 'bottom left',\n\n // automatically fit in the viewport even if it means repositioning from the position option\n reposition: true,\n\n // the default output format for `.toString()` and `field` value\n format: 'YYYY-MM-DD',\n\n // the toString function which gets passed a current date object and format\n // and returns a string\n toString: null,\n\n // used to create date object from current input string\n parse: null,\n\n // the initial date to view when first opened\n defaultDate: null,\n\n // make the `defaultDate` the initial selected value\n setDefaultDate: false,\n\n // first day of week (0: Sunday, 1: Monday etc)\n firstDay: 0,\n\n // the default flag for moment's strict date parsing\n formatStrict: false,\n\n // the minimum/earliest date that can be selected\n minDate: null,\n // the maximum/latest date that can be selected\n maxDate: null,\n\n // number of years either side, or array of upper/lower range\n yearRange: 10,\n\n // show week numbers at head of row\n showWeekNumber: false,\n\n // Week picker mode\n pickWholeWeek: false,\n\n // used internally (don't config outside)\n minYear: 0,\n maxYear: 9999,\n minMonth: undefined,\n maxMonth: undefined,\n\n startRange: null,\n endRange: null,\n\n isRTL: false,\n\n // Additional text to append to the year in the calendar title\n yearSuffix: '',\n\n // Render the month after year in the calendar title\n showMonthAfterYear: false,\n\n // Render days of the calendar grid that fall in the next or previous month\n showDaysInNextAndPreviousMonths: false,\n\n // Allows user to select days that fall in the next or previous month\n enableSelectionDaysInNextAndPreviousMonths: false,\n\n // how many months are visible\n numberOfMonths: 1,\n\n // when numberOfMonths is used, this will help you to choose where the main calendar will be (default `left`, can be set to `right`)\n // only used for the first display or when a selected date is not visible\n mainCalendar: 'left',\n\n // Specify a DOM element to render the calendar in\n container: undefined,\n\n // Blur field when date is selected\n blurFieldOnSelect : true,\n\n // internationalization\n i18n: {\n previousMonth : 'Previous Month',\n nextMonth : 'Next Month',\n months : ['January','February','March','April','May','June','July','August','September','October','November','December'],\n weekdays : ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday'],\n weekdaysShort : ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']\n },\n\n // Theme Classname\n theme: null,\n\n // events array\n events: [],\n\n // callback function\n onSelect: null,\n onOpen: null,\n onClose: null,\n onDraw: null,\n\n // Enable keyboard input\n keyboardInput: true\n },\n\n\n /**\n * templating functions to abstract HTML rendering\n */\n renderDayName = function(opts, day, abbr)\n {\n day += opts.firstDay;\n while (day >= 7) {\n day -= 7;\n }\n return abbr ? opts.i18n.weekdaysShort[day] : opts.i18n.weekdays[day];\n },\n\n renderDay = function(opts)\n {\n var arr = [];\n var ariaSelected = 'false';\n if (opts.isEmpty) {\n if (opts.showDaysInNextAndPreviousMonths) {\n arr.push('is-outside-current-month');\n\n if(!opts.enableSelectionDaysInNextAndPreviousMonths) {\n arr.push('is-selection-disabled');\n }\n\n } else {\n return '<td class=\"is-empty\"></td>';\n }\n }\n if (opts.isDisabled) {\n arr.push('is-disabled');\n }\n if (opts.isToday) {\n arr.push('is-today');\n }\n if (opts.isSelected) {\n arr.push('is-selected');\n ariaSelected = 'true';\n }\n if (opts.hasEvent) {\n arr.push('has-event');\n }\n if (opts.isInRange) {\n arr.push('is-inrange');\n }\n if (opts.isStartRange) {\n arr.push('is-startrange');\n }\n if (opts.isEndRange) {\n arr.push('is-endrange');\n }\n return '<td data-day=\"' + opts.day + '\" class=\"' + arr.join(' ') + '\" aria-selected=\"' + ariaSelected + '\">' +\n '<button class=\"pika-button pika-day\" type=\"button\" ' +\n 'data-pika-year=\"' + opts.year + '\" data-pika-month=\"' + opts.month + '\" data-pika-day=\"' + opts.day + '\">' +\n opts.day +\n '</button>' +\n '</td>';\n },\n\n renderWeek = function (d, m, y) {\n // Lifted from http://javascript.about.com/library/blweekyear.htm, lightly modified.\n var onejan = new Date(y, 0, 1),\n weekNum = Math.ceil((((new Date(y, m, d) - onejan) / 86400000) + onejan.getDay()+1)/7);\n return '<td class=\"pika-week\">' + weekNum + '</td>';\n },\n\n renderRow = function(days, isRTL, pickWholeWeek, isRowSelected)\n {\n return '<tr class=\"pika-row' + (pickWholeWeek ? ' pick-whole-week' : '') + (isRowSelected ? ' is-selected' : '') + '\">' + (isRTL ? days.reverse() : days).join('') + '</tr>';\n },\n\n renderBody = function(rows)\n {\n return '<tbody>' + rows.join('') + '</tbody>';\n },\n\n renderHead = function(opts)\n {\n var i, arr = [];\n if (opts.showWeekNumber) {\n arr.push('<th></th>');\n }\n for (i = 0; i < 7; i++) {\n arr.push('<th scope=\"col\"><abbr title=\"' + renderDayName(opts, i) + '\">' + renderDayName(opts, i, true) + '</abbr></th>');\n }\n return '<thead><tr>' + (opts.isRTL ? arr.reverse() : arr).join('') + '</tr></thead>';\n },\n\n renderTitle = function(instance, c, year, month, refYear, randId)\n {\n var i, j, arr,\n opts = instance._o,\n isMinYear = year === opts.minYear,\n isMaxYear = year === opts.maxYear,\n html = '<div id=\"' + randId + '\" class=\"pika-title\" role=\"heading\" aria-live=\"assertive\">',\n monthHtml,\n yearHtml,\n prev = true,\n next = true;\n\n for (arr = [], i = 0; i < 12; i++) {\n arr.push('<option value=\"' + (year === refYear ? i - c : 12 + i - c) + '\"' +\n (i === month ? ' selected=\"selected\"': '') +\n ((isMinYear && i < opts.minMonth) || (isMaxYear && i > opts.maxMonth) ? 'disabled=\"disabled\"' : '') + '>' +\n opts.i18n.months[i] + '</option>');\n }\n\n monthHtml = '<div class=\"pika-label\">' + opts.i18n.months[month] + '<select class=\"pika-select pika-select-month\" tabindex=\"-1\">' + arr.join('') + '</select></div>';\n\n if (isArray(opts.yearRange)) {\n i = opts.yearRange[0];\n j = opts.yearRange[1] + 1;\n } else {\n i = year - opts.yearRange;\n j = 1 + year + opts.yearRange;\n }\n\n for (arr = []; i < j && i <= opts.maxYear; i++) {\n if (i >= opts.minYear) {\n arr.push('<option value=\"' + i + '\"' + (i === year ? ' selected=\"selected\"': '') + '>' + (i) + '</option>');\n }\n }\n yearHtml = '<div class=\"pika-label\">' + year + opts.yearSuffix + '<select class=\"pika-select pika-select-year\" tabindex=\"-1\">' + arr.join('') + '</select></div>';\n\n if (opts.showMonthAfterYear) {\n html += yearHtml + monthHtml;\n } else {\n html += monthHtml + yearHtml;\n }\n\n if (isMinYear && (month === 0 || opts.minMonth >= month)) {\n prev = false;\n }\n\n if (isMaxYear && (month === 11 || opts.maxMonth <= month)) {\n next = false;\n }\n\n if (c === 0) {\n html += '<button class=\"pika-prev' + (prev ? '' : ' is-disabled') + '\" type=\"button\">' + opts.i18n.previousMonth + '</button>';\n }\n if (c === (instance._o.numberOfMonths - 1) ) {\n html += '<button class=\"pika-next' + (next ? '' : ' is-disabled') + '\" type=\"button\">' + opts.i18n.nextMonth + '</button>';\n }\n\n return html += '</div>';\n },\n\n renderTable = function(opts, data, randId)\n {\n return '<table cellpadding=\"0\" cellspacing=\"0\" class=\"pika-table\" role=\"grid\" aria-labelledby=\"' + randId + '\">' + renderHead(opts) + renderBody(data) + '</table>';\n },\n\n\n /**\n * Pikaday constructor\n */\n Pikaday = function(options)\n {\n var self = this,\n opts = self.config(options);\n\n self._onMouseDown = function(e)\n {\n if (!self._v) {\n return;\n }\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n\n if (!hasClass(target, 'is-disabled')) {\n if (hasClass(target, 'pika-button') && !hasClass(target, 'is-empty') && !hasClass(target.parentNode, 'is-disabled')) {\n self.setDate(new Date(target.getAttribute('data-pika-year'), target.getAttribute('data-pika-month'), target.getAttribute('data-pika-day')));\n if (opts.bound) {\n sto(function() {\n self.hide();\n if (opts.blurFieldOnSelect && opts.field) {\n opts.field.blur();\n }\n }, 100);\n }\n }\n else if (hasClass(target, 'pika-prev')) {\n self.prevMonth();\n }\n else if (hasClass(target, 'pika-next')) {\n self.nextMonth();\n }\n }\n if (!hasClass(target, 'pika-select')) {\n // if this is touch event prevent mouse events emulation\n if (e.preventDefault) {\n e.preventDefault();\n } else {\n e.returnValue = false;\n return false;\n }\n } else {\n self._c = true;\n }\n };\n\n self._onChange = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement;\n if (!target) {\n return;\n }\n if (hasClass(target, 'pika-select-month')) {\n self.gotoMonth(target.value);\n }\n else if (hasClass(target, 'pika-select-year')) {\n self.gotoYear(target.value);\n }\n };\n\n self._onKeyChange = function(e)\n {\n e = e || window.event;\n\n if (self.isVisible()) {\n\n switch(e.keyCode){\n case 13:\n case 27:\n if (opts.field) {\n opts.field.blur();\n }\n break;\n case 37:\n e.preventDefault();\n self.adjustDate('subtract', 1);\n break;\n case 38:\n self.adjustDate('subtract', 7);\n break;\n case 39:\n self.adjustDate('add', 1);\n break;\n case 40:\n self.adjustDate('add', 7);\n break;\n }\n }\n };\n\n self._onInputChange = function(e)\n {\n var date;\n\n if (e.firedBy === self) {\n return;\n }\n if (opts.parse) {\n date = opts.parse(opts.field.value, opts.format);\n } else if (hasMoment) {\n date = moment(opts.field.value, opts.format, opts.formatStrict);\n date = (date && date.isValid()) ? date.toDate() : null;\n }\n else {\n date = new Date(Date.parse(opts.field.value));\n }\n if (isDate(date)) {\n self.setDate(date);\n }\n if (!self._v) {\n self.show();\n }\n };\n\n self._onInputFocus = function()\n {\n self.show();\n };\n\n self._onInputClick = function()\n {\n self.show();\n };\n\n self._onInputBlur = function()\n {\n // IE allows pika div to gain focus; catch blur the input field\n var pEl = document.activeElement;\n do {\n if (hasClass(pEl, 'pika-single')) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n\n if (!self._c) {\n self._b = sto(function() {\n self.hide();\n }, 50);\n }\n self._c = false;\n };\n\n self._onClick = function(e)\n {\n e = e || window.event;\n var target = e.target || e.srcElement,\n pEl = target;\n if (!target) {\n return;\n }\n if (!hasEventListeners && hasClass(target, 'pika-select')) {\n if (!target.onchange) {\n target.setAttribute('onchange', 'return;');\n addEvent(target, 'change', self._onChange);\n }\n }\n do {\n if (hasClass(pEl, 'pika-single') || pEl === opts.trigger) {\n return;\n }\n }\n while ((pEl = pEl.parentNode));\n if (self._v && target !== opts.trigger && pEl !== opts.trigger) {\n self.hide();\n }\n };\n\n self.el = document.createElement('div');\n self.el.className = 'pika-single' + (opts.isRTL ? ' is-rtl' : '') + (opts.theme ? ' ' + opts.theme : '');\n\n addEvent(self.el, 'mousedown', self._onMouseDown, true);\n addEvent(self.el, 'touchend', self._onMouseDown, true);\n addEvent(self.el, 'change', self._onChange);\n\n if (opts.keyboardInput) {\n addEvent(document, 'keydown', self._onKeyChange);\n }\n\n if (opts.field) {\n if (opts.container) {\n opts.container.appendChild(self.el);\n } else if (opts.bound) {\n document.body.appendChild(self.el);\n } else {\n opts.field.parentNode.insertBefore(self.el, opts.field.nextSibling);\n }\n addEvent(opts.field, 'change', self._onInputChange);\n\n if (!opts.defaultDate) {\n if (hasMoment && opts.field.value) {\n opts.defaultDate = moment(opts.field.value, opts.format).toDate();\n } else {\n opts.defaultDate = new Date(Date.parse(opts.field.value));\n }\n opts.setDefaultDate = true;\n }\n }\n\n var defDate = opts.defaultDate;\n\n if (isDate(defDate)) {\n if (opts.setDefaultDate) {\n self.setDate(defDate, true);\n } else {\n self.gotoDate(defDate);\n }\n } else {\n self.gotoDate(new Date());\n }\n\n if (opts.bound) {\n this.hide();\n self.el.className += ' is-bound';\n addEvent(opts.trigger, 'click', self._onInputClick);\n addEvent(opts.trigger, 'focus', self._onInputFocus);\n addEvent(opts.trigger, 'blur', self._onInputBlur);\n } else {\n this.show();\n }\n };\n\n\n /**\n * public Pikaday API\n */\n Pikaday.prototype = {\n\n\n /**\n * configure functionality\n */\n config: function(options)\n {\n if (!this._o) {\n this._o = extend({}, defaults, true);\n }\n\n var opts = extend(this._o, options, true);\n\n opts.isRTL = !!opts.isRTL;\n\n opts.field = (opts.field && opts.field.nodeName) ? opts.field : null;\n\n opts.theme = (typeof opts.theme) === 'string' && opts.theme ? opts.theme : null;\n\n opts.bound = !!(opts.bound !== undefined ? opts.field && opts.bound : opts.field);\n\n opts.trigger = (opts.trigger && opts.trigger.nodeName) ? opts.trigger : opts.field;\n\n opts.disableWeekends = !!opts.disableWeekends;\n\n opts.disableDayFn = (typeof opts.disableDayFn) === 'function' ? opts.disableDayFn : null;\n\n var nom = parseInt(opts.numberOfMonths, 10) || 1;\n opts.numberOfMonths = nom > 4 ? 4 : nom;\n\n if (!isDate(opts.minDate)) {\n opts.minDate = false;\n }\n if (!isDate(opts.maxDate)) {\n opts.maxDate = false;\n }\n if ((opts.minDate && opts.maxDate) && opts.maxDate < opts.minDate) {\n opts.maxDate = opts.minDate = false;\n }\n if (opts.minDate) {\n this.setMinDate(opts.minDate);\n }\n if (opts.maxDate) {\n this.setMaxDate(opts.maxDate);\n }\n\n if (isArray(opts.yearRange)) {\n var fallback = new Date().getFullYear() - 10;\n opts.yearRange[0] = parseInt(opts.yearRange[0], 10) || fallback;\n opts.yearRange[1] = parseInt(opts.yearRange[1], 10) || fallback;\n } else {\n opts.yearRange = Math.abs(parseInt(opts.yearRange, 10)) || defaults.yearRange;\n if (opts.yearRange > 100) {\n opts.yearRange = 100;\n }\n }\n\n return opts;\n },\n\n /**\n * return a formatted string of the current selection (using Moment.js if available)\n */\n toString: function(format)\n {\n format = format || this._o.format;\n if (!isDate(this._d)) {\n return '';\n }\n if (this._o.toString) {\n return this._o.toString(this._d, format);\n }\n if (hasMoment) {\n return moment(this._d).format(format);\n }\n return this._d.toDateString();\n },\n\n /**\n * return a Moment.js object of the current selection (if available)\n */\n getMoment: function()\n {\n return hasMoment ? moment(this._d) : null;\n },\n\n /**\n * set the current selection from a Moment.js object (if available)\n */\n setMoment: function(date, preventOnSelect)\n {\n if (hasMoment && moment.isMoment(date)) {\n this.setDate(date.toDate(), preventOnSelect);\n }\n },\n\n /**\n * return a Date object of the current selection\n */\n getDate: function()\n {\n return isDate(this._d) ? new Date(this._d.getTime()) : null;\n },\n\n /**\n * set the current selection\n */\n setDate: function(date, preventOnSelect)\n {\n if (!date) {\n this._d = null;\n\n if (this._o.field) {\n this._o.field.value = '';\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n\n return this.draw();\n }\n if (typeof date === 'string') {\n date = new Date(Date.parse(date));\n }\n if (!isDate(date)) {\n return;\n }\n\n var min = this._o.minDate,\n max = this._o.maxDate;\n\n if (isDate(min) && date < min) {\n date = min;\n } else if (isDate(max) && date > max) {\n date = max;\n }\n\n this._d = new Date(date.getTime());\n setToStartOfDay(this._d);\n this.gotoDate(this._d);\n\n if (this._o.field) {\n this._o.field.value = this.toString();\n fireEvent(this._o.field, 'change', { firedBy: this });\n }\n if (!preventOnSelect && typeof this._o.onSelect === 'function') {\n this._o.onSelect.call(this, this.getDate());\n }\n },\n\n /**\n * change view to a specific date\n */\n gotoDate: function(date)\n {\n var newCalendar = true;\n\n if (!isDate(date)) {\n return;\n }\n\n if (this.calendars) {\n var firstVisibleDate = new Date(this.calendars[0].year, this.calendars[0].month, 1),\n lastVisibleDate = new Date(this.calendars[this.calendars.length-1].year, this.calendars[this.calendars.length-1].month, 1),\n visibleDate = date.getTime();\n // get the end of the month\n lastVisibleDate.setMonth(lastVisibleDate.getMonth()+1);\n lastVisibleDate.setDate(lastVisibleDate.getDate()-1);\n newCalendar = (visibleDate < firstVisibleDate.getTime() || lastVisibleDate.getTime() < visibleDate);\n }\n\n if (newCalendar) {\n this.calendars = [{\n month: date.getMonth(),\n year: date.getFullYear()\n }];\n if (this._o.mainCalendar === 'right') {\n this.calendars[0].month += 1 - this._o.numberOfMonths;\n }\n }\n\n this.adjustCalendars();\n },\n\n adjustDate: function(sign, days) {\n\n var day = this.getDate() || new Date();\n var difference = parseInt(days)*24*60*60*1000;\n\n var newDay;\n\n if (sign === 'add') {\n newDay = new Date(day.valueOf() + difference);\n } else if (sign === 'subtract') {\n newDay = new Date(day.valueOf() - difference);\n }\n\n this.setDate(newDay);\n },\n\n adjustCalendars: function() {\n this.calendars[0] = adjustCalendar(this.calendars[0]);\n for (var c = 1; c < this._o.numberOfMonths; c++) {\n this.calendars[c] = adjustCalendar({\n month: this.calendars[0].month + c,\n year: this.calendars[0].year\n });\n }\n this.draw();\n },\n\n gotoToday: function()\n {\n this.gotoDate(new Date());\n },\n\n /**\n * change view to a specific month (zero-index, e.g. 0: January)\n */\n gotoMonth: function(month)\n {\n if (!isNaN(month)) {\n this.calendars[0].month = parseInt(month, 10);\n this.adjustCalendars();\n }\n },\n\n nextMonth: function()\n {\n this.calendars[0].month++;\n this.adjustCalendars();\n },\n\n prevMonth: function()\n {\n this.calendars[0].month--;\n this.adjustCalendars();\n },\n\n /**\n * change view to a specific full year (e.g. \"2012\")\n */\n gotoYear: function(year)\n {\n if (!isNaN(year)) {\n this.calendars[0].year = parseInt(year, 10);\n this.adjustCalendars();\n }\n },\n\n /**\n * change the minDate\n */\n setMinDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.minDate = value;\n this._o.minYear = value.getFullYear();\n this._o.minMonth = value.getMonth();\n } else {\n this._o.minDate = defaults.minDate;\n this._o.minYear = defaults.minYear;\n this._o.minMonth = defaults.minMonth;\n this._o.startRange = defaults.startRange;\n }\n\n this.draw();\n },\n\n /**\n * change the maxDate\n */\n setMaxDate: function(value)\n {\n if(value instanceof Date) {\n setToStartOfDay(value);\n this._o.maxDate = value;\n this._o.maxYear = value.getFullYear();\n this._o.maxMonth = value.getMonth();\n } else {\n this._o.maxDate = defaults.maxDate;\n this._o.maxYear = defaults.maxYear;\n this._o.maxMonth = defaults.maxMonth;\n this._o.endRange = defaults.endRange;\n }\n\n this.draw();\n },\n\n setStartRange: function(value)\n {\n this._o.startRange = value;\n },\n\n setEndRange: function(value)\n {\n this._o.endRange = value;\n },\n\n /**\n * refresh the HTML\n */\n draw: function(force)\n {\n if (!this._v && !force) {\n return;\n }\n var opts = this._o,\n minYear = opts.minYear,\n maxYear = opts.maxYear,\n minMonth = opts.minMonth,\n maxMonth = opts.maxMonth,\n html = '',\n randId;\n\n if (this._y <= minYear) {\n this._y = minYear;\n if (!isNaN(minMonth) && this._m < minMonth) {\n this._m = minMonth;\n }\n }\n if (this._y >= maxYear) {\n this._y = maxYear;\n if (!isNaN(maxMonth) && this._m > maxMonth) {\n this._m = maxMonth;\n }\n }\n\n randId = 'pika-title-' + Math.random().toString(36).replace(/[^a-z]+/g, '').substr(0, 2);\n\n for (var c = 0; c < opts.numberOfMonths; c++) {\n html += '<div class=\"pika-lendar\">' + renderTitle(this, c, this.calendars[c].year, this.calendars[c].month, this.calendars[0].year, randId) + this.render(this.calendars[c].year, this.calendars[c].month, randId) + '</div>';\n }\n\n this.el.innerHTML = html;\n\n if (opts.bound) {\n if(opts.field.type !== 'hidden') {\n sto(function() {\n opts.trigger.focus();\n }, 1);\n }\n }\n\n if (typeof this._o.onDraw === 'function') {\n this._o.onDraw(this);\n }\n\n if (opts.bound) {\n // let the screen reader user know to use arrow keys\n opts.field.setAttribute('aria-label', opts.ariaLabel);\n }\n },\n\n adjustPosition: function()\n {\n var field, pEl, width, height, viewportWidth, viewportHeight, scrollTop, left, top, clientRect, leftAligned, bottomAligned;\n\n if (this._o.container) return;\n\n this.el.style.position = 'absolute';\n\n field = this._o.trigger;\n pEl = field;\n width = this.el.offsetWidth;\n height = this.el.offsetHeight;\n viewportWidth = window.innerWidth || document.documentElement.clientWidth;\n viewportHeight = window.innerHeight || document.documentElement.clientHeight;\n scrollTop = window.pageYOffset || document.body.scrollTop || document.documentElement.scrollTop;\n leftAligned = true;\n bottomAligned = true;\n\n if (typeof field.getBoundingClientRect === 'function') {\n clientRect = field.getBoundingClientRect();\n left = clientRect.left + window.pageXOffset;\n top = clientRect.bottom + window.pageYOffset;\n } else {\n left = pEl.offsetLeft;\n top = pEl.offsetTop + pEl.offsetHeight;\n while((pEl = pEl.offsetParent)) {\n left += pEl.offsetLeft;\n top += pEl.offsetTop;\n }\n }\n\n // default position is bottom & left\n if ((this._o.reposition && left + width > viewportWidth) ||\n (\n this._o.position.indexOf('right') > -1 &&\n left - width + field.offsetWidth > 0\n )\n ) {\n left = left - width + field.offsetWidth;\n leftAligned = false;\n }\n if ((this._o.reposition && top + height > viewportHeight + scrollTop) ||\n (\n this._o.position.indexOf('top') > -1 &&\n top - height - field.offsetHeight > 0\n )\n ) {\n top = top - height - field.offsetHeight;\n bottomAligned = false;\n }\n\n this.el.style.left = left + 'px';\n this.el.style.top = top + 'px';\n\n addClass(this.el, leftAligned ? 'left-aligned' : 'right-aligned');\n addClass(this.el, bottomAligned ? 'bottom-aligned' : 'top-aligned');\n removeClass(this.el, !leftAligned ? 'left-aligned' : 'right-aligned');\n removeClass(this.el, !bottomAligned ? 'bottom-aligned' : 'top-aligned');\n },\n\n /**\n * render HTML for a particular month\n */\n render: function(year, month, randId)\n {\n var opts = this._o,\n now = new Date(),\n days = getDaysInMonth(year, month),\n before = new Date(year, month, 1).getDay(),\n data = [],\n row = [];\n setToStartOfDay(now);\n if (opts.firstDay > 0) {\n before -= opts.firstDay;\n if (before < 0) {\n before += 7;\n }\n }\n var previousMonth = month === 0 ? 11 : month - 1,\n nextMonth = month === 11 ? 0 : month + 1,\n yearOfPreviousMonth = month === 0 ? year - 1 : year,\n yearOfNextMonth = month === 11 ? year + 1 : year,\n daysInPreviousMonth = getDaysInMonth(yearOfPreviousMonth, previousMonth);\n var cells = days + before,\n after = cells;\n while(after > 7) {\n after -= 7;\n }\n cells += 7 - after;\n var isWeekSelected = false;\n for (var i = 0, r = 0; i < cells; i++)\n {\n var day = new Date(year, month, 1 + (i - before)),\n isSelected = isDate(this._d) ? compareDates(day, this._d) : false,\n isToday = compareDates(day, now),\n hasEvent = opts.events.indexOf(day.toDateString()) !== -1 ? true : false,\n isEmpty = i < before || i >= (days + before),\n dayNumber = 1 + (i - before),\n monthNumber = month,\n yearNumber = year,\n isStartRange = opts.startRange && compareDates(opts.startRange, day),\n isEndRange = opts.endRange && compareDates(opts.endRange, day),\n isInRange = opts.startRange && opts.endRange && opts.startRange < day && day < opts.endRange,\n isDisabled = (opts.minDate && day < opts.minDate) ||\n (opts.maxDate && day > opts.maxDate) ||\n (opts.disableWeekends && isWeekend(day)) ||\n (opts.disableDayFn && opts.disableDayFn(day));\n\n if (isEmpty) {\n if (i < before) {\n dayNumber = daysInPreviousMonth + dayNumber;\n monthNumber = previousMonth;\n yearNumber = yearOfPreviousMonth;\n } else {\n dayNumber = dayNumber - days;\n monthNumber = nextMonth;\n yearNumber = yearOfNextMonth;\n }\n }\n\n var dayConfig = {\n day: dayNumber,\n month: monthNumber,\n year: yearNumber,\n hasEvent: hasEvent,\n isSelected: isSelected,\n isToday: isToday,\n isDisabled: isDisabled,\n isEmpty: isEmpty,\n isStartRange: isStartRange,\n isEndRange: isEndRange,\n isInRange: isInRange,\n showDaysInNextAndPreviousMonths: opts.showDaysInNextAndPreviousMonths,\n enableSelectionDaysInNextAndPreviousMonths: opts.enableSelectionDaysInNextAndPreviousMonths\n };\n\n if (opts.pickWholeWeek && isSelected) {\n isWeekSelected = true;\n }\n\n row.push(renderDay(dayConfig));\n\n if (++r === 7) {\n if (opts.showWeekNumber) {\n row.unshift(renderWeek(i - before, month, year));\n }\n data.push(renderRow(row, opts.isRTL, opts.pickWholeWeek, isWeekSelected));\n row = [];\n r = 0;\n isWeekSelected = false;\n }\n }\n return renderTable(opts, data, randId);\n },\n\n isVisible: function()\n {\n return this._v;\n },\n\n show: function()\n {\n if (!this.isVisible()) {\n this._v = true;\n this.draw();\n removeClass(this.el, 'is-hidden');\n if (this._o.bound) {\n addEvent(document, 'click', this._onClick);\n this.adjustPosition();\n }\n if (typeof this._o.onOpen === 'function') {\n this._o.onOpen.call(this);\n }\n }\n },\n\n hide: function()\n {\n var v = this._v;\n if (v !== false) {\n if (this._o.bound) {\n removeEvent(document, 'click', this._onClick);\n }\n this.el.style.position = 'static'; // reset\n this.el.style.left = 'auto';\n this.el.style.top = 'auto';\n addClass(this.el, 'is-hidden');\n this._v = false;\n if (v !== undefined && typeof this._o.onClose === 'function') {\n this._o.onClose.call(this);\n }\n }\n },\n\n /**\n * GAME OVER\n */\n destroy: function()\n {\n var opts = this._o;\n\n this.hide();\n removeEvent(this.el, 'mousedown', this._onMouseDown, true);\n removeEvent(this.el, 'touchend', this._onMouseDown, true);\n removeEvent(this.el, 'change', this._onChange);\n if (opts.keyboardInput) {\n removeEvent(document, 'keydown', this._onKeyChange);\n }\n if (opts.field) {\n removeEvent(opts.field, 'change', this._onInputChange);\n if (opts.bound) {\n removeEvent(opts.trigger, 'click', this._onInputClick);\n removeEvent(opts.trigger, 'focus', this._onInputFocus);\n removeEvent(opts.trigger, 'blur', this._onInputBlur);\n }\n }\n if (this.el.parentNode) {\n this.el.parentNode.removeChild(this.el);\n }\n }\n\n };\n\n return Pikaday;\n}));\n","import ScrollParent from 'scrollparent';\nimport { contentTop } from './common_utils';\n\nconst interactionEvents = ['mousedown', 'touchstart', 'keydown', 'wheel'];\n\nexport function createResizeObserver() {\n return new ResizeObserver((entries) => {\n entries.forEach((entry) => {\n entry.target.dispatchEvent(new CustomEvent(`ResizeUpdate`, { detail: { entry } }));\n });\n });\n}\n\n/**\n * Watches for change in size of a container element (e.g. for lazy-loaded images)\n * and scrolls the target note to the top of the content area.\n * Stops watching after any user input. So if user opens sidebar or manually\n * scrolls the page we don't hijack their scroll position\n *\n * @param {Object} options\n * @param {string} options.targetId - id of element to scroll to\n * @param {string} options.container - Selector of element containing target\n * @param {Element} options.component - Element containing target\n *\n * @return {ResizeObserver|null} - ResizeObserver instance if target looks like a note DOM ID\n */\nexport function scrollToTargetOnResize({\n targetId = window.location.hash.slice(1),\n container = '#content-body',\n} = {}) {\n if (!targetId) return null;\n\n const scrollContainer =\n ScrollParent(document.getElementById(targetId)) || document.documentElement;\n const scrollContainerIsDocument = scrollContainer === document.documentElement;\n\n const ro = createResizeObserver();\n // if we are scrolling document, add the resizeobserver to container el instead - we don't\n // want to observe the whole document\n const containerEl = scrollContainerIsDocument\n ? document.querySelector(container)\n : scrollContainer;\n let interactionListenersAdded = false;\n\n function keepTargetAtTop() {\n const anchorEl = document.getElementById(targetId);\n\n if (!anchorEl) return;\n\n const anchorTop = anchorEl.getBoundingClientRect().top + window.scrollY;\n const top = anchorTop - contentTop();\n scrollContainer.scrollTo({\n top,\n });\n\n if (!interactionListenersAdded) {\n interactionEvents.forEach((event) =>\n // eslint-disable-next-line no-use-before-define\n document.addEventListener(event, removeListeners),\n );\n interactionListenersAdded = true;\n }\n }\n\n function removeListeners() {\n interactionEvents.forEach((event) => document.removeEventListener(event, removeListeners));\n\n ro.unobserve(containerEl);\n containerEl.removeEventListener('ResizeUpdate', keepTargetAtTop);\n }\n\n containerEl.addEventListener('ResizeUpdate', keepTargetAtTop);\n\n ro.observe(containerEl);\n return ro;\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"createMergeRequest\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestCreateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestCreate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":163}};\n doc.loc.source = {\"body\":\"mutation createMergeRequest($input: MergeRequestCreateInput!) {\\n mergeRequestCreate(input: $input) {\\n mergeRequest {\\n id\\n iid\\n }\\n errors\\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[\"createMergeRequest\"] = oneQuery(doc, \"createMergeRequest\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{ref:\"userAvatar\"},[_c('gl-avatar',{staticClass:\"gl-bg-cover\",class:{\n lazy: _vm.lazy,\n [_vm.cssClasses]: true,\n },style:(_vm.pseudo ? { backgroundImage: `url('${_vm.sanitizedSource}')` } : null),attrs:{\"src\":_vm.pseudo ? undefined : _vm.resultantSrcAttribute,\"data-src\":_vm.sanitizedSource,\"size\":_vm.size,\"alt\":_vm.imgAlt,\"data-testid\":\"user-avatar-image\"}}),_vm._v(\" \"),(_vm.tooltipText || _vm.$scopedSlots.default)?_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.userAvatar,\"placement\":_vm.tooltipPlacement,\"boundary\":\"window\"}},[_vm._t(\"default\",function(){return [_vm._v(_vm._s(_vm.tooltipText))]})],2):_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!./user_avatar_image.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!./user_avatar_image.vue?vue&type=script&lang=js\"","<script>\n/* This is a re-usable vue component for rendering a user avatar that\n does not need to link to the user's profile. The image and an optional\n tooltip can be configured by props passed to this component.\n\n Sample configuration:\n\n <user-avatar\n lazy\n :img-src=\"userAvatarSrc\"\n :img-alt=\"tooltipText\"\n :tooltip-text=\"tooltipText\"\n tooltip-placement=\"top\"\n :size=\"24\"\n />\n\n */\n\nimport { GlTooltip, GlAvatar } from '@gitlab/ui';\nimport { isObject } from 'lodash';\nimport defaultAvatarUrl from 'images/no_avatar.png';\nimport { __ } from '~/locale';\nimport { placeholderImage } from '~/lazy_loader';\n\nexport default {\n name: 'UserAvatarImage',\n components: {\n GlTooltip,\n GlAvatar,\n },\n props: {\n lazy: {\n type: Boolean,\n required: false,\n default: false,\n },\n imgSrc: {\n type: String,\n required: false,\n default: defaultAvatarUrl,\n },\n cssClasses: {\n type: String,\n required: false,\n default: '',\n },\n imgAlt: {\n type: String,\n required: false,\n default: __('user avatar'),\n },\n size: {\n type: [Number, Object],\n required: true,\n },\n tooltipText: {\n type: String,\n required: false,\n default: '',\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'top',\n },\n // Render avatar using pseudo-elements so that they cannot be selected or copied\n pseudo: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n // API response sends null when gravatar is disabled and\n // we provide an empty string when we use it inside user avatar link.\n // In both cases we should render the defaultAvatarUrl\n sanitizedSource() {\n let baseSrc = this.imgSrc === '' || this.imgSrc === null ? defaultAvatarUrl : this.imgSrc;\n // Only adds the width to the URL if its not a base64 data image\n if (!(baseSrc.indexOf('data:') === 0) && !baseSrc.includes('?'))\n baseSrc += `?width=${this.maximumSize}`;\n return baseSrc;\n },\n maximumSize() {\n if (isObject(this.size)) {\n return Math.max(...Object.values(this.size)) * 2;\n }\n return this.size * 2;\n },\n resultantSrcAttribute() {\n return this.lazy ? placeholderImage : this.sanitizedSource;\n },\n },\n};\n</script>\n\n<template>\n <span ref=\"userAvatar\">\n <gl-avatar\n class=\"gl-bg-cover\"\n :class=\"{\n lazy: lazy,\n [cssClasses]: true,\n }\"\n :src=\"pseudo ? undefined : resultantSrcAttribute\"\n :style=\"pseudo ? { backgroundImage: `url('${sanitizedSource}')` } : null\"\n :data-src=\"sanitizedSource\"\n :size=\"size\"\n :alt=\"imgAlt\"\n data-testid=\"user-avatar-image\"\n />\n\n <gl-tooltip\n v-if=\"tooltipText || $scopedSlots.default\"\n :target=\"() => $refs.userAvatar\"\n :placement=\"tooltipPlacement\"\n boundary=\"window\"\n >\n <slot>{{ tooltipText }}</slot>\n </gl-tooltip>\n </span>\n</template>\n","import { render, staticRenderFns } from \"./user_avatar_image.vue?vue&type=template&id=0836472c\"\nimport script from \"./user_avatar_image.vue?vue&type=script&lang=js\"\nexport * from \"./user_avatar_image.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 * Adds two numbers together\n * @param {Number} a\n * @param {Number} b\n */\nconst addition = (a, b) => a + b;\n\n/**\n * Returns the sum of all arguments\n * @param {...Number} numbers\n */\nconst sum = function () {\n for (var _len = arguments.length, numbers = new Array(_len), _key = 0; _key < _len; _key++) {\n numbers[_key] = arguments[_key];\n }\n return numbers.reduce(addition);\n}; // eslint-disable-line unicorn/no-array-callback-reference\n\n/**\n * Returns the average of all arguments\n * @param {...Number} numbers\n */\nconst average = function () {\n return sum(...arguments) / arguments.length;\n};\n\n/**\n * Returns the modulo of n for a divisor.\n *\n * Maps the integer n into the range [0, divisor) when the divisor is positive,\n * and (divisor, 0] when the divisor is negative.\n *\n * This is useful when indexing into an array, to ensure you always stay within\n * the array bounds.\n *\n * See https://2ality.com/2019/08/remainder-vs-modulo.html.\n *\n * @param {number} n The number to mod.\n * @param {number} divisor The divisor (e.g., the length of an array).\n * @returns {number}\n */\nfunction modulo(n, divisor) {\n const result = (n % divisor + divisor) % divisor;\n // Never return -0.\n return result === 0 ? 0 : result;\n}\n\n/**\n * Convert number to engineering format, using SI suffix\n * @param {Number|String} value - Number or Number-convertible String\n * @param {Number} precision\n * @return {String} number, possibly with a suffix\n */\nconst engineeringNotation = function (value) {\n let precision = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n const invalidValues = [NaN, Infinity, -Infinity];\n const num = Number(value);\n if (invalidValues.includes(num) || invalidValues.includes(Number(precision))) {\n return num.toString();\n }\n const allYourBase = {\n '-24': 'y',\n '-21': 'z',\n '-18': 'a',\n '-15': 'f',\n '-12': 'p',\n '-9': 'n',\n '-6': 'μ',\n '-3': 'm',\n 0: '',\n 3: 'k',\n 6: 'M',\n 9: 'G',\n 12: 'T',\n 15: 'P',\n 18: 'E',\n 21: 'Z',\n 24: 'Y'\n };\n const exponentialNotation = num.toExponential(precision);\n const power = exponentialNotation.split('e').map(Number)[1] || 0;\n if (power < -24 || power > 24) {\n return exponentialNotation;\n }\n const scaledPower = 3 * Math.floor(power / 3);\n const scaledMantissa = (exponentialNotation / 10 ** scaledPower\n // strip trailing decimals from floating point rounding errors\n ).toFixed(precision)\n // strip trailing 0s after a decimal point\n .replace(/\\.([1-9]*)0+$/, (_, fractionalDigits) => {\n if (fractionalDigits) {\n return `.${fractionalDigits}`;\n }\n return '';\n });\n return `${scaledMantissa}${allYourBase[scaledPower]}`;\n};\n\n/**\n * Formats a number as a locale-based string using `Intl.NumberFormat`.\n *\n * 2333 -> 2,333\n * 232324 -> 232,324\n *\n * @param {Number|string} value - number to be converted\n * @param {{}?} options - options to be passed to\n * `Intl.NumberFormat` such as `unit` and `style`.\n * @param {String|String[]} locales - If set, forces a different\n * language code from the one currently in the document.\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat\n *\n * @returns {String}\n */\nconst formatNumberToLocale = function (value) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let locales = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : undefined;\n if (Number.isNaN(Number(value))) {\n return value;\n }\n return new Intl.NumberFormat(locales, options).format(value);\n};\n\n// Converts a value (string, number, etc.) to a number\n// Taken from bootstrap-vue\nconst toFloat = function (value) {\n let defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : NaN;\n const float = parseFloat(value);\n return Number.isNaN(float) ? defaultValue : float;\n};\n\nexport { addition, average, engineeringNotation, formatNumberToLocale, modulo, sum, toFloat };\n","// Standard YAML's Core schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2804923\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, Core schema has no distinctions from JSON schema is JS-YAML.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./json')\n ]\n});\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","/* eslint-disable class-methods-use-this, @gitlab/require-i18n-strings */\n\nimport { GlBreakpointInstance as bp } from '@gitlab/ui/dist/utils';\nimport $ from 'jquery';\nimport { uniq, escape } from 'lodash';\nimport { getEmojiScoreWithIntent } from '~/emoji/utils';\nimport { scrollToElement } from '~/lib/utils/common_utils';\nimport * as Emoji from '~/emoji';\nimport { dispose, fixTitle } from '~/tooltips';\nimport { createAlert } from '~/alert';\nimport {\n EMOJI_THUMBS_UP,\n EMOJI_THUMBS_DOWN,\n FREQUENTLY_USED_EMOJIS_STORAGE_KEY,\n} from '~/emoji/constants';\nimport axios from './lib/utils/axios_utils';\nimport { isInVueNoteablePage } from './lib/utils/dom_utils';\nimport { __ } from './locale';\n\nconst animationEndEventString = 'animationend webkitAnimationEnd MSAnimationEnd oAnimationEnd';\nconst transitionEndEventString = 'transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd';\n\nconst FROM_SENTENCE_REGEX = /(?:, and | and |, )/; // For separating lists produced by ruby's Array#toSentence\n\nconst categoryLabelMap = {\n activity: 'Activity',\n people: 'People',\n nature: 'Nature',\n food: 'Food',\n travel: 'Travel',\n objects: 'Objects',\n symbols: 'Symbols',\n flags: 'Flags',\n};\n\nconst IS_VISIBLE = 'is-visible';\nconst IS_RENDERED = 'is-rendered';\n\nexport class AwardsHandler {\n constructor(emoji) {\n this.emoji = emoji;\n this.eventListeners = [];\n this.toggleButtonSelector = '.js-add-award';\n this.menuClass = 'js-award-emoji-menu';\n }\n\n bindEvents() {\n const $parentEl = this.targetContainerEl ? $(this.targetContainerEl) : $(document);\n // If the user shows intent let's pre-build the menu\n this.registerEventListener(\n 'one',\n $parentEl,\n 'mouseenter focus',\n this.toggleButtonSelector,\n 'mouseenter focus',\n () => {\n const $menu = $(`.${this.menuClass}`);\n if ($menu.length === 0) {\n requestAnimationFrame(() => {\n this.createEmojiMenu();\n });\n }\n },\n );\n this.registerEventListener('on', $parentEl, 'click', this.toggleButtonSelector, (e) => {\n e.stopPropagation();\n e.preventDefault();\n this.showEmojiMenu($(e.currentTarget));\n });\n\n this.registerEventListener('on', $('html'), 'click', (e) => {\n const $target = $(e.target);\n if (!$target.closest(`.${this.menuClass}`).length) {\n $('.js-awards-block.current').removeClass('current');\n if ($(`.${this.menuClass}`).is(':visible')) {\n $(`${this.toggleButtonSelector}.is-active`).removeClass('is-active');\n this.hideMenuElement($(`.${this.menuClass}`));\n }\n }\n });\n\n const emojiButtonSelector = `.js-awards-block .js-emoji-btn, .${this.menuClass} .js-emoji-btn`;\n this.registerEventListener('on', $parentEl, 'click', emojiButtonSelector, (e) => {\n e.preventDefault();\n const $target = $(e.currentTarget);\n const $glEmojiElement = $target.find('gl-emoji');\n const $spriteIconElement = $target.find('.icon');\n const emojiName = ($glEmojiElement.length ? $glEmojiElement : $spriteIconElement).data(\n 'name',\n );\n\n $target.closest('.js-awards-block').addClass('current');\n this.addAward(this.getVotesBlock(), this.getAwardUrl(), emojiName);\n });\n }\n\n registerEventListener(method = 'on', element, ...args) {\n element[method].call(element, ...args);\n this.eventListeners.push({\n element,\n args,\n });\n }\n\n showEmojiMenu($addBtn) {\n if ($addBtn.hasClass('js-note-emoji')) {\n $addBtn.closest('.note').find('.js-awards-block').addClass('current');\n } else {\n $addBtn.closest('.js-awards-block').addClass('current');\n }\n\n const $menu = $(`.${this.menuClass}`);\n if ($menu.length) {\n if ($menu.is('.is-visible')) {\n $addBtn.removeClass('is-active');\n this.hideMenuElement($menu);\n $('.js-emoji-menu-search').blur();\n } else {\n $addBtn.addClass('is-active');\n this.positionMenu($menu, $addBtn);\n this.showMenuElement($menu);\n $('.js-emoji-menu-search').focus();\n }\n } else {\n $addBtn.addClass('is-loading is-active');\n this.createEmojiMenu(() => {\n const $createdMenu = $(`.${this.menuClass}`);\n $addBtn.removeClass('is-loading');\n this.positionMenu($createdMenu, $addBtn);\n return setTimeout(() => {\n this.showMenuElement($createdMenu);\n $('.js-emoji-menu-search').focus();\n }, 200);\n });\n }\n }\n\n // Create the emoji menu with the first category of emojis.\n // Then render the remaining categories of emojis one by one to avoid jank.\n createEmojiMenu(callback) {\n if (this.isCreatingEmojiMenu) {\n return;\n }\n this.isCreatingEmojiMenu = true;\n\n // Render the first category\n const categoryMap = this.emoji.getEmojiCategoryMap();\n const categoryNameKey = Object.keys(categoryMap)[0];\n const emojisInCategory = categoryMap[categoryNameKey];\n const firstCategory = this.renderCategory(categoryLabelMap[categoryNameKey], emojisInCategory);\n\n // Render the frequently used\n const frequentlyUsedEmojis = this.getFrequentlyUsedEmojis();\n let frequentlyUsedCatgegory = '';\n if (frequentlyUsedEmojis.length > 0) {\n frequentlyUsedCatgegory = this.renderCategory('Frequently used', frequentlyUsedEmojis, {\n frequentEmojis: true,\n });\n }\n\n const emojiMenuMarkup = `\n <div class=\"emoji-menu ${this.menuClass}\">\n <input type=\"text\" name=\"emoji-menu-search\" value=\"\" class=\"js-emoji-menu-search emoji-search search-input form-control\" placeholder=\"Search emoji\" />\n\n <div class=\"emoji-menu-content\">\n ${frequentlyUsedCatgegory}\n ${firstCategory}\n </div>\n </div>\n `;\n\n const targetEl = this.targetContainerEl ? this.targetContainerEl : document.body;\n // eslint-disable-next-line no-unsanitized/method\n targetEl.insertAdjacentHTML('beforeend', emojiMenuMarkup);\n\n this.addRemainingEmojiMenuCategories();\n this.setupSearch();\n if (callback) {\n callback();\n }\n }\n\n addRemainingEmojiMenuCategories() {\n if (this.isAddingRemainingEmojiMenuCategories) {\n return;\n }\n this.isAddingRemainingEmojiMenuCategories = true;\n\n const categoryMap = this.emoji.getEmojiCategoryMap();\n\n // Avoid the jank and render the remaining categories separately\n // This will take more time, but makes UI more responsive\n const menu = document.querySelector(`.${this.menuClass}`);\n const emojiContentElement = menu.querySelector('.emoji-menu-content');\n const remainingCategories = Object.keys(categoryMap).slice(1);\n const allCategoriesAddedPromise = remainingCategories.reduce(\n (promiseChain, categoryNameKey) =>\n promiseChain.then(\n () =>\n new Promise((resolve) => {\n const emojisInCategory = categoryMap[categoryNameKey];\n const categoryMarkup = this.renderCategory(\n categoryLabelMap[categoryNameKey],\n emojisInCategory,\n );\n requestAnimationFrame(() => {\n // eslint-disable-next-line no-unsanitized/method\n emojiContentElement.insertAdjacentHTML('beforeend', categoryMarkup);\n resolve();\n });\n }),\n ),\n Promise.resolve(),\n );\n\n allCategoriesAddedPromise\n .then(() => {\n // Used for tests\n // We check for the menu in case it was destroyed in the meantime\n if (menu) {\n menu.dispatchEvent(new CustomEvent('build-emoji-menu-finish'));\n }\n })\n .catch((err) => {\n emojiContentElement.insertAdjacentHTML(\n 'beforeend',\n '<p>We encountered an error while adding the remaining categories</p>',\n );\n throw new Error(`Error occurred in addRemainingEmojiMenuCategories: ${err.message}`);\n });\n }\n\n renderCategory(name, emojiList, opts = {}) {\n return `\n <h5 class=\"emoji-menu-title\">\n ${escape(name)}\n </h5>\n <ul class=\"clearfix emoji-menu-list ${opts.frequentEmojis ? 'frequent-emojis' : ''}\">\n ${emojiList\n .map(\n (emojiName) => `\n <li class=\"emoji-menu-list-item\">\n <button class=\"emoji-menu-btn text-center js-emoji-btn\" type=\"button\">\n ${this.emoji.glEmojiTag(emojiName, {\n sprite: true,\n })}\n </button>\n </li>\n `,\n )\n .join('\\n')}\n </ul>\n `;\n }\n\n positionMenu($menu, $addBtn) {\n if (this.targetContainerEl) {\n return $menu.css({\n top: `${$addBtn.outerHeight()}px`,\n });\n }\n\n const position = $addBtn.data('position');\n // The menu could potentially be off-screen or in a hidden overflow element\n // So we position the element absolute in the body\n const css = {\n top: `${$addBtn.offset().top + $addBtn.outerHeight()}px`,\n };\n // for xs screen we position the element on center\n if (bp.getBreakpointSize() === 'xs' || bp.getBreakpointSize() === 'sm') {\n css.left = '5%';\n } else if (position === 'right') {\n css.left = `${$addBtn.offset().left - $menu.outerWidth() + 20}px`;\n $menu.addClass('is-aligned-right');\n } else {\n css.left = `${$addBtn.offset().left}px`;\n $menu.removeClass('is-aligned-right');\n }\n return $menu.css(css);\n }\n\n // eslint-disable-next-line max-params\n addAward(votesBlock, awardUrl, emoji, callback) {\n const isMainAwardsBlock = votesBlock.closest('.js-noteable-awards').length;\n\n if (isInVueNoteablePage() && !isMainAwardsBlock) {\n const id = votesBlock.attr('id').replace('note_', '');\n\n this.hideMenuElement($(`.${this.menuClass}`));\n\n $(`${this.toggleButtonSelector}.is-active`).removeClass('is-active');\n const toggleAwardEvent = new CustomEvent('toggleAward', {\n detail: {\n awardName: emoji,\n noteId: id,\n },\n });\n\n document.querySelector('.js-vue-notes-event').dispatchEvent(toggleAwardEvent);\n }\n\n const normalizedEmoji = this.emoji.normalizeEmojiName(emoji);\n const $emojiButton = this.findEmojiIcon(votesBlock, normalizedEmoji).closest('button');\n\n this.postEmoji($emojiButton, awardUrl, normalizedEmoji, () => {\n this.addAwardToEmojiBar(votesBlock, normalizedEmoji);\n return typeof callback === 'function' ? callback() : undefined;\n });\n\n this.hideMenuElement($(`.${this.menuClass}`));\n\n return $(`${this.toggleButtonSelector}.is-active`).removeClass('is-active');\n }\n\n addAwardToEmojiBar(votesBlock, emoji) {\n this.addEmojiToFrequentlyUsedList(emoji);\n const normalizedEmoji = this.emoji.normalizeEmojiName(emoji);\n const $emojiButton = this.findEmojiIcon(votesBlock, normalizedEmoji).closest('button');\n if ($emojiButton.length > 0) {\n if (this.isActive($emojiButton)) {\n this.decrementCounter($emojiButton, normalizedEmoji);\n } else {\n const counter = $emojiButton.find('.js-counter');\n counter.text(parseInt(counter.text(), 10) + 1);\n $emojiButton.addClass('active');\n this.addYouToUserList(votesBlock, normalizedEmoji);\n this.animateEmoji($emojiButton);\n }\n } else {\n votesBlock.removeClass('hidden');\n this.createEmoji(votesBlock, normalizedEmoji);\n }\n }\n\n getVotesBlock() {\n if (isInVueNoteablePage()) {\n const $el = $(`${this.toggleButtonSelector}.is-active`).closest('.note.timeline-entry');\n\n if ($el.length) {\n return $el;\n }\n }\n\n const currentBlock = $('.js-awards-block.current');\n let resultantVotesBlock = currentBlock;\n if (currentBlock.length === 0) {\n resultantVotesBlock = $('.js-awards-block').eq(0);\n }\n\n return resultantVotesBlock;\n }\n\n getAwardUrl() {\n return this.getVotesBlock().data('awardUrl');\n }\n\n isActive($emojiButton) {\n return $emojiButton.hasClass('active');\n }\n\n decrementCounter($emojiButton, emoji) {\n const counter = $('.js-counter', $emojiButton);\n const counterNumber = parseInt(counter.text(), 10);\n if (counterNumber > 1) {\n counter.text(counterNumber - 1);\n this.removeYouFromUserList($emojiButton);\n } else if (emoji === EMOJI_THUMBS_UP || emoji === EMOJI_THUMBS_DOWN) {\n dispose($emojiButton);\n counter.text('0');\n this.removeYouFromUserList($emojiButton);\n if ($emojiButton.parents('.note').length) {\n this.removeEmoji($emojiButton);\n }\n } else {\n this.removeEmoji($emojiButton);\n }\n return $emojiButton.removeClass('active');\n }\n\n removeEmoji($emojiButton) {\n dispose($emojiButton);\n\n $emojiButton.remove();\n const $votesBlock = this.getVotesBlock();\n if ($votesBlock.find('.js-emoji-btn').length === 0) {\n $votesBlock.addClass('hidden');\n }\n }\n\n getAwardTooltip($awardBlock) {\n return $awardBlock.attr('data-original-title') || $awardBlock.attr('data-title') || '';\n }\n\n toSentence(list) {\n let sentence;\n if (list.length <= 2) {\n sentence = list.join(' and ');\n } else {\n sentence = `${list.slice(0, -1).join(', ')}, and ${list[list.length - 1]}`;\n }\n\n return sentence;\n }\n\n removeYouFromUserList($emojiButton) {\n const awardBlock = $emojiButton;\n const originalTitle = this.getAwardTooltip(awardBlock);\n const authors = originalTitle.split(FROM_SENTENCE_REGEX);\n authors.splice(authors.indexOf('You'), 1);\n\n awardBlock\n .closest('.js-emoji-btn')\n .removeData('title')\n .removeAttr('data-title')\n .removeAttr('data-original-title')\n .attr('title', this.toSentence(authors));\n\n fixTitle(awardBlock);\n\n return awardBlock;\n }\n\n addYouToUserList(votesBlock, emoji) {\n const awardBlock = this.findEmojiIcon(votesBlock, emoji).closest('button');\n const origTitle = this.getAwardTooltip(awardBlock);\n let users = [];\n if (origTitle) {\n users = origTitle.trim().split(FROM_SENTENCE_REGEX);\n }\n users.unshift('You');\n\n awardBlock.attr('title', this.toSentence(users));\n\n fixTitle(awardBlock);\n\n return awardBlock;\n }\n\n createAwardButtonForVotesBlock(votesBlock, emojiName) {\n const buttonHtml = `\n <button class=\"gl-button btn btn-default award-control js-emoji-btn has-tooltip active\" title=\"You\">\n ${this.emoji.glEmojiTag(emojiName)}\n <span class=\"award-control-text js-counter\">1</span>\n </button>\n `;\n const $emojiButton = $(buttonHtml);\n $emojiButton\n .insertBefore(votesBlock.find('.js-award-holder'))\n .find('.emoji-icon')\n .data('name', emojiName);\n this.animateEmoji($emojiButton);\n\n votesBlock.removeClass('current');\n }\n\n animateEmoji($emoji) {\n const className = 'pulse animated once short';\n $emoji.addClass(className);\n\n this.registerEventListener('on', $emoji, animationEndEventString, (e) => {\n $(e.currentTarget).removeClass(className);\n });\n }\n\n createEmoji(votesBlock, emoji) {\n if ($(`.${this.menuClass}`).length) {\n this.createAwardButtonForVotesBlock(votesBlock, emoji);\n }\n this.createEmojiMenu(() => {\n this.createAwardButtonForVotesBlock(votesBlock, emoji);\n });\n }\n\n // eslint-disable-next-line max-params\n postEmoji($emojiButton, awardUrl, emoji, callback) {\n axios\n .post(awardUrl, {\n name: emoji,\n })\n .then(({ data }) => {\n if (data.ok) {\n callback();\n }\n })\n .catch(() =>\n createAlert({\n message: __('Something went wrong on our end.'),\n }),\n );\n }\n\n findEmojiIcon(votesBlock, emoji) {\n return votesBlock.find(`.js-emoji-btn [data-name=\"${emoji}\"]`);\n }\n\n scrollToAwards() {\n scrollToElement('.awards', { offset: -110 });\n }\n\n addEmojiToFrequentlyUsedList(emoji) {\n if (this.emoji.isEmojiNameValid(emoji)) {\n this.frequentlyUsedEmojis = uniq(this.getFrequentlyUsedEmojis().concat(emoji));\n localStorage.setItem(FREQUENTLY_USED_EMOJIS_STORAGE_KEY, this.frequentlyUsedEmojis.join(','));\n }\n }\n\n getFrequentlyUsedEmojis() {\n return (\n this.frequentlyUsedEmojis ||\n (() => {\n const frequentlyUsedEmojis = uniq(\n (localStorage.getItem(FREQUENTLY_USED_EMOJIS_STORAGE_KEY) || '').split(','),\n );\n this.frequentlyUsedEmojis = frequentlyUsedEmojis.filter((inputName) =>\n this.emoji.isEmojiNameValid(inputName),\n );\n\n return this.frequentlyUsedEmojis;\n })()\n );\n }\n\n setupSearch() {\n const $search = $('.js-emoji-menu-search');\n\n this.registerEventListener('on', $search, 'input', (e) => {\n const term = $(e.target).val().trim();\n this.searchEmojis(term);\n });\n\n const $menu = $(`.${this.menuClass}`);\n this.registerEventListener('on', $menu, transitionEndEventString, (e) => {\n if (e.target === e.currentTarget) {\n // Clear the search\n this.searchEmojis('');\n }\n });\n }\n\n searchEmojis(term) {\n const $search = $('.js-emoji-menu-search');\n $search.val(term);\n\n // Clean previous search results\n $('ul.emoji-menu-search, h5.emoji-search-title').remove();\n if (term.length > 0) {\n // Generate a search result block\n const h5 = $('<h5 class=\"emoji-search-title\"/>').text('Search results');\n const foundEmojis = this.findMatchingEmojiElements(term).show();\n const ul = $('<ul>').addClass('emoji-menu-list emoji-menu-search').append(foundEmojis);\n $('.emoji-menu-content ul, .emoji-menu-content h5').hide();\n $('.emoji-menu-content').append(h5).append(ul);\n } else {\n $('.emoji-menu-content').children().show();\n }\n }\n\n getEmojiScore(emojis, value) {\n const elem = $(value).find('[data-name]').get(0);\n const emoji = emojis.filter((x) => x.emoji.name === elem.dataset.name)[0];\n elem.dataset.score = emoji.score;\n\n return emoji.score;\n }\n\n sortEmojiElements(emojis, $elements) {\n const scores = new WeakMap();\n\n return $elements.sort((a, b) => {\n let aScore = scores.get(a);\n let bScore = scores.get(b);\n\n if (!aScore) {\n aScore = this.getEmojiScore(emojis, a);\n scores.set(a, aScore);\n }\n\n if (!bScore) {\n bScore = this.getEmojiScore(emojis, b);\n scores.set(b, bScore);\n }\n\n return aScore - bScore;\n });\n }\n\n findMatchingEmojiElements(query) {\n const matchingEmoji = this.emoji\n .searchEmoji(query)\n .map((x) => ({ ...x, score: getEmojiScoreWithIntent(x.emoji.name, x.score) }));\n const matchingEmojiNames = matchingEmoji.map((x) => x.emoji.name);\n const $emojiElements = $('.emoji-menu-list:not(.frequent-emojis) [data-name]');\n const $matchingElements = $emojiElements.filter(\n (i, elm) => matchingEmojiNames.indexOf(elm.dataset.name) >= 0,\n );\n return this.sortEmojiElements(matchingEmoji, $matchingElements.closest('li').clone());\n }\n\n /* showMenuElement and hideMenuElement are performance optimizations. We use\n * opacity to show/hide the emoji menu, because we can animate it. But opacity\n * leaves hidden elements in the render tree, which is unacceptable given the number\n * of emoji elements in the emoji menu (5k+). To get the best of both worlds, we separately\n * apply IS_RENDERED to add/remove the menu from the render tree and IS_VISIBLE to animate\n * the menu being opened and closed. */\n\n showMenuElement($emojiMenu) {\n $emojiMenu.addClass(IS_RENDERED);\n\n // enqueues animation as a microtask, so it begins ASAP once IS_RENDERED added\n return Promise.resolve().then(() => $emojiMenu.addClass(IS_VISIBLE));\n }\n\n hideMenuElement($emojiMenu) {\n $emojiMenu.on(transitionEndEventString, (e) => {\n if (e.currentTarget === e.target) {\n // eslint-disable-next-line @gitlab/no-global-event-off\n $emojiMenu.removeClass(IS_RENDERED).off(transitionEndEventString);\n }\n });\n\n $emojiMenu.removeClass(IS_VISIBLE);\n }\n\n destroy() {\n this.eventListeners.forEach((entry) => {\n entry.element.off.call(entry.element, ...entry.args);\n });\n $(`.${this.menuClass}`).remove();\n }\n}\n\nlet awardsHandlerPromise = null;\nexport default function loadAwardsHandler(reload = false) {\n if (!awardsHandlerPromise || reload) {\n awardsHandlerPromise = Emoji.initEmojiMap().then(() => {\n const awardsHandler = new AwardsHandler(Emoji);\n awardsHandler.bindEvents();\n return awardsHandler;\n });\n }\n return awardsHandlerPromise;\n}\n","export const SET_INITIAL_DATA = 'SET_INITIAL_DATA';\n\nexport const FETCH_AWARDS_SUCCESS = 'FETCH_AWARDS_SUCCESS';\n\nexport const ADD_NEW_AWARD = 'ADD_NEW_AWARD';\nexport const REMOVE_AWARD = 'REMOVE_AWARD';\n","import * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport axios from '~/lib/utils/axios_utils';\nimport { normalizeHeaders } from '~/lib/utils/common_utils';\nimport { joinPaths } from '~/lib/utils/url_utility';\nimport {\n SET_INITIAL_DATA,\n FETCH_AWARDS_SUCCESS,\n ADD_NEW_AWARD,\n REMOVE_AWARD,\n} from './mutation_types';\n\nexport const setInitialData = ({ commit }, data) => commit(SET_INITIAL_DATA, data);\n\nexport const fetchAwards = async ({ commit, dispatch, state }, page = '1') => {\n try {\n const { data, headers } = await axios.get(joinPaths(gon.relative_url_root || '', state.path), {\n params: { per_page: 100, page },\n });\n const normalizedHeaders = normalizeHeaders(headers);\n const nextPage = normalizedHeaders['X-NEXT-PAGE'];\n\n commit(FETCH_AWARDS_SUCCESS, data);\n\n if (nextPage) {\n dispatch('fetchAwards', nextPage);\n }\n } catch (error) {\n Sentry.captureException(error);\n }\n};\n\n/**\n * Creates an intermediary award, used for display\n * until the real award is loaded from the backend.\n */\nconst newOptimisticAward = (name, state) => {\n const freeId = Math.min(...state.awards.map((a) => a.id), Number.MAX_SAFE_INTEGER) - 1;\n return {\n id: freeId,\n name,\n user: {\n id: window.gon.current_user_id,\n name: window.gon.current_user_fullname,\n username: window.gon.current_username,\n },\n };\n};\n\nexport const toggleAward = async ({ commit, state }, name) => {\n const award = state.awards.find((a) => a.name === name && a.user.id === state.currentUserId);\n\n try {\n if (award) {\n commit(REMOVE_AWARD, award.id);\n\n await axios\n .delete(joinPaths(gon.relative_url_root || '', `${state.path}/${award.id}`))\n .catch((err) => {\n commit(ADD_NEW_AWARD, award);\n\n throw err;\n });\n } else {\n const optimisticAward = newOptimisticAward(name, state);\n\n commit(ADD_NEW_AWARD, optimisticAward);\n\n const { data } = await axios\n .post(joinPaths(gon.relative_url_root || '', state.path), {\n name,\n })\n .finally(() => {\n commit(REMOVE_AWARD, optimisticAward.id);\n });\n\n commit(ADD_NEW_AWARD, data);\n }\n } catch (error) {\n Sentry.captureException(error);\n }\n};\n","import {\n SET_INITIAL_DATA,\n FETCH_AWARDS_SUCCESS,\n ADD_NEW_AWARD,\n REMOVE_AWARD,\n} from './mutation_types';\n\nexport default {\n [SET_INITIAL_DATA](state, { path, currentUserId, canAwardEmoji }) {\n state.path = path;\n state.currentUserId = currentUserId;\n state.canAwardEmoji = canAwardEmoji;\n },\n [FETCH_AWARDS_SUCCESS](state, data) {\n state.awards.push(...data);\n },\n [ADD_NEW_AWARD](state, data) {\n state.awards.push(data);\n },\n [REMOVE_AWARD](state, awardId) {\n state.awards = state.awards.filter(({ id }) => id !== awardId);\n },\n};\n","import Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport Vuex from 'vuex';\nimport * as actions from './actions';\nimport mutations from './mutations';\n\nVue.use(Vuex);\n\nconst createState = () => ({\n awards: [],\n awardPath: '',\n currentUserId: null,\n canAwardEmoji: false,\n});\n\nexport default () =>\n new Vuex.Store({\n state: createState(),\n actions,\n mutations,\n });\n","import Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapState } from 'vuex';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport AwardsList from '~/vue_shared/components/awards_list.vue';\nimport { EMOJI_THUMBS_UP, EMOJI_THUMBS_DOWN } from '~/emoji/constants';\nimport createstore from './store';\n\nexport default (el) => {\n if (!el) return null;\n\n const {\n dataset: { path, newCustomEmojiPath },\n } = el;\n const canAwardEmoji = parseBoolean(el.dataset.canAwardEmoji);\n const showDefaultAwardEmojis = parseBoolean(el.dataset.showDefaultAwardEmojis);\n\n return new Vue({\n el,\n name: 'AwardsListRoot',\n store: createstore(),\n provide: {\n newCustomEmojiPath,\n },\n computed: {\n ...mapState(['currentUserId', 'canAwardEmoji', 'awards']),\n },\n created() {\n this.setInitialData({ path, currentUserId: window.gon.current_user_id, canAwardEmoji });\n },\n mounted() {\n this.fetchAwards();\n },\n methods: {\n ...mapActions(['setInitialData', 'fetchAwards', 'toggleAward']),\n },\n render(createElement) {\n return createElement(AwardsList, {\n props: {\n awards: this.awards,\n canAwardEmoji: this.canAwardEmoji,\n currentUserId: this.currentUserId,\n defaultAwards: showDefaultAwardEmojis ? [EMOJI_THUMBS_UP, EMOJI_THUMBS_DOWN] : [],\n selectedClass: 'selected',\n },\n on: {\n award: this.toggleAward,\n },\n });\n },\n });\n};\n","import { property, isEqual } from 'lodash';\nimport { diffModes, diffViewerModes } from '~/ide/constants';\nimport {\n LINE_POSITION_LEFT,\n LINE_POSITION_RIGHT,\n TEXT_DIFF_POSITION_TYPE,\n LEGACY_DIFF_NOTE_TYPE,\n DIFF_NOTE_TYPE,\n NEW_LINE_TYPE,\n OLD_LINE_TYPE,\n MATCH_LINE_TYPE,\n INLINE_DIFF_LINES_KEY,\n CONFLICT_OUR,\n CONFLICT_THEIR,\n CONFLICT_MARKER,\n CONFLICT_MARKER_OUR,\n CONFLICT_MARKER_THEIR,\n EXPANDED_LINE_TYPE,\n} from '../constants';\nimport { prepareRawDiffFile } from '../utils/diff_file';\nimport { extractFileHash } from '../utils/merge_request';\n\nexport const isAdded = (line) => ['new', 'new-nonewline'].includes(line.type);\nexport const isRemoved = (line) => ['old', 'old-nonewline'].includes(line.type);\nexport const isUnchanged = (line) => !line.type;\nexport const isMeta = (line) =>\n ['match', EXPANDED_LINE_TYPE, 'new-nonewline', 'old-nonewline'].includes(line.type);\nexport const isConflictMarker = (line) =>\n [CONFLICT_MARKER_OUR, CONFLICT_MARKER_THEIR].includes(line.type);\nexport const isConflictSeperator = (line) => line.type === CONFLICT_MARKER;\nexport const isConflictOur = (line) => line.type === CONFLICT_OUR;\nexport const isConflictTheir = (line) => line.type === CONFLICT_THEIR;\n\n/**\n * Pass in the inline diff lines array which gets converted\n * to the parallel diff lines.\n * This allows for us to convert inline diff lines to parallel\n * on the frontend without needing to send any requests\n * to the API.\n *\n * This method has been taken from the already existing backend\n * implementation at lib/gitlab/diff/parallel_diff.rb\n *\n * @param {Object[]} diffLines - inline diff lines\n *\n * @param {Boolean} inline - is inline context or not\n *\n * @returns {Object[]} parallel lines\n */\n\nexport const parallelizeDiffLines = (diffLines, inline) => {\n let freeRightIndex = null;\n let conflictStartIndex = -1;\n const lines = [];\n\n // `chunk` is used for dragging to select diff lines\n // we are restricting commenting to only lines that appear between\n // \"expansion rows\". Here equal chunks are lines grouped together\n // inbetween expansion rows.\n let chunk = 0;\n\n for (let i = 0, diffLinesLength = diffLines.length, index = 0; i < diffLinesLength; i += 1) {\n const line = diffLines[i];\n line.chunk = chunk;\n\n if (isMeta(line) && line.type !== EXPANDED_LINE_TYPE) chunk += 1;\n\n if (isRemoved(line) || isConflictOur(line) || inline) {\n lines.push({\n [LINE_POSITION_LEFT]: line,\n [LINE_POSITION_RIGHT]: null,\n });\n\n if (freeRightIndex === null) {\n // Once we come upon a new line it can be put on the right of this old line\n freeRightIndex = index;\n }\n index += 1;\n } else if (isAdded(line) || isConflictTheir(line)) {\n if (freeRightIndex !== null) {\n // If an old line came before this without a line on the right, this\n // line can be put to the right of it.\n lines[freeRightIndex].right = line;\n\n // If there are any other old lines on the left that don't yet have\n // a new counterpart on the right, update the free_right_index\n const nextFreeRightIndex = freeRightIndex + 1;\n freeRightIndex = nextFreeRightIndex < index ? nextFreeRightIndex : null;\n } else {\n lines.push({\n [LINE_POSITION_LEFT]: null,\n [LINE_POSITION_RIGHT]: line,\n });\n\n freeRightIndex = null;\n index += 1;\n }\n } else if (\n isMeta(line) ||\n isUnchanged(line) ||\n isConflictMarker(line) ||\n (isConflictSeperator(line) && inline)\n ) {\n if (conflictStartIndex <= 0) {\n // line in the right panel is the same as in the left one\n lines.push({\n [LINE_POSITION_LEFT]: line,\n [LINE_POSITION_RIGHT]: !inline && line,\n });\n\n if (!inline && isConflictMarker(line)) {\n conflictStartIndex = index;\n }\n freeRightIndex = null;\n index += 1;\n } else {\n lines[conflictStartIndex][LINE_POSITION_RIGHT] = line;\n conflictStartIndex = -1;\n }\n }\n }\n\n return lines;\n};\n\nexport function findDiffFile(files, match, matchKey = 'file_hash') {\n return files.find((file) => file[matchKey] === match);\n}\n\nexport function getFormData(params) {\n const {\n commit,\n note,\n noteableType,\n noteableData,\n diffFile,\n noteTargetLine,\n diffViewType,\n linePosition,\n positionType,\n lineRange,\n showWhitespace,\n } = params;\n\n const position = JSON.stringify({\n base_sha: diffFile.diff_refs.base_sha,\n start_sha: diffFile.diff_refs.start_sha,\n head_sha: diffFile.diff_refs.head_sha,\n old_path: diffFile.old_path,\n new_path: diffFile.new_path,\n position_type: positionType || TEXT_DIFF_POSITION_TYPE,\n old_line: noteTargetLine ? noteTargetLine.old_line : null,\n new_line: noteTargetLine ? noteTargetLine.new_line : null,\n x: params.x,\n y: params.y,\n width: params.width,\n height: params.height,\n line_range: lineRange,\n ignore_whitespace_change: diffFile.whitespaceOnlyChange ? false : !showWhitespace,\n });\n\n const postData = {\n view: diffViewType,\n line_type: linePosition === LINE_POSITION_RIGHT ? NEW_LINE_TYPE : OLD_LINE_TYPE,\n merge_request_diff_head_sha: diffFile.diff_refs.head_sha,\n in_reply_to_discussion_id: '',\n note_project_id: '',\n target_type: noteableData.targetType,\n target_id: noteableData.id,\n return_discussion: true,\n note: {\n note,\n position,\n noteable_type: noteableType,\n noteable_id: noteableData.id,\n commit_id: commit && commit.id,\n type:\n diffFile.diff_refs.start_sha && diffFile.diff_refs.head_sha\n ? DIFF_NOTE_TYPE\n : LEGACY_DIFF_NOTE_TYPE,\n line_code: noteTargetLine ? noteTargetLine.line_code : null,\n },\n };\n\n return postData;\n}\n\nexport function getNoteFormData(params) {\n const data = getFormData(params);\n\n return {\n endpoint: params.noteableData.create_note_path,\n data,\n };\n}\n\nexport const findIndexInInlineLines = (lines, lineNumbers) => {\n const { oldLineNumber, newLineNumber } = lineNumbers;\n\n return lines.findIndex(\n (line) => line.old_line === oldLineNumber && line.new_line === newLineNumber,\n );\n};\n\nexport const getPreviousLineIndex = (file, lineNumbers) => {\n return findIndexInInlineLines(file[INLINE_DIFF_LINES_KEY], lineNumbers);\n};\n\nexport function removeMatchLine(diffFile, lineNumbers, bottom) {\n const indexForInline = findIndexInInlineLines(diffFile[INLINE_DIFF_LINES_KEY], lineNumbers);\n const factor = bottom ? 1 : -1;\n\n if (indexForInline > -1) {\n diffFile[INLINE_DIFF_LINES_KEY].splice(indexForInline + factor, 1);\n }\n}\n\n// eslint-disable-next-line max-params\nexport function addLineReferences(lines, lineNumbers, bottom, isExpandDown, nextLineNumbers) {\n const { oldLineNumber, newLineNumber } = lineNumbers;\n const lineCount = lines.length;\n let matchLineIndex = -1;\n\n const linesWithNumbers = lines.map((l, index) => {\n if (l.type === MATCH_LINE_TYPE) {\n matchLineIndex = index;\n } else {\n Object.assign(l, {\n old_line: bottom ? oldLineNumber + index + 1 : oldLineNumber + index - lineCount,\n new_line: bottom ? newLineNumber + index + 1 : newLineNumber + index - lineCount,\n });\n }\n return l;\n });\n\n if (matchLineIndex > -1) {\n const line = linesWithNumbers[matchLineIndex];\n let targetLine;\n\n if (isExpandDown) {\n targetLine = nextLineNumbers;\n } else if (bottom) {\n targetLine = linesWithNumbers[matchLineIndex - 1];\n } else {\n targetLine = linesWithNumbers[matchLineIndex + 1];\n }\n\n Object.assign(line, {\n meta_data: {\n old_pos: targetLine.old_line,\n new_pos: targetLine.new_line,\n },\n });\n }\n return linesWithNumbers;\n}\n\nfunction addInlineContextLines(options) {\n const { inlineLines, contextLines, lineNumbers, isExpandDown } = options;\n const factor = isExpandDown ? 1 : 0;\n\n if (!isExpandDown && options.bottom) {\n inlineLines.push(...contextLines);\n } else {\n const inlineIndex = findIndexInInlineLines(inlineLines, lineNumbers);\n\n inlineLines.splice(inlineIndex + factor, 0, ...contextLines);\n }\n}\n\nexport function addContextLines(options) {\n addInlineContextLines(options);\n}\n\n/**\n * Trims the first char of the `richText` property when it's either a space or a diff symbol.\n * @param {Object} line\n * @returns {Object}\n * @deprecated Use `line.rich_text = line.rich_text ? line.rich_text.replace(/^[+ -]/, '') : undefined;` instead!. For more information, see https://gitlab.com/gitlab-org/gitlab/-/issues/299329\n */\nexport function trimFirstCharOfLineContent(line = {}) {\n // eslint-disable-next-line no-param-reassign\n delete line.text;\n\n const parsedLine = { ...line };\n\n if (line.rich_text) {\n const firstChar = parsedLine.rich_text.charAt(0);\n\n if (firstChar === ' ' || firstChar === '+' || firstChar === '-') {\n parsedLine.rich_text = line.rich_text.substring(1);\n }\n }\n\n return parsedLine;\n}\n\nfunction diffFileUniqueId(file) {\n return `${file.content_sha}-${file.file_hash}`;\n}\n\nfunction mergeTwoFiles(target, source) {\n const originalInline = target[INLINE_DIFF_LINES_KEY];\n const missingInline = !originalInline.length;\n\n return {\n ...target,\n [INLINE_DIFF_LINES_KEY]: missingInline ? source[INLINE_DIFF_LINES_KEY] : originalInline,\n parallel_diff_lines: null,\n collapsed: source.collapsed,\n };\n}\n\nfunction ensureBasicDiffFileLines(file) {\n const missingInline = !file[INLINE_DIFF_LINES_KEY];\n\n Object.assign(file, {\n [INLINE_DIFF_LINES_KEY]: missingInline ? [] : file[INLINE_DIFF_LINES_KEY],\n parallel_diff_lines: null,\n });\n\n return file;\n}\n\nfunction cleanRichText(text) {\n return text ? text.replace(/^[+ -]/, '') : undefined;\n}\n\nfunction prepareLine(line, file) {\n const problems = {\n brokenSymlink: file.brokenSymlink,\n brokenLineCode: !line.line_code,\n fileOnlyMoved: file.renamed_file && file.added_lines === 0 && file.removed_lines === 0,\n };\n\n if (!line.alreadyPrepared) {\n Object.assign(line, {\n commentsDisabled: Boolean(\n problems.brokenSymlink || problems.fileOnlyMoved || problems.brokenLineCode,\n ),\n rich_text: cleanRichText(line.rich_text),\n discussionsExpanded: false,\n discussions: [],\n hasForm: false,\n text: undefined,\n alreadyPrepared: true,\n problems,\n });\n }\n}\n\nexport function prepareLineForRenamedFile({ line, diffFile, index = 0 }) {\n /*\n Renamed files are a little different than other diffs, which\n is why this is distinct from `prepareDiffFileLines` below.\n\n We don't get any of the diff file context when we get the diff\n (so no \"inline\" vs. \"parallel\", no \"line_code\", etc.).\n\n We can also assume that both the left and the right of each line\n (for parallel diff view type) are identical, because the file\n is renamed, not modified.\n\n This should be cleaned up as part of the effort around flattening our data\n ==> https://gitlab.com/groups/gitlab-org/-/epics/2852#note_304803402\n */\n const lineNumber = index + 1;\n const cleanLine = {\n ...line,\n line_code: `${diffFile.file_hash}_${lineNumber}_${lineNumber}`,\n new_line: lineNumber,\n old_line: lineNumber,\n };\n\n prepareLine(cleanLine, diffFile); // WARNING: In-Place Mutations!\n\n return cleanLine;\n}\n\nfunction prepareDiffFileLines(file) {\n const inlineLines = file[INLINE_DIFF_LINES_KEY];\n\n inlineLines.forEach((line) => prepareLine(line, file)); // WARNING: In-Place Mutations!\n\n return file;\n}\n\nfunction finalizeDiffFile(file) {\n Object.assign(file, {\n isShowingFullFile: false,\n isLoadingFullFile: false,\n discussions: [],\n renderingLines: false,\n whitespaceOnlyChange: file.viewer?.whitespace_only,\n });\n\n return file;\n}\n\nfunction deduplicateFilesList(files, updatePosition) {\n const dedupedFiles = files.reduce((newList, file) => {\n const id = diffFileUniqueId(file);\n if (updatePosition && id in newList) {\n // Object.values preserves key order but doesn't update order when writing to the same key\n // In order to update position of the item we have to delete it first and then add it back\n const existingFile = newList[id];\n // eslint-disable-next-line no-param-reassign\n delete newList[id];\n return {\n ...newList,\n // 'updatePosition' should be set to true only when we want to keep the existing file\n [id]: existingFile,\n };\n }\n\n return {\n ...newList,\n [id]: newList[id] ? mergeTwoFiles(newList[id], file) : file,\n };\n }, {});\n\n return Object.values(dedupedFiles);\n}\n\nexport function prepareDiffData({ diff, priorFiles = [], meta = false, updatePosition = false }) {\n const transformersChain = [\n (file, index, allFiles) => prepareRawDiffFile({ file, index, allFiles, meta }),\n ensureBasicDiffFileLines,\n prepareDiffFileLines,\n finalizeDiffFile,\n ];\n const cleanedFiles = (diff.diff_files || []).map((file, index, allFiles) => {\n return transformersChain.reduce((fileResult, transformer) => {\n return transformer(fileResult, index, allFiles);\n }, file);\n });\n\n return deduplicateFilesList([...priorFiles, ...cleanedFiles], updatePosition);\n}\n\nexport function getDiffPositionByLineCode(diffFiles) {\n const lines = diffFiles.reduce((acc, diffFile) => {\n diffFile[INLINE_DIFF_LINES_KEY].forEach((line) => {\n acc.push({ file: diffFile, line });\n });\n\n return acc;\n }, []);\n\n return lines.reduce((acc, { file, line }) => {\n if (line.line_code) {\n acc[line.line_code] = {\n base_sha: file.diff_refs.base_sha,\n head_sha: file.diff_refs.head_sha,\n start_sha: file.diff_refs.start_sha,\n new_path: file.new_path,\n old_path: file.old_path,\n old_line: line.old_line,\n new_line: line.new_line,\n line_range: null,\n line_code: line.line_code,\n position_type: 'text',\n };\n }\n\n return acc;\n }, {});\n}\n\n// This method will check whether the discussion is still applicable\n// to the diff line in question regarding different versions of the MR\nexport function isDiscussionApplicableToLine({ discussion, diffPosition, latestDiff }) {\n if (!diffPosition) {\n return false;\n }\n\n const { line_code, ...dp } = diffPosition;\n // Removing `line_range` from diffPosition because the backend does not\n // yet consistently return this property. This check can be removed,\n // once this is addressed. see https://gitlab.com/gitlab-org/gitlab/-/issues/213010\n const { line_range: dpNotUsed, ...diffPositionCopy } = dp;\n\n if (discussion.original_position && discussion.position) {\n const discussionPositions = [\n discussion.original_position,\n discussion.position,\n ...(discussion.positions || []),\n ];\n\n const removeLineRange = (position) => {\n const { line_range: pNotUsed, ...positionNoLineRange } = position;\n return positionNoLineRange;\n };\n\n return discussionPositions\n .map(removeLineRange)\n .some((position) => isEqual(position, diffPositionCopy));\n }\n\n // eslint-disable-next-line\n return latestDiff && discussion.active && line_code === discussion.line_code;\n}\n\nexport const getDiffMode = (diffFile) => {\n const diffModeKey = Object.keys(diffModes).find((key) => diffFile[`${key}_file`]);\n return (\n diffModes[diffModeKey] ||\n (diffFile.viewer?.name === diffViewerModes.mode_changed && diffViewerModes.mode_changed) ||\n (diffFile.viewer?.name === diffViewerModes.no_preview && diffViewerModes.no_preview) ||\n diffModes.replaced\n );\n};\n\nexport const convertExpandLines = ({\n diffLines,\n data,\n typeKey,\n oldLineKey,\n newLineKey,\n mapLine,\n}) => {\n const dataLength = data.length;\n const lines = [];\n\n for (let i = 0, diffLinesLength = diffLines.length; i < diffLinesLength; i += 1) {\n const line = diffLines[i];\n\n if (property(typeKey)(line) === 'match') {\n const beforeLine = diffLines[i - 1];\n const afterLine = diffLines[i + 1];\n const newLineProperty = property(newLineKey);\n const beforeLineIndex = newLineProperty(beforeLine) || 0;\n const afterLineIndex = newLineProperty(afterLine) - 1 || dataLength;\n\n lines.push(\n ...data.slice(beforeLineIndex, afterLineIndex).map((l, index) =>\n mapLine({\n line: Object.assign(l, { hasForm: false, discussions: [] }),\n oldLine: (property(oldLineKey)(beforeLine) || 0) + index + 1,\n newLine: (newLineProperty(beforeLine) || 0) + index + 1,\n }),\n ),\n );\n } else {\n lines.push(line);\n }\n }\n\n return lines;\n};\n\nexport const idleCallback = (cb) => requestIdleCallback(cb);\n\nfunction getLinesFromFileByLineCode(file, lineCode) {\n const inlineLines = file[INLINE_DIFF_LINES_KEY];\n const matchesCode = (line) => line.line_code === lineCode;\n\n return inlineLines.filter(matchesCode);\n}\n\nexport const updateLineInFile = (selectedFile, lineCode, updateFn) => {\n getLinesFromFileByLineCode(selectedFile, lineCode).forEach(updateFn);\n};\n\nexport function isUrlHashNoteLink(urlHash = '') {\n const id = urlHash.replace(/^#/, '');\n\n return id.startsWith('note');\n}\n\nexport function isUrlHashFileHeader(urlHash = '') {\n const id = urlHash.replace(/^#/, '');\n\n return id.startsWith('diff-content');\n}\n\nexport function parseUrlHashAsFileHash(urlHash = '', currentDiffFileId = '') {\n const hashless = urlHash.replace(/^#/, '');\n const isNoteLink = isUrlHashNoteLink(hashless);\n const extractedSha1 = extractFileHash({ input: hashless });\n let id = extractedSha1;\n\n if (isNoteLink && currentDiffFileId) {\n id = currentDiffFileId;\n } else if (isUrlHashFileHeader(hashless)) {\n id = hashless.replace('diff-content-', '');\n } else if (!extractedSha1 || isNoteLink) {\n id = null;\n }\n\n return id;\n}\n\nexport function markTreeEntriesLoaded({ priorEntries, loadedFiles }) {\n const newEntries = { ...priorEntries };\n\n loadedFiles.forEach((newFile) => {\n const entry = newEntries[newFile.new_path];\n\n if (entry) {\n entry.diffLoaded = true;\n entry.diffLoading = false;\n }\n });\n\n return newEntries;\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"toggle-replies-widget gl-border-r gl-border-l !gl-flex gl-flex-wrap gl-items-center gl-border-l-section gl-border-r-section gl-bg-subtle gl-px-5 gl-py-2 gl-leading-24\",class:{ '!gl-rounded-b-base gl-text-subtle': _vm.collapsed },attrs:{\"aria-expanded\":_vm.ariaState}},[_c('gl-button',{ref:\"toggle\",staticClass:\"gl-my-2 -gl-ml-3 gl-mr-2 !gl-p-0\",class:{ '!gl-text-link': !_vm.collapsed },attrs:{\"category\":\"tertiary\",\"icon\":_vm.buttonIcon,\"aria-label\":_vm.buttonLabel,\"data-testid\":\"replies-toggle\",\"size\":\"small\"},on:{\"click\":_vm.toggle}}),_vm._v(\" \"),(_vm.collapsed)?[_c('gl-avatars-inline',{staticClass:\"gl-mr-3\",attrs:{\"avatars\":_vm.uniqueAuthors,\"avatar-size\":24,\"max-visible\":5,\"badge-sr-only-text\":\"\"},scopedSlots:_vm._u([{key:\"avatar\",fn:function({ avatar }){return [_c('gl-avatar-link',{staticClass:\"js-user-link\",attrs:{\"target\":\"_blank\",\"href\":avatar.path || avatar.webUrl,\"data-user-id\":avatar.id,\"data-username\":avatar.username}},[_c('gl-avatar',{attrs:{\"size\":24,\"src\":avatar.avatar_url || avatar.avatarUrl,\"alt\":avatar.name}})],1)]}}],null,false,1471887347)}),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-mr-2 gl-self-center\",attrs:{\"variant\":\"link\",\"data-testid\":\"expand-replies-button\"},on:{\"click\":_vm.toggle}},[_vm._v(\"\\n \"+_vm._s(_vm.n__('%d reply', '%d replies', _vm.replies.length))+\"\\n \")]),_vm._v(\" \"),_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.lastReplyBy},scopedSlots:_vm._u([{key:\"name\",fn:function(){return [_c('gl-link',{staticClass:\"gl-mx-2 !gl-text-default !gl-no-underline\",attrs:{\"href\":_vm.lastReply.author.path || _vm.lastReply.author.webUrl}},[_vm._v(\"\\n \"+_vm._s(_vm.lastReply.author.name)+\"\\n \")])]},proxy:true}],null,false,1142650514)}),_vm._v(\" \"),_c('time-ago-tooltip',{attrs:{\"time\":_vm.lastReply.created_at || _vm.lastReply.createdAt,\"tooltip-placement\":\"bottom\"}})]:_c('gl-button',{staticClass:\"!gl-no-underline\",attrs:{\"variant\":\"link\",\"data-testid\":\"collapse-replies-button\"},on:{\"click\":_vm.toggle}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.collapseReplies)+\"\\n \")])],2)\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!./toggle_replies_widget.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!./toggle_replies_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLink, GlSprintf, GlAvatarLink, GlAvatar, GlAvatarsInline } from '@gitlab/ui';\nimport { uniqBy } from 'lodash';\nimport { s__ } from '~/locale';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\n\nexport default {\n i18n: {\n collapseReplies: s__('Notes|Collapse replies'),\n expandReplies: s__('Notes|Expand replies'),\n lastReplyBy: s__('Notes|Last reply by %{name}'),\n },\n components: {\n GlButton,\n GlLink,\n GlSprintf,\n GlAvatarLink,\n GlAvatar,\n GlAvatarsInline,\n TimeAgoTooltip,\n },\n props: {\n collapsed: {\n type: Boolean,\n required: true,\n },\n replies: {\n type: Array,\n required: true,\n },\n },\n computed: {\n lastReply() {\n return this.replies[this.replies.length - 1];\n },\n uniqueAuthors() {\n const authors = this.replies.map((reply) => reply.author || {});\n\n return uniqBy(authors, 'username');\n },\n buttonIcon() {\n return this.collapsed ? 'chevron-right' : 'chevron-down';\n },\n buttonLabel() {\n return this.collapsed ? this.$options.i18n.expandReplies : this.$options.i18n.collapseReplies;\n },\n ariaState() {\n return String(!this.collapsed);\n },\n },\n methods: {\n toggle() {\n this.$refs.toggle.$el.focus();\n this.$emit('toggle');\n },\n },\n};\n</script>\n\n<template>\n <li\n :class=\"{ '!gl-rounded-b-base gl-text-subtle': collapsed }\"\n class=\"toggle-replies-widget gl-border-r gl-border-l !gl-flex gl-flex-wrap gl-items-center gl-border-l-section gl-border-r-section gl-bg-subtle gl-px-5 gl-py-2 gl-leading-24\"\n :aria-expanded=\"ariaState\"\n >\n <gl-button\n ref=\"toggle\"\n class=\"gl-my-2 -gl-ml-3 gl-mr-2 !gl-p-0\"\n :class=\"{ '!gl-text-link': !collapsed }\"\n category=\"tertiary\"\n :icon=\"buttonIcon\"\n :aria-label=\"buttonLabel\"\n data-testid=\"replies-toggle\"\n size=\"small\"\n @click=\"toggle\"\n />\n <template v-if=\"collapsed\">\n <gl-avatars-inline\n :avatars=\"uniqueAuthors\"\n :avatar-size=\"24\"\n :max-visible=\"5\"\n badge-sr-only-text=\"\"\n class=\"gl-mr-3\"\n >\n <template #avatar=\"{ avatar }\">\n <gl-avatar-link\n target=\"_blank\"\n :href=\"avatar.path || avatar.webUrl\"\n :data-user-id=\"avatar.id\"\n :data-username=\"avatar.username\"\n class=\"js-user-link\"\n >\n <gl-avatar :size=\"24\" :src=\"avatar.avatar_url || avatar.avatarUrl\" :alt=\"avatar.name\" />\n </gl-avatar-link>\n </template>\n </gl-avatars-inline>\n <gl-button\n class=\"gl-mr-2 gl-self-center\"\n variant=\"link\"\n data-testid=\"expand-replies-button\"\n @click=\"toggle\"\n >\n {{ n__('%d reply', '%d replies', replies.length) }}\n </gl-button>\n <gl-sprintf :message=\"$options.i18n.lastReplyBy\">\n <template #name>\n <gl-link\n :href=\"lastReply.author.path || lastReply.author.webUrl\"\n class=\"gl-mx-2 !gl-text-default !gl-no-underline\"\n >\n {{ lastReply.author.name }}\n </gl-link>\n </template>\n </gl-sprintf>\n <time-ago-tooltip\n :time=\"lastReply.created_at || lastReply.createdAt\"\n tooltip-placement=\"bottom\"\n />\n </template>\n <gl-button\n v-else\n class=\"!gl-no-underline\"\n variant=\"link\"\n data-testid=\"collapse-replies-button\"\n @click=\"toggle\"\n >\n {{ $options.i18n.collapseReplies }}\n </gl-button>\n </li>\n</template>\n","import { render, staticRenderFns } from \"./toggle_replies_widget.vue?vue&type=template&id=d35dfd08\"\nimport script from \"./toggle_replies_widget.vue?vue&type=script&lang=js\"\nexport * from \"./toggle_replies_widget.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\":\"readyToMergeEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadyToMerge\"},\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeTrainCarCount\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":288}};\n doc.loc.source = {\"body\":\"#import \\\"~/vue_merge_request_widget/queries/states/ready_to_merge.fragment.graphql\\\"\\n#import \\\"./merge_train_car_count.fragment.graphql\\\"\\n\\nquery readyToMergeEE($projectPath: ID!, $iid: String!) {\\n project(fullPath: $projectPath) {\\n id\\n ...ReadyToMerge\\n ...MergeTrainCarCount\\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(\"~/vue_merge_request_widget/queries/states/ready_to_merge.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./merge_train_car_count.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[\"readyToMergeEE\"] = oneQuery(doc, \"readyToMergeEE\");\n \n","var asciiSize = require('./_asciiSize'),\n hasUnicode = require('./_hasUnicode'),\n unicodeSize = require('./_unicodeSize');\n\n/**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\nfunction stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n}\n\nmodule.exports = stringSize;\n","import Api, { DEFAULT_PER_PAGE } from '~/api';\nimport axios from '~/lib/utils/axios_utils';\nimport { contentTypeMultipartFormData } from '~/lib/utils/headers';\n\nexport default {\n ...Api,\n geoSitePath: '/api/:version/geo_sites/:id',\n geoSitesPath: '/api/:version/geo_sites',\n geoSitesStatusPath: '/api/:version/geo_sites/status',\n ldapGroupsPath: '/api/:version/ldap/:provider/groups.json',\n subscriptionPath: '/api/:version/namespaces/:id/gitlab_subscription',\n childEpicPath: '/api/:version/groups/:id/epics',\n codeReviewAnalyticsPath: '/api/:version/analytics/code_review',\n groupActivityIssuesPath: '/api/:version/analytics/group_activity/issues_count',\n groupActivityMergeRequestsPath: '/api/:version/analytics/group_activity/merge_requests_count',\n groupActivityNewMembersPath: '/api/:version/analytics/group_activity/new_members_count',\n countriesPath: '/-/countries',\n countryStatesPath: '/-/country_states',\n paymentFormPath: '/-/subscriptions/payment_form',\n filePath: '/api/:version/projects/:id/repository/files/:file_path',\n validatePaymentMethodPath: '/-/subscriptions/validate_payment_method',\n vulnerabilityPath: '/api/:version/vulnerabilities/:id',\n vulnerabilityActionPath: '/api/:version/vulnerabilities/:id/:action',\n vulnerabilityIssueLinksPath: '/api/:version/vulnerabilities/:id/issue_links',\n descendantGroupsPath: '/api/:version/groups/:group_id/descendant_groups',\n projectDeploymentFrequencyAnalyticsPath:\n '/api/:version/projects/:id/analytics/deployment_frequency',\n projectGroupsPath: '/api/:version/projects/:id/groups.json',\n issueMetricImagesPath: '/api/:version/projects/:id/issues/:issue_iid/metric_images',\n issueMetricSingleImagePath:\n '/api/:version/projects/:id/issues/:issue_iid/metric_images/:image_id',\n environmentApprovalPath: '/api/:version/projects/:id/deployments/:deployment_id/approval',\n protectedEnvironmentsPath: '/api/:version/:entity_type/:id/protected_environments/',\n mrStatusCheckRetryPath:\n '/api/:version/projects/:id/merge_requests/:merge_request_iid/status_checks/:external_status_check_id/retry',\n protectedEnvironmentPath: '/api/:version/:entity_type/:id/protected_environments/:name',\n aiCompletionsPath: '/api/:version/ai/experimentation/openai/completions',\n aiEmbeddingsPath: '/api/:version/ai/experimentation/openai/embeddings',\n aiChatPath: '/api/:version/ai/experimentation/openai/chat/completions',\n tanukiBotAskPath: '/-/llm/tanuki_bot/ask',\n\n userSubscription(namespaceId) {\n const url = Api.buildUrl(this.subscriptionPath).replace(':id', encodeURIComponent(namespaceId));\n\n return axios.get(url);\n },\n\n ldapGroups(query, provider, callback) {\n const url = Api.buildUrl(this.ldapGroupsPath).replace(':provider', provider);\n return axios\n .get(url, {\n params: {\n search: query,\n per_page: DEFAULT_PER_PAGE,\n active: true,\n },\n })\n .then(({ data }) => {\n callback(data);\n\n return data;\n });\n },\n\n createChildEpic({ confidential, groupId, parentEpicId, title }) {\n const url = Api.buildUrl(this.childEpicPath).replace(':id', encodeURIComponent(groupId));\n\n return axios.post(url, {\n parent_id: parentEpicId,\n confidential,\n title,\n });\n },\n\n descendantGroups({ groupId, search }) {\n const url = Api.buildUrl(this.descendantGroupsPath).replace(':group_id', groupId);\n\n return axios.get(url, {\n params: {\n search,\n },\n });\n },\n\n codeReviewAnalytics(params = {}) {\n const url = Api.buildUrl(this.codeReviewAnalyticsPath);\n return axios.get(url, { params });\n },\n\n groupActivityMergeRequestsCount(groupPath) {\n const url = Api.buildUrl(this.groupActivityMergeRequestsPath);\n return axios.get(url, { params: { group_path: groupPath } });\n },\n\n groupActivityIssuesCount(groupPath) {\n const url = Api.buildUrl(this.groupActivityIssuesPath);\n return axios.get(url, { params: { group_path: groupPath } });\n },\n\n groupActivityNewMembersCount(groupPath) {\n const url = Api.buildUrl(this.groupActivityNewMembersPath);\n return axios.get(url, { params: { group_path: groupPath } });\n },\n\n fetchCountries() {\n const url = Api.buildUrl(this.countriesPath);\n return axios.get(url);\n },\n\n fetchStates(country) {\n const url = Api.buildUrl(this.countryStatesPath);\n return axios.get(url, { params: { country } });\n },\n\n fetchPaymentFormParams(id) {\n const url = Api.buildUrl(this.paymentFormPath);\n return axios.get(url, { params: { id } });\n },\n\n getFile(id, filePath, params = {}) {\n const url = Api.buildUrl(this.filePath)\n .replace(':id', encodeURIComponent(id))\n .replace(':file_path', encodeURIComponent(filePath));\n\n return axios.get(url, { params });\n },\n\n validatePaymentMethod(id, gitlabUserId) {\n const url = Api.buildUrl(this.validatePaymentMethodPath);\n return axios.post(url, { id, gitlab_user_id: gitlabUserId });\n },\n\n changeVulnerabilityState(id, state) {\n const url = Api.buildUrl(this.vulnerabilityActionPath)\n .replace(':id', id)\n .replace(':action', state);\n\n return axios.post(url);\n },\n\n getGeoSites() {\n const url = Api.buildUrl(this.geoSitesPath);\n return axios.get(url);\n },\n\n getGeoSitesStatus() {\n const url = Api.buildUrl(this.geoSitesStatusPath);\n return axios.get(url);\n },\n\n createGeoSite(site) {\n const url = Api.buildUrl(this.geoSitesPath);\n return axios.post(url, site);\n },\n\n updateGeoSite(site) {\n const url = Api.buildUrl(this.geoSitesPath);\n return axios.put(`${url}/${site.id}`, site);\n },\n\n removeGeoSite(id) {\n const url = Api.buildUrl(this.geoSitePath).replace(':id', encodeURIComponent(id));\n return axios.delete(url);\n },\n\n deploymentFrequencies(projectId, params = {}) {\n const url = Api.buildUrl(this.projectDeploymentFrequencyAnalyticsPath).replace(\n ':id',\n encodeURIComponent(projectId),\n );\n\n return axios.get(url, { params });\n },\n\n fetchIssueMetricImages({ issueIid, id }) {\n const metricImagesUrl = Api.buildUrl(this.issueMetricImagesPath)\n .replace(':id', encodeURIComponent(id))\n .replace(':issue_iid', encodeURIComponent(issueIid));\n\n return axios.get(metricImagesUrl);\n },\n\n uploadIssueMetricImage({ issueIid, id, file, url = null, urlText = null }) {\n const options = { headers: { ...contentTypeMultipartFormData } };\n const metricImagesUrl = Api.buildUrl(this.issueMetricImagesPath)\n .replace(':id', encodeURIComponent(id))\n .replace(':issue_iid', encodeURIComponent(issueIid));\n\n // Construct multipart form data\n const formData = new FormData();\n formData.append('file', file);\n if (url) {\n formData.append('url', url);\n }\n if (urlText) {\n formData.append('url_text', urlText);\n }\n\n return axios.post(metricImagesUrl, formData, options);\n },\n\n updateIssueMetricImage({ issueIid, id, imageId, url = null, urlText = null }) {\n const metricImagesUrl = Api.buildUrl(this.issueMetricSingleImagePath)\n .replace(':id', encodeURIComponent(id))\n .replace(':issue_iid', encodeURIComponent(issueIid))\n .replace(':image_id', encodeURIComponent(imageId));\n\n // Construct multipart form data\n const formData = new FormData();\n if (url != null) {\n formData.append('url', url);\n }\n if (urlText != null) {\n formData.append('url_text', urlText);\n }\n\n return axios.put(metricImagesUrl, formData);\n },\n\n deleteMetricImage({ issueIid, id, imageId }) {\n const individualMetricImageUrl = Api.buildUrl(this.issueMetricSingleImagePath)\n .replace(':id', encodeURIComponent(id))\n .replace(':issue_iid', encodeURIComponent(issueIid))\n .replace(':image_id', encodeURIComponent(imageId));\n\n return axios.delete(individualMetricImageUrl);\n },\n\n projectGroups(id, options) {\n const url = Api.buildUrl(this.projectGroupsPath).replace(':id', encodeURIComponent(id));\n\n return axios\n .get(url, {\n params: {\n ...options,\n },\n })\n .then(({ data }) => {\n return data;\n });\n },\n\n deploymentApproval({ id, deploymentId, representedAs, approve, comment }) {\n const url = Api.buildUrl(this.environmentApprovalPath)\n .replace(':id', encodeURIComponent(id))\n .replace(':deployment_id', encodeURIComponent(deploymentId));\n\n return axios.post(url, {\n status: approve ? 'approved' : 'rejected',\n represented_as: representedAs,\n comment,\n });\n },\n\n approveDeployment({ id, deploymentId, representedAs, comment }) {\n return this.deploymentApproval({ id, deploymentId, representedAs, approve: true, comment });\n },\n rejectDeployment({ id, deploymentId, representedAs, comment }) {\n return this.deploymentApproval({ id, deploymentId, approve: false, representedAs, comment });\n },\n\n protectedEnvironments(id, entityType, params = {}) {\n const url = Api.buildUrl(this.protectedEnvironmentsPath)\n .replace(':entity_type', encodeURIComponent(entityType))\n .replace(':id', encodeURIComponent(id));\n return axios.get(url, { params });\n },\n\n createProtectedEnvironment(id, entityType, protectedEnvironment) {\n const url = Api.buildUrl(this.protectedEnvironmentsPath)\n .replace(':entity_type', encodeURIComponent(entityType))\n .replace(':id', encodeURIComponent(id));\n return axios.post(url, protectedEnvironment);\n },\n\n updateProtectedEnvironment(id, entityType, protectedEnvironment) {\n const url = Api.buildUrl(this.protectedEnvironmentPath)\n .replace(':entity_type', encodeURIComponent(entityType))\n .replace(':id', encodeURIComponent(id))\n .replace(':name', encodeURIComponent(protectedEnvironment.name));\n\n return axios.put(url, protectedEnvironment);\n },\n\n deleteProtectedEnvironment(id, entityType, { name }) {\n const url = Api.buildUrl(this.protectedEnvironmentPath)\n .replace(':entity_type', encodeURIComponent(entityType))\n .replace(':id', encodeURIComponent(id))\n .replace(':name', encodeURIComponent(name));\n\n return axios.delete(url);\n },\n\n requestAICompletions({ model, prompt, ...rest }) {\n const url = Api.buildUrl(this.aiCompletionsPath);\n return axios.post(url, { model, prompt, rest });\n },\n\n requestAIEmbeddings({ model, input, ...rest }) {\n const url = Api.buildUrl(this.aiEmbeddingsPath);\n return axios.post(url, { model, input, rest });\n },\n\n requestAIChat({ model, messages, ...rest }) {\n const url = Api.buildUrl(this.aiChatPath);\n return axios.post(url, { model, messages, rest });\n },\n\n requestTanukiBotResponse(q) {\n const url = Api.buildUrl(this.tanukiBotAskPath);\n return axios.post(url, { q });\n },\n};\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\nvar snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n});\n\nmodule.exports = snakeCase;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestApprovalRule\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalState\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"invalidApproversRules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalsRequired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"invalid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowMergeWhenInvalid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"section\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvedBy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"commentedBy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"eligibleApprovers\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scanResultPolicies\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalsRequired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"reportType\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":614}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n\\nfragment MergeRequestApprovalRule on MergeRequest {\\n id\\n approvalState {\\n invalidApproversRules {\\n id\\n }\\n rules {\\n id\\n type\\n approved\\n approvalsRequired\\n invalid\\n allowMergeWhenInvalid\\n name\\n section\\n approvedBy {\\n nodes {\\n ...User\\n }\\n }\\n commentedBy {\\n nodes {\\n ...User\\n }\\n }\\n eligibleApprovers {\\n ...User\\n }\\n scanResultPolicies {\\n approvalsRequired\\n name\\n reportType\\n }\\n }\\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(\"~/graphql_shared/fragments/user.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[\"MergeRequestApprovalRule\"] = oneQuery(doc, \"MergeRequestApprovalRule\");\n \n","import __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlButtonGroup',\n props: {\n /**\n * When set, rendered the button group in vertical mode.\n */\n vertical: {\n type: Boolean,\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('div',_vm._g({class:!_vm.vertical ? 'btn-group' : 'btn-group-vertical',attrs:{\"role\":\"group\"}},_vm.$listeners),[_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","/* eslint-disable class-methods-use-this */\nimport $ from 'jquery';\nimport Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport createDefaultClient from '~/lib/graphql';\nimport { createAlert } from '~/alert';\nimport { getCookie, isMetaClick, parseBoolean, scrollToElement } from '~/lib/utils/common_utils';\nimport { parseUrlPathname, visitUrl } from '~/lib/utils/url_utility';\nimport createEventHub from '~/helpers/event_hub_factory';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport BlobForkSuggestion from './blob/blob_fork_suggestion';\nimport Diff from './diff';\nimport { initDiffStatsDropdown } from './init_diff_stats_dropdown';\nimport axios from './lib/utils/axios_utils';\n\nimport { localTimeAgo } from './lib/utils/datetime_utility';\nimport { isInVueNoteablePage } from './lib/utils/dom_utils';\nimport { __, s__ } from './locale';\nimport syntaxHighlight from './syntax_highlight';\n\nVue.use(VueApollo);\n\nconst apolloProvider = new VueApollo({\n defaultClient: createDefaultClient(),\n});\n\n// MergeRequestTabs\n//\n// Handles persisting and restoring the current tab selection and lazily-loading\n// content on the MergeRequests#show page.\n//\n// ### Example Markup\n//\n// <ul class=\"nav-links merge-request-tabs\">\n// <li class=\"notes-tab active\">\n// <a data-action=\"notes\" data-target=\"#notes\" data-toggle=\"tab\" href=\"/foo/bar/-/merge_requests/1\">\n// Discussion\n// </a>\n// </li>\n// <li class=\"commits-tab\">\n// <a data-action=\"commits\" data-target=\"#commits\" data-toggle=\"tab\" href=\"/foo/bar/-/merge_requests/1/commits\">\n// Commits\n// </a>\n// </li>\n// <li class=\"diffs-tab\">\n// <a data-action=\"diffs\" data-target=\"#diffs\" data-toggle=\"tab\" href=\"/foo/bar/-/merge_requests/1/diffs\">\n// Diffs\n// </a>\n// </li>\n// </ul>\n//\n// <div class=\"tab-content\">\n// <div class=\"notes tab-pane active\" id=\"notes\">\n// Notes Content\n// </div>\n// <div class=\"commits tab-pane\" id=\"commits\">\n// Commits Content\n// </div>\n// <div class=\"diffs tab-pane\" id=\"diffs\">\n// Diffs Content\n// </div>\n// </div>\n//\n// <div class=\"mr-loading-status\">\n// <div class=\"loading\">\n// Loading Animation\n// </div>\n// </div>\n//\n\n// <100ms is typically indistinguishable from \"instant\" for users, but allows for re-rendering\nconst FAST_DELAY_FOR_RERENDER = 75;\n// Store the `location` object, allowing for easier stubbing in tests\nlet { location } = window;\n\nfunction scrollToContainer(container) {\n if (location.hash) {\n const $el = $(`${container} ${location.hash}:not(.match)`);\n\n if ($el.length) {\n scrollToElement($el[0]);\n }\n }\n}\n\nfunction mountPipelines() {\n const pipelineTableViewEl = document.querySelector('#commit-pipeline-table-view');\n const { mrWidgetData } = gl;\n const table = new Vue({\n components: {\n MergeRequestPipelinesTable: () => {\n return gon.features.mrPipelinesGraphql\n ? import('~/ci/merge_requests/components/pipelines_table_wrapper.vue')\n : import('~/commit/pipelines/legacy_pipelines_table_wrapper.vue');\n },\n },\n apolloProvider,\n provide: {\n artifactsEndpoint: pipelineTableViewEl.dataset.artifactsEndpoint,\n artifactsEndpointPlaceholder: pipelineTableViewEl.dataset.artifactsEndpointPlaceholder,\n targetProjectFullPath: mrWidgetData?.target_project_full_path || '',\n fullPath: pipelineTableViewEl.dataset.fullPath,\n graphqlPath: pipelineTableViewEl.dataset.graphqlPath,\n manualActionsLimit: 50,\n mergeRequestId: mrWidgetData ? mrWidgetData.iid : null,\n sourceProjectFullPath: mrWidgetData?.source_project_full_path || '',\n useFailedJobsWidget: true,\n },\n render(createElement) {\n return createElement('merge-request-pipelines-table', {\n props: {\n endpoint: pipelineTableViewEl.dataset.endpoint,\n emptyStateSvgPath: pipelineTableViewEl.dataset.emptyStateSvgPath,\n errorStateSvgPath: pipelineTableViewEl.dataset.errorStateSvgPath,\n canCreatePipelineInTargetProject: Boolean(\n mrWidgetData?.can_create_pipeline_in_target_project,\n ),\n sourceProjectFullPath: mrWidgetData?.source_project_full_path || '',\n targetProjectFullPath: mrWidgetData?.target_project_full_path || '',\n projectId: pipelineTableViewEl.dataset.projectId,\n mergeRequestId: mrWidgetData ? mrWidgetData.iid : null,\n isMergeRequestTable: true,\n },\n });\n },\n }).$mount();\n\n // $mount(el) replaces the el with the new rendered component. We need it in order to mount\n // it everytime this tab is clicked - https://vuejs.org/v2/api/#vm-mount\n pipelineTableViewEl.appendChild(table.$el);\n\n return table;\n}\n\nexport function destroyPipelines(app) {\n if (app && app.$destroy) {\n app.$destroy();\n\n document.querySelector('#commit-pipeline-table-view').innerHTML = '';\n }\n\n return null;\n}\n\nfunction loadDiffs({ url, tabs }) {\n return axios.get(url).then(({ data }) => {\n const $container = $('#diffs');\n $container.html(data.html);\n initDiffStatsDropdown();\n\n localTimeAgo(document.querySelectorAll('#diffs .js-timeago'));\n syntaxHighlight($('#diffs .js-syntax-highlight'));\n\n tabs.createDiff();\n tabs.setHubToDiff();\n\n scrollToContainer('#diffs');\n\n $('.diff-file').each((i, el) => {\n new BlobForkSuggestion({\n openButtons: $(el).find('.js-edit-blob-link-fork-toggler'),\n forkButtons: $(el).find('.js-fork-suggestion-button'),\n cancelButtons: $(el).find('.js-cancel-fork-suggestion-button'),\n suggestionSections: $(el).find('.js-file-fork-suggestion-section'),\n actionTextPieces: $(el).find('.js-file-fork-suggestion-section-action'),\n }).init();\n });\n });\n}\n\nexport function toggleLoader(state) {\n $('.mr-loading-status .loading').toggleClass('hide', !state);\n}\n\nexport function getActionFromHref(pathName) {\n let action = pathName.match(/\\/(\\d+)\\/(commits|diffs|pipelines|reports).*$/);\n\n if (action) {\n action = action.at(-1).replace(/(^\\/|\\.html)/g, '');\n } else {\n action = 'show';\n }\n\n return action;\n}\n\nexport const pageBundles = {\n show: () => import(/* webpackPrefetch: true */ '~/mr_notes/mount_app'),\n diffs: () => import(/* webpackPrefetch: true */ '~/diffs'),\n reports: () => import('~/merge_requests/reports'),\n};\n\nexport default class MergeRequestTabs {\n constructor({ action, setUrl, stubLocation } = {}) {\n const containers = document.querySelectorAll('.content-wrapper .container-fluid');\n this.contentWrapper = containers[containers.length - 1];\n this.mergeRequestTabs = document.querySelector('.merge-request-tabs-container');\n this.mergeRequestTabsAll =\n this.mergeRequestTabs && this.mergeRequestTabs.querySelectorAll\n ? this.mergeRequestTabs.querySelectorAll('.merge-request-tabs li')\n : null;\n this.mergeRequestTabPanes = document.querySelector('#diff-notes-app');\n this.mergeRequestTabPanesAll =\n this.mergeRequestTabPanes && this.mergeRequestTabPanes.querySelectorAll\n ? this.mergeRequestTabPanes.querySelectorAll('.tab-pane')\n : null;\n this.navbar = document.querySelector('.navbar-gitlab');\n this.peek = document.getElementById('js-peek');\n this.sidebar = document.querySelector('.js-right-sidebar');\n this.pageLayout = document.querySelector('.layout-page');\n this.expandSidebar = document.querySelectorAll('.js-expand-sidebar, .js-sidebar-toggle');\n this.paddingTop = 16;\n this.actionRegex = /\\/(commits|diffs|pipelines|reports)(\\.html)?\\/?$/;\n\n this.scrollPositions = {};\n\n this.commitsTab = document.querySelector('.tab-content .commits.tab-pane');\n\n this.currentTab = null;\n this.diffsLoaded = false;\n this.diffsClass = null;\n this.commitsLoaded = false;\n this.isFixedLayoutPreferred = this.contentWrapper.classList.contains('container-limited');\n this.eventHub = createEventHub();\n this.loadedPages = { [action]: true };\n\n this.setUrl = setUrl !== undefined ? setUrl : true;\n this.setCurrentAction = this.setCurrentAction.bind(this);\n this.switchViewType = this.switchViewType.bind(this);\n this.tabShown = this.tabShown.bind(this);\n this.clickTab = this.clickTab.bind(this);\n\n if (stubLocation) {\n location = stubLocation;\n }\n\n this.bindEvents();\n this.mergeRequestTabs?.querySelector(`a[data-action='${action}']`)?.click?.();\n }\n\n bindEvents() {\n $('.merge-request-tabs a[data-toggle=\"tabvue\"]').on('click', this.clickTab);\n window.addEventListener('popstate', (event) => {\n if (event?.state?.skipScrolling) return;\n const action = getActionFromHref(window.location.pathname);\n\n this.tabShown(action, location.href);\n this.eventHub.$emit('MergeRequestTabChange', action);\n });\n this.eventHub.$on('diff:switch-view-type', this.switchViewType);\n }\n\n // Used in tests\n unbindEvents() {\n $('.merge-request-tabs a[data-toggle=\"tabvue\"]').off('click', this.clickTab);\n this.eventHub.$off('diff:switch-view-type', this.switchViewType);\n }\n\n storeScroll() {\n if (this.currentTab) {\n this.scrollPositions[this.currentTab] = document.documentElement.scrollTop;\n }\n }\n recallScroll(action) {\n const storedPosition = this.scrollPositions[action];\n if (storedPosition == null) return;\n\n setTimeout(() => {\n window.scrollTo({\n top: storedPosition > 0 ? storedPosition : 0,\n left: 0,\n behavior: 'auto',\n });\n }, FAST_DELAY_FOR_RERENDER);\n }\n\n clickTab(e) {\n if (e.currentTarget) {\n e.stopImmediatePropagation();\n e.preventDefault();\n\n this.storeScroll();\n\n const { action } = e.currentTarget.dataset || {};\n\n if (isMetaClick(e)) {\n const targetLink = e.currentTarget.getAttribute('href');\n visitUrl(targetLink, true);\n } else if (action) {\n const href = e.currentTarget.getAttribute('href');\n this.tabShown(action, href);\n }\n }\n }\n\n tabShown(action, href, shouldScroll = true) {\n toggleLoader(false);\n\n if (action !== this.currentTab && this.mergeRequestTabs) {\n this.currentTab = action;\n if (this.setUrl) {\n this.setCurrentAction(action);\n }\n\n if (this.mergeRequestTabPanesAll) {\n this.mergeRequestTabPanesAll.forEach((el) => {\n const tabPane = el;\n tabPane.style.display = 'none';\n });\n }\n\n if (this.mergeRequestTabsAll) {\n this.mergeRequestTabsAll.forEach((el) => {\n el.classList.remove('active');\n });\n }\n\n const tabPane = this.mergeRequestTabPanes.querySelector(`#${action}`);\n if (tabPane) tabPane.style.display = 'block';\n const tab = this.mergeRequestTabs.querySelector(`.${action}-tab`);\n if (tab) tab.classList.add('active');\n\n if (isInVueNoteablePage() && !this.loadedPages[action] && action in pageBundles) {\n toggleLoader(true);\n pageBundles[action]()\n .then(({ default: init }) => {\n toggleLoader(false);\n init();\n this.loadedPages[action] = true;\n })\n .catch(() => {\n toggleLoader(false);\n createAlert({ message: s__('MergeRequest|Failed to load the page') });\n });\n }\n\n this.expandSidebar?.forEach((el) => el.classList.toggle('!gl-hidden', action !== 'show'));\n\n if (action === 'commits') {\n if (!this.commitsLoaded) {\n this.loadCommits(href);\n }\n // this.hideSidebar();\n this.resetViewContainer();\n this.mergeRequestPipelinesTable = destroyPipelines(this.mergeRequestPipelinesTable);\n } else if (action === 'new') {\n this.expandView();\n this.resetViewContainer();\n this.mergeRequestPipelinesTable = destroyPipelines(this.mergeRequestPipelinesTable);\n } else if (this.isDiffAction(action)) {\n if (!isInVueNoteablePage()) {\n /*\n for pages where we have not yet converted to the new vue\n implementation we load the diff tab content the old way,\n inserting html rendered by the backend.\n\n in practice, this only occurs when comparing commits in\n the new merge request form page.\n */\n this.loadDiff({ endpoint: href, strip: true });\n }\n // this.hideSidebar();\n this.expandViewContainer();\n this.mergeRequestPipelinesTable = destroyPipelines(this.mergeRequestPipelinesTable);\n this.commitsTab.classList.remove('active');\n } else if (action === 'pipelines') {\n // this.hideSidebar();\n this.resetViewContainer();\n this.mountPipelinesView();\n } else if (action === 'reports') {\n this.resetViewContainer();\n } else {\n const notesTab = this.mergeRequestTabs.querySelector('.notes-tab');\n const notesPane = this.mergeRequestTabPanes.querySelector('#notes');\n if (notesPane) {\n notesPane.style.display = 'block';\n }\n if (notesTab) {\n notesTab.classList.add('active');\n }\n\n // this.showSidebar();\n this.resetViewContainer();\n this.mergeRequestPipelinesTable = destroyPipelines(this.mergeRequestPipelinesTable);\n }\n\n renderGFM(document.querySelector('.detail-page-description'));\n\n if (shouldScroll) this.recallScroll(action);\n } else if (action === this.currentAction) {\n // ContentTop is used to handle anything at the top of the page before the main content\n const mainContentContainer = document.querySelector('.content-wrapper');\n const tabContentContainer = document.querySelector('.tab-content');\n\n if (mainContentContainer && tabContentContainer) {\n const mainContentTop = mainContentContainer.getBoundingClientRect().top;\n const tabContentTop = tabContentContainer.getBoundingClientRect().top;\n\n // 51px is the height of the navbar buttons, e.g. `Discussion | Commits | Changes`\n const scrollDestination = tabContentTop - mainContentTop - 51;\n\n // scrollBehavior is only available in browsers that support scrollToOptions\n if ('scrollBehavior' in document.documentElement.style && shouldScroll) {\n window.scrollTo({\n top: scrollDestination,\n behavior: 'smooth',\n });\n } else {\n window.scrollTo(0, scrollDestination);\n }\n }\n }\n\n this.eventHub.$emit('MergeRequestTabChange', action);\n }\n\n // Replaces the current merge request-specific action in the URL with a new one\n //\n // If the action is \"notes\", the URL is reset to the standard\n // `MergeRequests#show` route.\n //\n // Examples:\n //\n // location.pathname # => \"/namespace/project/-/merge_requests/1\"\n // setCurrentAction('diffs')\n // location.pathname # => \"/namespace/project/-/merge_requests/1/diffs\"\n //\n // location.pathname # => \"/namespace/project/-/merge_requests/1/diffs\"\n // setCurrentAction('show')\n // location.pathname # => \"/namespace/project/-/merge_requests/1\"\n //\n // location.pathname # => \"/namespace/project/-/merge_requests/1/diffs\"\n // setCurrentAction('commits')\n // location.pathname # => \"/namespace/project/-/merge_requests/1/commits\"\n //\n // Returns the new URL String\n setCurrentAction(action) {\n this.currentAction = action;\n\n const pathname = location.pathname.replace(/\\/*$/, '');\n\n // Remove a trailing '/commits' '/diffs' '/pipelines'\n let newStatePathname = pathname.replace(this.actionRegex, '');\n\n // Append the new action if we're on a tab other than 'notes'\n if (this.currentAction !== 'show' && this.currentAction !== 'new') {\n newStatePathname += `/${this.currentAction}`;\n }\n\n // Ensure parameters and hash come along for the ride\n const newState = newStatePathname + location.search + location.hash;\n\n if (pathname !== newStatePathname) {\n window.history.pushState(\n {\n url: newState,\n action: this.currentAction,\n },\n document.title,\n newState,\n );\n } else {\n window.history.replaceState(\n {\n url: window.location.href,\n action,\n },\n document.title,\n window.location.href,\n );\n }\n\n return newState;\n }\n\n getCurrentAction() {\n return this.currentAction;\n }\n\n loadCommits(source, page = 1) {\n toggleLoader(true);\n\n axios\n .get(`${source}.json`, { params: { page, per_page: 100 } })\n .then(({ data: { html, count, next_page: nextPage } }) => {\n toggleLoader(false);\n\n document.querySelector('.js-commits-count').textContent = count;\n\n const commitsDiv = document.querySelector('div#commits');\n // eslint-disable-next-line no-unsanitized/property\n commitsDiv.innerHTML += html;\n localTimeAgo(commitsDiv.querySelectorAll('.js-timeago'));\n this.commitsLoaded = true;\n scrollToContainer('#commits');\n\n const loadMoreButton = document.querySelector('.js-load-more-commits');\n\n if (loadMoreButton) {\n loadMoreButton.addEventListener('click', (e) => {\n e.preventDefault();\n\n loadMoreButton.remove();\n this.loadCommits(source, loadMoreButton.dataset.nextPage);\n });\n }\n\n if (!nextPage) {\n return import('./add_context_commits_modal');\n }\n\n return null;\n })\n .then((m) => m?.default())\n .catch(() => {\n toggleLoader(false);\n createAlert({\n message: __('An error occurred while fetching this tab.'),\n });\n });\n }\n\n mountPipelinesView() {\n this.mergeRequestPipelinesTable = mountPipelines();\n }\n\n // load the diff tab content from the backend\n loadDiff({ endpoint, strip = true }) {\n if (this.diffsLoaded) {\n document.dispatchEvent(new CustomEvent('scroll'));\n return;\n }\n\n // We extract pathname for the current Changes tab anchor href\n // some pages like MergeRequestsController#new has query parameters on that anchor\n const diffUrl = strip ? `${parseUrlPathname(endpoint)}.json${location.search}` : endpoint;\n\n loadDiffs({\n url: diffUrl,\n tabs: this,\n })\n .then(() => {\n if (this.isDiffAction(this.currentAction)) {\n this.expandViewContainer();\n }\n\n this.diffsLoaded = true;\n })\n .catch(() => {\n createAlert({\n message: __('An error occurred while fetching this tab.'),\n });\n });\n }\n switchViewType({ source }) {\n this.diffsLoaded = false;\n\n this.loadDiff({ endpoint: source, strip: false });\n }\n createDiff() {\n if (!this.diffsClass) {\n this.diffsClass = new Diff({ mergeRequestEventHub: this.eventHub });\n }\n }\n setHubToDiff() {\n if (this.diffsClass) {\n this.diffsClass.mrHub = this.eventHub;\n }\n }\n\n diffViewType() {\n return $('.js-diff-view-buttons button.active').data('viewType');\n }\n\n isDiffAction(action) {\n return action === 'diffs' || action === 'new/diffs';\n }\n\n expandViewContainer() {\n this.contentWrapper.classList.remove('container-limited');\n this.contentWrapper.classList.add('diffs-container-limited');\n }\n\n resetViewContainer() {\n this.contentWrapper.classList.toggle('container-limited', this.isFixedLayoutPreferred);\n this.contentWrapper.classList.remove('diffs-container-limited');\n }\n\n // Expand the issuable sidebar unless the user explicitly collapsed it\n expandView() {\n if (parseBoolean(getCookie('collapsed_gutter'))) {\n return;\n }\n const $gutterBtn = $('.js-sidebar-toggle');\n const $collapseSvg = $gutterBtn.find('.js-sidebar-collapse');\n\n // Wait until listeners are set\n setTimeout(() => {\n // Only when sidebar is collapsed\n if ($collapseSvg.length && !$collapseSvg.hasClass('hidden')) {\n $gutterBtn.trigger('click', [true]);\n }\n }, 0);\n }\n\n hideSidebar() {\n if (!isInVueNoteablePage() || this.cachedPageLayoutClasses) return;\n\n this.cachedPageLayoutClasses = this.pageLayout.className;\n this.pageLayout.classList.remove('right-sidebar-collapsed', 'right-sidebar-expanded');\n this.sidebar.style.width = '0px';\n }\n\n showSidebar() {\n if (!isInVueNoteablePage() || !this.cachedPageLayoutClasses) return;\n\n this.pageLayout.className = this.cachedPageLayoutClasses;\n this.sidebar.style.width = '';\n delete this.cachedPageLayoutClasses;\n }\n}\n","/* eslint-disable func-names, no-underscore-dangle, consistent-return */\n\nimport $ from 'jquery';\nimport { createAlert } from '~/alert';\nimport { TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { __ } from '~/locale';\nimport { loadingIconForLegacyJS } from '~/loading_icon_for_legacy_js';\nimport MergeRequestTabs from 'jh_else_ce/merge_request_tabs';\nimport axios from './lib/utils/axios_utils';\nimport { addDelimiter } from './lib/utils/text_utility';\nimport { getParameterValues, setUrlParams } from './lib/utils/url_utility';\nimport TaskList from './task_list';\n\nfunction MergeRequest(opts) {\n // Initialize MergeRequest behavior\n //\n // Options:\n // action - String, current controller action\n //\n this.opts = opts != null ? opts : {};\n this.submitNoteForm = this.submitNoteForm.bind(this);\n this.$el = $('.merge-request');\n\n this.initTabs();\n this.initMRBtnListeners();\n\n if ($('.description.js-task-list-container').length) {\n this.taskList = new TaskList({\n dataType: TYPE_MERGE_REQUEST,\n fieldName: 'description',\n selector: '.detail-page-description',\n lockVersion: this.$el.data('lockVersion'),\n onSuccess: (result) => {\n const taskStatus = document.querySelector('#task_status');\n const taskStatusShort = document.querySelector('#task_status_short');\n\n if (taskStatus) {\n taskStatus.innerText = result.task_status;\n }\n\n if (taskStatusShort) {\n document.querySelector('#task_status_short').innerText = result.task_status_short;\n }\n },\n onError: () => {\n createAlert({\n message: __(\n 'Someone edited this merge request at the same time you did. Please refresh the page to see changes.',\n ),\n });\n },\n });\n }\n}\n\n// Local jQuery finder\nMergeRequest.prototype.$ = function (selector) {\n return this.$el.find(selector);\n};\n\nMergeRequest.prototype.initTabs = function () {\n if (window.mrTabs) {\n window.mrTabs.unbindEvents();\n }\n\n window.mrTabs = new MergeRequestTabs(this.opts);\n};\n\nMergeRequest.prototype.initMRBtnListeners = function () {\n const _this = this;\n const draftToggles = document.querySelectorAll('.js-draft-toggle-button');\n\n if (draftToggles.length) {\n draftToggles.forEach((draftToggle) => {\n draftToggle.addEventListener('click', (e) => {\n e.preventDefault();\n e.stopImmediatePropagation();\n\n const url = draftToggle.href;\n const wipEvent = getParameterValues('merge_request[wip_event]', url)[0];\n const mobileDropdown = draftToggle.closest('.dropdown.show');\n\n const loader = loadingIconForLegacyJS({ inline: true, classes: ['gl-mr-3'] });\n\n if (mobileDropdown) {\n $(mobileDropdown.firstElementChild).dropdown('toggle');\n }\n\n draftToggle.setAttribute('disabled', 'disabled');\n draftToggle.prepend(loader);\n\n axios\n .put(draftToggle.href, null, { params: { format: 'json' } })\n .then(({ data }) => {\n draftToggle.removeAttribute('disabled');\n\n MergeRequest.toggleDraftStatus(data.title, wipEvent === 'ready');\n })\n .catch(() => {\n createAlert({\n message: __('Something went wrong. Please try again.'),\n });\n })\n .finally(() => {\n draftToggle.removeAttribute('disabled');\n loader.remove();\n });\n });\n });\n }\n\n return $('.btn-close, .btn-reopen').on('click', function (e) {\n const $this = $(this);\n const shouldSubmit = $this.hasClass('btn-comment');\n if (shouldSubmit && $this.data('submitted')) {\n return;\n }\n\n if (shouldSubmit) {\n if ($this.hasClass('btn-comment-and-close') || $this.hasClass('btn-comment-and-reopen')) {\n e.preventDefault();\n e.stopImmediatePropagation();\n\n _this.submitNoteForm($this.closest('form'), $this);\n }\n }\n });\n};\n\nMergeRequest.prototype.submitNoteForm = function (form, $button) {\n const noteText = form.find('textarea.js-note-text').val();\n if (noteText.trim().length > 0) {\n form.submit();\n $button.data('submitted', true);\n return $button.trigger('click');\n }\n};\n\nMergeRequest.decreaseCounter = function (by = 1) {\n const $el = $('.js-merge-counter');\n const count = Math.max(parseInt($el.first().text().replace(/[^\\d]/, ''), 10) - by, 0);\n\n $el.text(addDelimiter(count));\n};\n\nMergeRequest.toggleDraftStatus = function (title, isReady) {\n if (isReady) {\n toast(__('Marked as ready. Merging is now allowed.'));\n } else {\n toast(__('Marked as draft. Can only be merged when marked as ready.'));\n }\n const titleEl = document.querySelector(`.merge-request .detail-page-header .title`);\n\n if (titleEl) {\n titleEl.textContent = title;\n }\n\n const draftToggles = document.querySelectorAll('.js-draft-toggle-button');\n\n if (draftToggles.length) {\n draftToggles.forEach((el) => {\n const draftToggle = el;\n const url = setUrlParams(\n { 'merge_request[wip_event]': isReady ? 'draft' : 'ready' },\n draftToggle.href,\n );\n\n draftToggle.setAttribute('href', url);\n draftToggle.querySelector('.gl-dropdown-item-text-wrapper').textContent = isReady\n ? __('Mark as draft')\n : __('Mark as ready');\n });\n }\n};\n\nexport default MergeRequest;\n","import { __, s__ } from '~/locale';\nimport { REPORT_TYPE_SECRET_DETECTION } from '~/vue_shared/security_reports/constants';\n\nexport const DEFAULT_AGENT_NAME = '';\nexport const AGENT_KEY = 'agents';\n\nexport const SCAN_EXECUTION_RULES_PIPELINE_KEY = 'pipeline';\nexport const SCAN_EXECUTION_RULES_SCHEDULE_KEY = 'schedule';\n\nexport const SCAN_EXECUTION_RULES_LABELS = {\n [SCAN_EXECUTION_RULES_PIPELINE_KEY]: s__('ScanExecutionPolicy|Triggers:'),\n [SCAN_EXECUTION_RULES_SCHEDULE_KEY]: s__('ScanExecutionPolicy|Schedules:'),\n};\n\nexport const ADD_CONDITION_LABEL = s__('ScanExecutionPolicy|Add new condition');\nexport const CONDITIONS_LABEL = s__('ScanExecutionPolicy|Conditions');\n\nexport const SCAN_EXECUTION_PIPELINE_RULE = 'pipeline';\nexport const SCAN_EXECUTION_SCHEDULE_RULE = 'schedule';\n\nexport const SCAN_EXECUTION_RULE_SCOPE_BRANCH_KEY = 'branch';\nexport const SCAN_EXECUTION_RULE_SCOPE_AGENT_KEY = 'agent';\nexport const SCAN_EXECUTION_RULE_SCOPE_TYPE = {\n [SCAN_EXECUTION_RULE_SCOPE_BRANCH_KEY]: s__('ScanExecutionPolicy|branch'),\n [SCAN_EXECUTION_RULE_SCOPE_AGENT_KEY]: s__('ScanExecutionPolicy|agent'),\n};\n\nexport const SCAN_EXECUTION_RULE_PERIOD_DAILY_KEY = 'daily';\nexport const SCAN_EXECUTION_RULE_PERIOD_WEEKLY_KEY = 'weekly';\nexport const SCAN_EXECUTION_RULE_PERIOD_TYPE = {\n [SCAN_EXECUTION_RULE_PERIOD_DAILY_KEY]: __('daily'),\n [SCAN_EXECUTION_RULE_PERIOD_WEEKLY_KEY]: __('weekly'),\n};\n\nexport const ACTION_RUNNER_TAG_MODE_SPECIFIC_TAG_KEY = 'specific_tag';\nexport const ACTION_RUNNER_TAG_MODE_SELECTED_AUTOMATICALLY_KEY = 'selected_automatically';\n\nexport const TAGS_MODE_SELECTED_ITEMS = [\n {\n text: s__('ScanExecutionPolicy|has specific tag'),\n value: ACTION_RUNNER_TAG_MODE_SPECIFIC_TAG_KEY,\n },\n {\n text: s__('ScanExecutionPolicy|selected automatically'),\n value: ACTION_RUNNER_TAG_MODE_SELECTED_AUTOMATICALLY_KEY,\n },\n];\n\nexport const DEFAULT_SCANNER = REPORT_TYPE_SECRET_DETECTION;\n\nexport const SCANNER_HUMANIZED_TEMPLATE = s__(\n 'ScanExecutionPolicy|Run a %{scan} scan with the following options:',\n);\n\nexport const SCANNER_HUMANIZED_TEMPLATE_ALT = s__(\n 'ScanExecutionPolicy|Run %{scan} with the following options:',\n);\n\nexport const POLICY_ACTION_BUILDER_TAGS_ERROR_KEY = 'tags';\nexport const POLICY_ACTION_BUILDER_DAST_PROFILES_ERROR_KEY = 'profiles';\n\nexport const RUNNER_TAGS_PARSING_ERROR = s__(\n 'SecurityOrchestration|Non-existing tags have been detected in the policy yaml. As a result, rule mode has been disabled. To enable rule mode, remove those non-existing tags from the policy yaml.',\n);\n\nexport const DAST_SCANNERS_PARSING_ERROR = s__(\n 'SecurityOrchestration|Non-existing DAST profiles have been detected in the policy yaml. As a result, rule mode has been disabled. To enable rule mode, remove those non-existing profiles from the policy yaml.',\n);\n\nexport const ERROR_MESSAGE_MAP = {\n [POLICY_ACTION_BUILDER_TAGS_ERROR_KEY]: RUNNER_TAGS_PARSING_ERROR,\n [POLICY_ACTION_BUILDER_DAST_PROFILES_ERROR_KEY]: DAST_SCANNERS_PARSING_ERROR,\n};\n","'use strict';\n\nvar Type = require('../type');\n\nvar YAML_DATE_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9])' + // [2] month\n '-([0-9][0-9])$'); // [3] day\n\nvar YAML_TIMESTAMP_REGEXP = new RegExp(\n '^([0-9][0-9][0-9][0-9])' + // [1] year\n '-([0-9][0-9]?)' + // [2] month\n '-([0-9][0-9]?)' + // [3] day\n '(?:[Tt]|[ \\\\t]+)' + // ...\n '([0-9][0-9]?)' + // [4] hour\n ':([0-9][0-9])' + // [5] minute\n ':([0-9][0-9])' + // [6] second\n '(?:\\\\.([0-9]*))?' + // [7] fraction\n '(?:[ \\\\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour\n '(?::([0-9][0-9]))?))?$'); // [11] tz_minute\n\nfunction resolveYamlTimestamp(data) {\n if (data === null) return false;\n if (YAML_DATE_REGEXP.exec(data) !== null) return true;\n if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true;\n return false;\n}\n\nfunction constructYamlTimestamp(data) {\n var match, year, month, day, hour, minute, second, fraction = 0,\n delta = null, tz_hour, tz_minute, date;\n\n match = YAML_DATE_REGEXP.exec(data);\n if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data);\n\n if (match === null) throw new Error('Date resolve error');\n\n // match: [1] year [2] month [3] day\n\n year = +(match[1]);\n month = +(match[2]) - 1; // JS month starts with 0\n day = +(match[3]);\n\n if (!match[4]) { // no hour\n return new Date(Date.UTC(year, month, day));\n }\n\n // match: [4] hour [5] minute [6] second [7] fraction\n\n hour = +(match[4]);\n minute = +(match[5]);\n second = +(match[6]);\n\n if (match[7]) {\n fraction = match[7].slice(0, 3);\n while (fraction.length < 3) { // milli-seconds\n fraction += '0';\n }\n fraction = +fraction;\n }\n\n // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute\n\n if (match[9]) {\n tz_hour = +(match[10]);\n tz_minute = +(match[11] || 0);\n delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds\n if (match[9] === '-') delta = -delta;\n }\n\n date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction));\n\n if (delta) date.setTime(date.getTime() - delta);\n\n return date;\n}\n\nfunction representYamlTimestamp(object /*, style*/) {\n return object.toISOString();\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:timestamp', {\n kind: 'scalar',\n resolve: resolveYamlTimestamp,\n construct: constructYamlTimestamp,\n instanceOf: Date,\n represent: representYamlTimestamp\n});\n","import { getSel, isElement } from '../../../utils/dom';\n\n// Helper to determine if a there is an active text selection on the document page\n// Used to filter out click events caused by the mouse up at end of selection\n//\n// Accepts an element as only argument to test to see if selection overlaps or is\n// contained within the element\nconst textSelectionActive = function () {\n let el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n const sel = getSel();\n return sel && sel.toString().trim() !== '' && sel.containsNode && isElement(el) ? /* istanbul ignore next */sel.containsNode(el, true) : false;\n};\n\nexport { textSelectionActive };\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"PromoteTimelineEvent\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"TimelineEventPromoteFromNoteInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEventPromoteFromNote\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"timelineEvent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":176}};\n doc.loc.source = {\"body\":\"mutation PromoteTimelineEvent($input: TimelineEventPromoteFromNoteInput!) {\\n timelineEventPromoteFromNote(input: $input) {\\n timelineEvent {\\n id\\n }\\n errors\\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[\"PromoteTimelineEvent\"] = oneQuery(doc, \"PromoteTimelineEvent\");\n \n","var baseClamp = require('./_baseClamp'),\n toNumber = require('./toNumber');\n\n/**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\nfunction clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n}\n\nmodule.exports = clamp;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSetWeight\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueSetWeightInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetWeight\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetWeight\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":176}};\n doc.loc.source = {\"body\":\"mutation issueSetWeight($input: IssueSetWeightInput!) {\\n issuableSetWeight: issueSetWeight(input: $input) {\\n issuable: issue {\\n id\\n weight\\n }\\n errors\\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[\"issueSetWeight\"] = oneQuery(doc, \"issueSetWeight\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueCrmContacts\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"CrmContacts\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":133}};\n doc.loc.source = {\"body\":\"#import \\\"./issue_crm_contacts.fragment.graphql\\\"\\n\\nquery issueCrmContacts($id: IssueID!) {\\n issue(id: $id) {\\n ...CrmContacts\\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(\"./issue_crm_contacts.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[\"issueCrmContacts\"] = oneQuery(doc, \"issueCrmContacts\");\n \n","import isNumber from 'lodash/isNumber';\nimport isString from 'lodash/isString';\n\nconst isOption = item => Boolean(item) && (isString(item.value) || isNumber(item.value));\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst isGroup = function () {\n let {\n options\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return Array.isArray(options) && options.every(isOption);\n};\nconst hasNoDuplicates = array => array.length === new Set(array).size;\nconst flattenedOptions = items => items.flatMap(item => isOption(item) ? item : item.options);\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst isAllOptionsOrAllGroups = items => items.every(isOption) || items.every(isGroup);\nconst hasUniqueValues = items => hasNoDuplicates(flattenedOptions(items).map(_ref => {\n let {\n value\n } = _ref;\n return value;\n}));\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst hasUniqueGroups = items => hasNoDuplicates(items.filter(isGroup).map(_ref2 => {\n let {\n text\n } = _ref2;\n return text;\n}));\nconst itemsValidator = items => isAllOptionsOrAllGroups(items) && hasUniqueValues(items) && hasUniqueGroups(items);\n\nexport { flattenedOptions, isOption, itemsValidator };\n","import { localeDateFormat } from '~/lib/utils/datetime_utility';\nimport { newDate } from '~/lib/utils/datetime/date_calculation_utility';\n\n/**\n * The first argument is two date strings in formatted in ISO 8601 (YYYY-MM-DD)\n * If the startDate year is the same as the current year, the start date\n * year is omitted.\n *\n * The second argument is a boolean switch that determines whether the\n * iteration period should be formatted for use in an issue or not. There are\n * intended design differences in the way the period is formatted for uses like\n * a board issue card or the issue sidebar. This argument is optional and\n * defaults to false.\n *\n * @returns {string}\n *\n * ex. \"Oct 1, 2021 - Oct 10, 2022\" if start and due dates have different years, regardless of current year.\n *\n * \"Oct 1 - 10, 2021\" if start and due dates are both in 2021, current year === 2021.\n */\nexport function getIterationPeriod({ startDate, dueDate }) {\n return localeDateFormat.asDate.formatRange(newDate(startDate), newDate(dueDate));\n}\n\n/**\n * Sort iteration cadences by the specified field\n */\nconst sortCadences = (cadences, sortBy) => {\n return cadences.sort((a, b) => {\n const titleA = a[sortBy].toLowerCase();\n const titleB = b[sortBy].toLowerCase();\n return titleA.localeCompare(titleB);\n });\n};\n\n/**\n * Group a list of iterations by cadence.\n *\n * @param iterations A list of iterations\n * @return {Array} A list of cadences\n */\nexport function groupByIterationCadences(iterations) {\n const cadences = [];\n iterations.forEach((iteration) => {\n if (!iteration.iterationCadence) {\n return;\n }\n const { title, id } = iteration.iterationCadence;\n const cadenceIteration = {\n id: iteration.id,\n title: iteration.title,\n period: getIterationPeriod(iteration),\n };\n const cadence = cadences.find((c) => c.title === title);\n if (cadence) {\n cadence.iterations.push(cadenceIteration);\n } else {\n cadences.push({ title, iterations: [cadenceIteration], id });\n }\n });\n return sortCadences(cadences, 'title');\n}\n\nexport function groupOptionsByIterationCadences(iterations) {\n const cadences = [];\n iterations.forEach((iteration) => {\n if (!iteration.iterationCadence) {\n return;\n }\n const { title } = iteration.iterationCadence;\n const cadenceIteration = {\n value: iteration.id,\n title: iteration.title,\n text: getIterationPeriod(iteration),\n };\n const cadence = cadences.find((c) => c.text === title);\n if (cadence) {\n cadence.options.push(cadenceIteration);\n } else {\n cadences.push({ text: title, options: [cadenceIteration] });\n }\n });\n return sortCadences(cadences, 'text');\n}\n","export const CHANGES_TAB = 'diffs';\nexport const DISCUSSION_TAB = 'notes';\nexport const SHOW_TAB = 'show';\n\nexport const REVIEW_BAR_VISIBLE_CLASS_NAME = 'review-bar-visible';\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"issueCrmContactsUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issueCrmContactsUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"CrmContacts\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":203}};\n doc.loc.source = {\"body\":\"#import \\\"./issue_crm_contacts.fragment.graphql\\\"\\n\\nsubscription issueCrmContactsUpdated($id: IssuableID!) {\\n issueCrmContactsUpdated(issuableId: $id) {\\n ... on Issue {\\n ...CrmContacts\\n }\\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(\"./issue_crm_contacts.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[\"issueCrmContactsUpdated\"] = oneQuery(doc, \"issueCrmContactsUpdated\");\n \n","import { __ } from '~/locale';\nimport {\n MATCH_LINE_TYPE,\n CONTEXT_LINE_TYPE,\n LINE_HOVER_CLASS_NAME,\n OLD_NO_NEW_LINE_TYPE,\n NEW_NO_NEW_LINE_TYPE,\n EMPTY_CELL_TYPE,\n CONFLICT_MARKER_OUR,\n CONFLICT_MARKER_THEIR,\n CONFLICT_THEIR,\n CONFLICT_OUR,\n EXPANDED_LINE_TYPE,\n} from '../constants';\n\nexport const isHighlighted = (highlightedRow, line, isCommented) => {\n if (isCommented) return true;\n\n const lineCode = line?.line_code;\n return lineCode ? lineCode === highlightedRow : false;\n};\n\nexport const isContextLine = (type) => type === CONTEXT_LINE_TYPE;\n\nexport const isMatchLine = (type) => type === MATCH_LINE_TYPE;\n\nexport const isMetaLine = (type) =>\n [OLD_NO_NEW_LINE_TYPE, NEW_NO_NEW_LINE_TYPE, EMPTY_CELL_TYPE].includes(type);\n\nexport const shouldRenderCommentButton = (isLoggedIn, isCommentButtonRendered) => {\n return isCommentButtonRendered && isLoggedIn;\n};\n\nexport const hasDiscussions = (line) => line?.discussions?.length > 0;\n\nexport const fileContentsId = (diffFile) => {\n return `diff-content-${diffFile.file_hash}`;\n};\n\nconst createDiffUrl = (diffFile) => {\n const url = new URL(window.location);\n url.searchParams.set('file', diffFile.file_hash);\n return url;\n};\n\nexport const createFileUrl = (diffFile) => {\n const url = createDiffUrl(diffFile);\n url.hash = fileContentsId(diffFile);\n return url;\n};\n\nexport const lineHref = (line, diffFile) => {\n if (!line || !line.line_code) return '';\n const url = createDiffUrl(diffFile);\n url.hash = line.line_code;\n return url.toString();\n};\n\nexport const lineCode = (line) => {\n if (!line) return undefined;\n return line.line_code || line.left?.line_code || line.right?.line_code;\n};\n\nexport const classNameMapCell = ({\n line,\n highlighted,\n commented,\n selectionStart,\n selectionEnd,\n isLoggedIn,\n isHover,\n}) => {\n const classes = {\n 'highlight-top': highlighted || selectionStart,\n 'highlight-bottom': highlighted || selectionEnd,\n hll: highlighted,\n commented,\n };\n\n if (line) {\n const { type } = line;\n Object.assign(classes, {\n [type]: true,\n [LINE_HOVER_CLASS_NAME]: isLoggedIn && isHover && !isContextLine(type) && !isMetaLine(type),\n old_line: type === 'old',\n new_line: type === 'new',\n });\n }\n\n return [classes];\n};\n\nexport const addCommentTooltip = (line) => {\n let tooltip;\n if (!line) {\n return tooltip;\n }\n\n tooltip = __('Add a comment to this line or drag for multiple lines');\n\n if (!line.problems) {\n return tooltip;\n }\n\n const { brokenSymlink, brokenLineCode, fileOnlyMoved } = line.problems;\n\n if (brokenSymlink) {\n if (brokenSymlink.wasSymbolic || brokenSymlink.isSymbolic) {\n tooltip = __(\n 'Commenting on symbolic links that replace or are replaced by files is not supported',\n );\n } else if (brokenSymlink.wasReal || brokenSymlink.isReal) {\n tooltip = __(\n 'Commenting on files that replace or are replaced by symbolic links is not supported',\n );\n }\n } else if (fileOnlyMoved) {\n tooltip = __('Commenting on files that are only moved or renamed is not supported');\n } else if (brokenLineCode) {\n tooltip = __('Commenting on this line is not supported');\n }\n\n return tooltip;\n};\n\nexport const parallelViewLeftLineType = ({\n line,\n highlighted,\n commented,\n selectionStart,\n selectionEnd,\n}) => {\n if (line?.right?.type === NEW_NO_NEW_LINE_TYPE) {\n return OLD_NO_NEW_LINE_TYPE;\n }\n\n const lineTypeClass = line?.left ? line.left.type : EMPTY_CELL_TYPE;\n\n return [\n lineTypeClass,\n {\n hll: highlighted,\n commented,\n 'highlight-top': highlighted || selectionStart,\n 'highlight-bottom': highlighted || selectionEnd,\n },\n ];\n};\n\n// eslint-disable-next-line max-params\nexport const shouldShowCommentButton = (hover, context, meta, discussions) => {\n return hover && !context && !meta && !discussions;\n};\n\nexport const mapParallel =\n ({ diffFile, hasParallelDraftLeft, hasParallelDraftRight, draftsForLine }) =>\n (line) => {\n let { left, right } = line;\n\n // Dicussions/Comments\n const hasExpandedDiscussionOnLeft =\n left?.discussions?.length > 0 ? left?.discussionsExpanded : false;\n const hasExpandedDiscussionOnRight =\n right?.discussions?.length > 0 ? right?.discussionsExpanded : false;\n\n const renderCommentRow =\n hasExpandedDiscussionOnLeft ||\n hasExpandedDiscussionOnRight ||\n left?.hasForm ||\n right?.hasForm;\n\n if (left) {\n left = {\n ...left,\n renderDiscussion: hasExpandedDiscussionOnLeft,\n hasDraft: hasParallelDraftLeft(diffFile.file_hash, line),\n lineDrafts: draftsForLine(diffFile.file_hash, line, 'left'),\n hasCommentForm: left.hasForm,\n isConflictMarker:\n line.left.type === CONFLICT_MARKER_OUR || line.left.type === CONFLICT_MARKER_THEIR,\n emptyCellClassMap: { conflict_our: line.right?.type === CONFLICT_THEIR },\n addCommentTooltip: addCommentTooltip(line.left),\n };\n }\n if (right) {\n right = {\n ...right,\n renderDiscussion: Boolean(\n hasExpandedDiscussionOnRight && right.type && right.type !== EXPANDED_LINE_TYPE,\n ),\n hasDraft: hasParallelDraftRight(diffFile.file_hash, line),\n lineDrafts: draftsForLine(diffFile.file_hash, line, 'right'),\n hasCommentForm: Boolean(right.hasForm && right.type && right.type !== EXPANDED_LINE_TYPE),\n emptyCellClassMap: { conflict_their: line.left?.type === CONFLICT_OUR },\n addCommentTooltip: addCommentTooltip(line.right),\n };\n }\n\n return {\n ...line,\n left,\n right,\n isMatchLineLeft: isMatchLine(left?.type),\n isMatchLineRight: isMatchLine(right?.type),\n isContextLineLeft: isContextLine(left?.type),\n isContextLineRight: isContextLine(right?.type),\n hasDiscussionsLeft: hasDiscussions(left),\n hasDiscussionsRight: hasDiscussions(right),\n lineHrefOld: lineHref(left, diffFile),\n lineHrefNew: lineHref(right, diffFile),\n lineCode: lineCode(line),\n isMetaLineLeft: isMetaLine(left?.type),\n isMetaLineRight: isMetaLine(right?.type),\n draftRowClasses: left?.hasDraft || right?.hasDraft ? '' : 'js-temp-notes-holder',\n renderCommentRow,\n commentRowClasses:\n hasDiscussions(left) || hasDiscussions(right) ? '' : 'js-temp-notes-holder',\n };\n };\n","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"dropdown-footer\"}},[(_vm.allowLabelCreate)?_c('gl-dropdown-item',{attrs:{\"data-testid\":\"create-label-button\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.$emit('toggleDropdownContentsCreateView')}}},[_vm._v(\"\\n \"+_vm._s(_vm.footerCreateLabelTitle)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showManageLabelsItem)?_c('gl-dropdown-item',{attrs:{\"data-testid\":\"manage-labels-button\",\"href\":_vm.labelsManagePath},nativeOn:{\"!click\":function($event){$event.stopPropagation();}}},[_vm._v(\"\\n \"+_vm._s(_vm.footerManageLabelTitle)+\"\\n \")]):_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!./dropdown_footer.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!./dropdown_footer.vue?vue&type=script&lang=js\"","<script>\nimport { GlDropdownItem } from '@gitlab/ui';\n\nexport default {\n components: {\n GlDropdownItem,\n },\n inject: ['allowLabelCreate', 'labelsManagePath'],\n props: {\n footerCreateLabelTitle: {\n type: String,\n required: true,\n },\n footerManageLabelTitle: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n showManageLabelsItem() {\n return this.footerManageLabelTitle && this.labelsManagePath;\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"dropdown-footer\">\n <gl-dropdown-item\n v-if=\"allowLabelCreate\"\n data-testid=\"create-label-button\"\n @click.capture.native.stop=\"$emit('toggleDropdownContentsCreateView')\"\n >\n {{ footerCreateLabelTitle }}\n </gl-dropdown-item>\n <gl-dropdown-item\n v-if=\"showManageLabelsItem\"\n data-testid=\"manage-labels-button\"\n :href=\"labelsManagePath\"\n @click.capture.native.stop\n >\n {{ footerManageLabelTitle }}\n </gl-dropdown-item>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_footer.vue?vue&type=template&id=77bef9ca\"\nimport script from \"./dropdown_footer.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_footer.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 { joinPaths } from '~/lib/utils/url_utility';\n\n/**\n * Tell webpack to load assets from origin so that web workers don't break\n * See https://gitlab.com/gitlab-org/gitlab/-/issues/321656 for a fix\n */\nexport function resetServiceWorkersPublicPath() {\n // No-op if we're running Vite instead of Webpack\n if (typeof __webpack_public_path__ === 'undefined') return; // eslint-disable-line camelcase\n // __webpack_public_path__ is a global variable that can be used to adjust\n // the webpack publicPath setting at runtime.\n // see: https://webpack.js.org/guides/public-path/\n const relativeRootPath = (gon && gon.relative_url_root) || '';\n __webpack_public_path__ = joinPaths(relativeRootPath, '/assets/webpack/'); // eslint-disable-line camelcase\n}\n","/**\n * Checks if `value` is `null` or `undefined`.\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 nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\nfunction isNil(value) {\n return value == null;\n}\n\nmodule.exports = isNil;\n","import { extend } from '../../vue';\nimport { NAME_TFOOT } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n // Supported values: 'lite', 'dark', or null\n footVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_TFOOT);\n\n// --- Main component ---\n\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\nconst BTfoot = /*#__PURE__*/extend({\n name: NAME_TFOOT,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide() {\n return {\n getBvTableRowGroup: () => this\n };\n },\n inject: {\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n getBvTable: {\n default: /* istanbul ignore next */() => () => ({})\n }\n },\n inheritAttrs: false,\n props,\n computed: {\n bvTable() {\n return this.getBvTable();\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n isTfoot() {\n return true;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n // Sticky headers are only supported in thead\n isStickyHeader() {\n return false;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n tableVariant() {\n return this.bvTable.tableVariant;\n },\n tfootClasses() {\n return [this.footVariant ? `thead-${this.footVariant}` : null];\n },\n tfootAttrs() {\n return {\n ...this.bvAttrs,\n role: 'rowgroup'\n };\n }\n },\n render(h) {\n return h('tfoot', {\n class: this.tfootClasses,\n attrs: this.tfootAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});\n\nexport { BTfoot, props };\n","import {\n getTimeago,\n localeDateFormat,\n newDate,\n timeagoLanguageCode,\n} from '~/lib/utils/datetime_utility';\n\n/**\n * Mixin with time ago methods used in some vue components\n */\nexport default {\n methods: {\n timeFormatted(time, format) {\n const timeago = getTimeago(format);\n\n return timeago.format(newDate(time), timeagoLanguageCode);\n },\n\n tooltipTitle(time) {\n return localeDateFormat.asDateTimeFull.format(newDate(time));\n },\n },\n};\n","export const LOADING = 'LOADING';\nexport const ERROR = 'ERROR';\nexport const SUCCESS = 'SUCCESS';\n\nexport const STATUS_FAILED = 'failed';\nexport const STATUS_SUCCESS = 'success';\nexport const STATUS_NEUTRAL = 'neutral';\nexport const STATUS_NOT_FOUND = 'not_found';\n\nexport const status = {\n LOADING,\n ERROR,\n SUCCESS,\n};\n\n/**\n * Slot names for the ReportSection component, corresponding to the success,\n * loading and error statuses.\n */\nexport const SLOT_SUCCESS = 'success';\nexport const SLOT_LOADING = 'loading';\nexport const SLOT_ERROR = 'error';\n\nexport const CODE_QUALITY_SCALE_KEY = 'codeQuality';\nexport const SAST_SCALE_KEY = 'sast';\n","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptUndefined() {\n return true;\n}\n\nfunction constructJavascriptUndefined() {\n /*eslint-disable no-undefined*/\n return undefined;\n}\n\nfunction representJavascriptUndefined() {\n return '';\n}\n\nfunction isUndefined(object) {\n return typeof object === 'undefined';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/undefined', {\n kind: 'scalar',\n resolve: resolveJavascriptUndefined,\n construct: constructJavascriptUndefined,\n predicate: isUndefined,\n represent: representJavascriptUndefined\n});\n","import { isEmpty } from 'lodash';\nimport { safeLoad } from 'js-yaml';\nimport {\n EXCLUDING,\n INCLUDING,\n} from 'ee/security_orchestration/components/policy_editor/scope/constants';\nimport { NAMESPACE_TYPES } from 'ee/security_orchestration/constants';\nimport {\n REPORT_TYPE_DEPENDENCY_SCANNING,\n REPORT_TYPE_CONTAINER_SCANNING,\n} from '~/vue_shared/security_reports/constants';\nimport { SCAN_EXECUTION_RULES_SCHEDULE_KEY } from 'ee/security_orchestration/components/policy_editor/scan_execution/constants';\nimport { POLICY_TYPE_COMPONENT_OPTIONS } from './constants';\n\nexport const isPolicyInherited = (source) => source?.inherited === true;\n\nexport const policyHasNamespace = (source) => Boolean(source?.namespace);\n\n/**\n * @param policyScope policy scope object on security policy\n * @returns {Boolean}\n */\nexport const isDefaultMode = (policyScope) => {\n const {\n complianceFrameworks: { nodes: frameworks } = {},\n excludingProjects: { nodes: excluding } = {},\n includingProjects: { nodes: including } = {},\n } = policyScope || {};\n\n const noScope = (items) => items?.length === 0;\n const existingDefaultScope = noScope(frameworks) && noScope(excluding) && noScope(including);\n\n return (\n policyScope === undefined ||\n policyScope === null ||\n isEmpty(policyScope) ||\n existingDefaultScope\n );\n};\n\n/**\n * Returns true if police scope has projects that are excluded from it\n * @param policyScope policy scope object on security policy\n * @returns {boolean}\n */\nexport const policyScopeHasExcludingProjects = (policyScope = {}) => {\n const { excludingProjects: { nodes: excluding = [] } = {} } = policyScope || {};\n return excluding?.filter(Boolean).length > 0;\n};\n\n/**\n * Returns true if policy scope applies to specific projects\n * @param policyScope policy scope object on security policy\n * @returns {boolean}\n */\nexport const policyScopeHasIncludingProjects = (policyScope = {}) => {\n const { includingProjects: { nodes: including = [] } = {} } = policyScope || {};\n return including?.filter(Boolean).length > 0;\n};\n\n/**\n * Based on existence excluding or including projects on policy scope\n * return appropriate key\n * @param policyScope policyScope policy scope object on security policy\n * @returns {string|INCLUDING|EXCLUDING}\n */\nexport const policyScopeProjectsKey = (policyScope = {}) => {\n return policyScopeHasIncludingProjects(policyScope) ? INCLUDING : EXCLUDING;\n};\n\n/**\n * Based on existence including groups on policy scope\n * return appropriate key\n * @param {Object} policyScope policy scope object on security policy\n * @returns {boolean}\n */\nexport const policyScopeHasGroups = (policyScope = {}) => {\n const { includingGroups: { nodes = [] } = {} } = policyScope || {};\n return nodes?.filter(Boolean).length > 0;\n};\n\n/**\n * Number of linked to policy scope projects\n * @param policyScope policyScope policy scope object on security policy\n * @returns {Number}\n */\nexport const policyScopeProjectLength = (policyScope = {}) => {\n return (\n policyScope?.[`${policyScopeProjectsKey(policyScope)}Projects`]?.nodes?.filter(Boolean)\n .length || 0\n );\n};\n\n/**\n * Check if policy scope has compliance frameworks\n * @param policyScope policyScope policy scope object on security policy\n * @returns {boolean}\n */\nexport const policyScopeHasComplianceFrameworks = (policyScope = {}) => {\n const { complianceFrameworks: { nodes = [] } = {} } = policyScope || {};\n return nodes?.filter(Boolean).length > 0;\n};\n\n/**\n * Extract ids from including groups\n * @param policyScope policyScope policy scope object on security policy\n * @returns {Array}\n */\nexport const policyScopeGroups = (policyScope = {}) => {\n return policyScope?.includingGroups?.nodes || [];\n};\n\n/**\n * Extract ids from excluding projects\n * @param policyScope policyScope policy scope object on security policy\n * @returns {Array}\n */\nexport const policyExcludingProjects = (policyScope = {}) => {\n return policyScope?.excludingProjects?.nodes || [];\n};\n\n/**\n * Extract ids from compliance frameworks\n * @param policyScope policyScope policy scope object on security policy\n * @returns {Array}\n */\nexport const policyScopeComplianceFrameworks = (policyScope = {}) => {\n return policyScope?.complianceFrameworks?.nodes || [];\n};\n\n/**\n * Extract ids from projects\n * @param policyScope policyScope policy scope object on security policy\n * @returns {Object}\n */\nexport const policyScopeProjects = (policyScope = {}) => {\n const { nodes = [], pageInfo = {} } =\n policyScope?.[`${policyScopeProjectsKey(policyScope)}Projects`] || {};\n return {\n projects: nodes,\n pageInfo,\n };\n};\n\n/**\n * Check if namespace is a project type\n * @param namespaceType\n * @returns {boolean}\n */\nexport const isProject = (namespaceType) => namespaceType === NAMESPACE_TYPES.PROJECT;\n\n/**\n * Check if namespace is a group type\n * @param namespaceType\n * @returns {boolean}\n */\nexport const isGroup = (namespaceType) => namespaceType === NAMESPACE_TYPES.GROUP;\n\n/**\n * Returns if scanner has \"scanning\" in it\n * @param {string} scanner\n * @returns {boolean}\n */\nexport const isScanningReport = (scanner) =>\n [REPORT_TYPE_CONTAINER_SCANNING, REPORT_TYPE_DEPENDENCY_SCANNING].includes(scanner);\n\n/**\n * Parses the policy from yaml to an object\n * @param {Object} manifest policy in yaml form\n * @returns\n */\nexport const fromYaml = ({ manifest }) => {\n try {\n return safeLoad(manifest, { json: true });\n } catch {\n /**\n * Catch parsing error of safeLoad\n */\n return { error: true, key: 'yaml-parsing' };\n }\n};\n\n/**\n * Check if the policy is a scan execution policy and has a scheduled rule\n * @param {Object} policy\n * @returns {Boolean}\n */\nexport const hasScheduledRule = (policy) => {\n let policyObject = policy;\n\n // Handle policy list policies\n if (\n policyObject.yaml &&\n // eslint-disable-next-line no-underscore-dangle\n policyObject.__typename === POLICY_TYPE_COMPONENT_OPTIONS.scanExecution.typeName\n ) {\n policyObject = fromYaml({ manifest: policyObject.yaml });\n }\n\n return policyObject?.rules?.some(({ type }) => type === SCAN_EXECUTION_RULES_SCHEDULE_KEY);\n};\n\nexport const checkForPerformanceRisk = ({ policy, namespaceType, projectsCount }) => {\n const PROJECTS_COUNT_PERFORMANCE_LIMIT = 1000;\n\n return (\n hasScheduledRule(policy) &&\n isGroup(namespaceType) &&\n projectsCount > PROJECTS_COUNT_PERFORMANCE_LIMIT\n );\n};\n\nconst isValidPolicyType = (type) => {\n const validTypes = Object.values(POLICY_TYPE_COMPONENT_OPTIONS).map(\n ({ urlParameter }) => urlParameter,\n );\n return validTypes.includes(type);\n};\n\n/**\n * Policy type, in this case, policy type is a wrapper\n * for a policy content. This method extracts policy content from\n * a wrapper\n * @param manifest policy in yaml format\n * @param type policy type\n * @param withType wheather include or not include type property in a policy body\n * @returns {*|{policy: {}}}\n */\nexport const extractPolicyContent = ({ manifest, type, withType = false }) => {\n const defaultPayload = {\n policy: {},\n parsingError: { hasParsingError: true, actions: true, rules: true },\n };\n\n try {\n if (!isValidPolicyType(type)) {\n return defaultPayload;\n }\n\n const parsedYaml = safeLoad(manifest, { json: true });\n\n /**\n * Remove type property from yaml\n * Type now is a parent property\n */\n const hasLegacyTypeRootProperty = 'type' in parsedYaml;\n if (hasLegacyTypeRootProperty) {\n delete parsedYaml.type;\n }\n\n const hasNewTypeRootProperty = type in parsedYaml;\n const extractedPolicy = hasNewTypeRootProperty ? parsedYaml[type] : parsedYaml;\n\n const isArray = Array.isArray(extractedPolicy);\n const policy = isArray ? extractedPolicy[0] : extractedPolicy;\n\n if (withType) {\n policy.type = type;\n }\n\n return policy || {};\n } catch {\n return defaultPayload;\n }\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"PageInfo\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"PageInfo\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasNextPage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasPreviousPage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startCursor\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"endCursor\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":92}};\n doc.loc.source = {\"body\":\"fragment PageInfo on PageInfo {\\n hasNextPage\\n hasPreviousPage\\n startCursor\\n endCursor\\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[\"PageInfo\"] = oneQuery(doc, \"PageInfo\");\n \n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nfunction unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n}\n\nmodule.exports = unicodeSize;\n","/**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\nfunction baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n}\n\nmodule.exports = baseClamp;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueParents\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableState\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableSearchableField\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iidStartsWith\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueType\"}}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attributes\"},\"name\":{\"kind\":\"Name\",\"value\":\"workItems\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iidStartsWith\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestors\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendants\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemType\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":571}};\n doc.loc.source = {\"body\":\"query issueParents(\\n $fullPath: ID!\\n $title: String\\n $state: IssuableState\\n $in: [IssuableSearchableField!]\\n $iidStartsWith: String\\n $types: [IssueType!]\\n) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n attributes: workItems(\\n search: $title\\n iid: $iidStartsWith\\n in: $in\\n state: $state\\n types: $types\\n includeAncestors: true\\n includeDescendants: false\\n ) {\\n nodes {\\n id\\n iid\\n title\\n webUrl\\n state\\n workItemType {\\n id\\n name\\n }\\n }\\n }\\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[\"issueParents\"] = oneQuery(doc, \"issueParents\");\n \n","(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module.\n define([\"jquery\"], function ($) {\n return (root.returnExportsGlobal = factory($));\n });\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like enviroments that support module.exports,\n // like Node.\n module.exports = factory(require(\"jquery\"));\n } else {\n factory(jQuery);\n }\n}(this, function ($) {\n\n/*\n Implement Github like autocomplete mentions\n http://ichord.github.com/At.js\n\n Copyright (c) 2013 chord.luo@gmail.com\n Licensed under the MIT license.\n*/\n\n/*\n本插件操作 textarea 或者 input 内的插入符\n只实现了获得插入符在文本框中的位置,我设置\n插入符的位置.\n*/\n\n\"use strict\";\nvar EditableCaret, InputCaret, Mirror, Utils, discoveryIframeOf, methods, oDocument, oFrame, oWindow, pluginName, setContextBy;\n\npluginName = 'caret';\n\nEditableCaret = (function() {\n function EditableCaret($inputor) {\n this.$inputor = $inputor;\n this.domInputor = this.$inputor[0];\n }\n\n EditableCaret.prototype.setPos = function(pos) {\n var fn, found, offset, sel;\n if (sel = oWindow.getSelection()) {\n offset = 0;\n found = false;\n (fn = function(pos, parent) {\n var node, range, _i, _len, _ref, _results;\n _ref = parent.childNodes;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n node = _ref[_i];\n if (found) {\n break;\n }\n if (node.nodeType === 3) {\n if (offset + node.length >= pos) {\n found = true;\n range = oDocument.createRange();\n range.setStart(node, pos - offset);\n sel.removeAllRanges();\n sel.addRange(range);\n break;\n } else {\n _results.push(offset += node.length);\n }\n } else {\n _results.push(fn(pos, node));\n }\n }\n return _results;\n })(pos, this.domInputor);\n }\n return this.domInputor;\n };\n\n EditableCaret.prototype.getIEPosition = function() {\n return this.getPosition();\n };\n\n EditableCaret.prototype.getPosition = function() {\n var inputor_offset, offset;\n offset = this.getOffset();\n inputor_offset = this.$inputor.offset();\n offset.left -= inputor_offset.left;\n offset.top -= inputor_offset.top;\n return offset;\n };\n\n EditableCaret.prototype.getOldIEPos = function() {\n var preCaretTextRange, textRange;\n textRange = oDocument.selection.createRange();\n preCaretTextRange = oDocument.body.createTextRange();\n preCaretTextRange.moveToElementText(this.domInputor);\n preCaretTextRange.setEndPoint(\"EndToEnd\", textRange);\n return preCaretTextRange.text.length;\n };\n\n EditableCaret.prototype.getPos = function() {\n var clonedRange, pos, range;\n if (range = this.range()) {\n clonedRange = range.cloneRange();\n clonedRange.selectNodeContents(this.domInputor);\n clonedRange.setEnd(range.endContainer, range.endOffset);\n pos = clonedRange.toString().length;\n clonedRange.detach();\n return pos;\n } else if (oDocument.selection) {\n return this.getOldIEPos();\n }\n };\n\n EditableCaret.prototype.getOldIEOffset = function() {\n var range, rect;\n range = oDocument.selection.createRange().duplicate();\n range.moveStart(\"character\", -1);\n rect = range.getBoundingClientRect();\n return {\n height: rect.bottom - rect.top,\n left: rect.left,\n top: rect.top\n };\n };\n\n EditableCaret.prototype.getOffset = function(pos) {\n var clonedRange, offset, range, rect, shadowCaret;\n if (oWindow.getSelection && (range = this.range())) {\n if (range.endOffset - 1 > 0 && range.endContainer !== this.domInputor) {\n clonedRange = range.cloneRange();\n clonedRange.setStart(range.endContainer, range.endOffset - 1);\n clonedRange.setEnd(range.endContainer, range.endOffset);\n rect = clonedRange.getBoundingClientRect();\n offset = {\n height: rect.height,\n left: rect.left + rect.width,\n top: rect.top\n };\n clonedRange.detach();\n }\n if (!offset || (offset != null ? offset.height : void 0) === 0) {\n clonedRange = range.cloneRange();\n shadowCaret = $(oDocument.createTextNode(\"|\"));\n clonedRange.insertNode(shadowCaret[0]);\n clonedRange.selectNode(shadowCaret[0]);\n rect = clonedRange.getBoundingClientRect();\n offset = {\n height: rect.height,\n left: rect.left,\n top: rect.top\n };\n shadowCaret.remove();\n clonedRange.detach();\n }\n } else if (oDocument.selection) {\n offset = this.getOldIEOffset();\n }\n if (offset) {\n offset.top += $(oWindow).scrollTop();\n offset.left += $(oWindow).scrollLeft();\n }\n return offset;\n };\n\n EditableCaret.prototype.range = function() {\n var sel;\n if (!oWindow.getSelection) {\n return;\n }\n sel = oWindow.getSelection();\n if (sel.rangeCount > 0) {\n return sel.getRangeAt(0);\n } else {\n return null;\n }\n };\n\n return EditableCaret;\n\n})();\n\nInputCaret = (function() {\n function InputCaret($inputor) {\n this.$inputor = $inputor;\n this.domInputor = this.$inputor[0];\n }\n\n InputCaret.prototype.getIEPos = function() {\n var endRange, inputor, len, normalizedValue, pos, range, textInputRange;\n inputor = this.domInputor;\n range = oDocument.selection.createRange();\n pos = 0;\n if (range && range.parentElement() === inputor) {\n normalizedValue = inputor.value.replace(/\\r\\n/g, \"\\n\");\n len = normalizedValue.length;\n textInputRange = inputor.createTextRange();\n textInputRange.moveToBookmark(range.getBookmark());\n endRange = inputor.createTextRange();\n endRange.collapse(false);\n if (textInputRange.compareEndPoints(\"StartToEnd\", endRange) > -1) {\n pos = len;\n } else {\n pos = -textInputRange.moveStart(\"character\", -len);\n }\n }\n return pos;\n };\n\n InputCaret.prototype.getPos = function() {\n if (oDocument.selection) {\n return this.getIEPos();\n } else {\n return this.domInputor.selectionStart;\n }\n };\n\n InputCaret.prototype.setPos = function(pos) {\n var inputor, range;\n inputor = this.domInputor;\n if (oDocument.selection) {\n range = inputor.createTextRange();\n range.move(\"character\", pos);\n range.select();\n } else if (inputor.setSelectionRange) {\n inputor.setSelectionRange(pos, pos);\n }\n return inputor;\n };\n\n InputCaret.prototype.getIEOffset = function(pos) {\n var h, textRange, x, y;\n textRange = this.domInputor.createTextRange();\n pos || (pos = this.getPos());\n textRange.move('character', pos);\n x = textRange.boundingLeft;\n y = textRange.boundingTop;\n h = textRange.boundingHeight;\n return {\n left: x,\n top: y,\n height: h\n };\n };\n\n InputCaret.prototype.getOffset = function(pos) {\n var $inputor, offset, position;\n $inputor = this.$inputor;\n if (oDocument.selection) {\n offset = this.getIEOffset(pos);\n offset.top += $(oWindow).scrollTop() + $inputor.scrollTop();\n offset.left += $(oWindow).scrollLeft() + $inputor.scrollLeft();\n return offset;\n } else {\n offset = $inputor.offset();\n position = this.getPosition(pos);\n return offset = {\n left: offset.left + position.left - $inputor.scrollLeft(),\n top: offset.top + position.top - $inputor.scrollTop(),\n height: position.height\n };\n }\n };\n\n InputCaret.prototype.getPosition = function(pos) {\n var $inputor, at_rect, end_range, format, html, mirror, start_range;\n $inputor = this.$inputor;\n format = function(value) {\n value = value.replace(/<|>|`|\"|&/g, '?').replace(/\\r\\n|\\r|\\n/g, \"<br/>\");\n if (/firefox/i.test(navigator.userAgent)) {\n value = value.replace(/\\s/g, ' ');\n }\n return value;\n };\n if (pos === void 0) {\n pos = this.getPos();\n }\n start_range = $inputor.val().slice(0, pos);\n end_range = $inputor.val().slice(pos);\n html = \"<span style='position: relative; display: inline;'>\" + format(start_range) + \"</span>\";\n html += \"<span id='caret' style='position: relative; display: inline;'>|</span>\";\n html += \"<span style='position: relative; display: inline;'>\" + format(end_range) + \"</span>\";\n mirror = new Mirror($inputor);\n return at_rect = mirror.create(html).rect();\n };\n\n InputCaret.prototype.getIEPosition = function(pos) {\n var h, inputorOffset, offset, x, y;\n offset = this.getIEOffset(pos);\n inputorOffset = this.$inputor.offset();\n x = offset.left - inputorOffset.left;\n y = offset.top - inputorOffset.top;\n h = offset.height;\n return {\n left: x,\n top: y,\n height: h\n };\n };\n\n return InputCaret;\n\n})();\n\nMirror = (function() {\n Mirror.prototype.css_attr = [\"borderBottomWidth\", \"borderLeftWidth\", \"borderRightWidth\", \"borderTopStyle\", \"borderRightStyle\", \"borderBottomStyle\", \"borderLeftStyle\", \"borderTopWidth\", \"boxSizing\", \"fontFamily\", \"fontSize\", \"fontWeight\", \"height\", \"letterSpacing\", \"lineHeight\", \"marginBottom\", \"marginLeft\", \"marginRight\", \"marginTop\", \"outlineWidth\", \"overflow\", \"overflowX\", \"overflowY\", \"paddingBottom\", \"paddingLeft\", \"paddingRight\", \"paddingTop\", \"textAlign\", \"textOverflow\", \"textTransform\", \"whiteSpace\", \"wordBreak\", \"wordWrap\"];\n\n function Mirror($inputor) {\n this.$inputor = $inputor;\n }\n\n Mirror.prototype.mirrorCss = function() {\n var css,\n _this = this;\n css = {\n position: 'absolute',\n left: -9999,\n top: 0,\n zIndex: -20000\n };\n if (this.$inputor.prop('tagName') === 'TEXTAREA') {\n this.css_attr.push('width');\n }\n $.each(this.css_attr, function(i, p) {\n return css[p] = _this.$inputor.css(p);\n });\n return css;\n };\n\n Mirror.prototype.create = function(html) {\n this.$mirror = $('<div></div>');\n this.$mirror.css(this.mirrorCss());\n this.$mirror.html(html);\n this.$inputor.after(this.$mirror);\n return this;\n };\n\n Mirror.prototype.rect = function() {\n var $flag, pos, rect;\n $flag = this.$mirror.find(\"#caret\");\n pos = $flag.position();\n rect = {\n left: pos.left,\n top: pos.top,\n height: $flag.height()\n };\n this.$mirror.remove();\n return rect;\n };\n\n return Mirror;\n\n})();\n\nUtils = {\n contentEditable: function($inputor) {\n return !!($inputor[0].contentEditable && $inputor[0].contentEditable === 'true');\n }\n};\n\nmethods = {\n pos: function(pos) {\n if (pos || pos === 0) {\n return this.setPos(pos);\n } else {\n return this.getPos();\n }\n },\n position: function(pos) {\n if (oDocument.selection) {\n return this.getIEPosition(pos);\n } else {\n return this.getPosition(pos);\n }\n },\n offset: function(pos) {\n var offset;\n offset = this.getOffset(pos);\n return offset;\n }\n};\n\noDocument = null;\n\noWindow = null;\n\noFrame = null;\n\nsetContextBy = function(settings) {\n var iframe;\n if (iframe = settings != null ? settings.iframe : void 0) {\n oFrame = iframe;\n oWindow = iframe.contentWindow;\n return oDocument = iframe.contentDocument || oWindow.document;\n } else {\n oFrame = void 0;\n oWindow = window;\n return oDocument = document;\n }\n};\n\ndiscoveryIframeOf = function($dom) {\n var error;\n oDocument = $dom[0].ownerDocument;\n oWindow = oDocument.defaultView || oDocument.parentWindow;\n try {\n return oFrame = oWindow.frameElement;\n } catch (_error) {\n error = _error;\n }\n};\n\n$.fn.caret = function(method, value, settings) {\n var caret;\n if (methods[method]) {\n if ($.isPlainObject(value)) {\n setContextBy(value);\n value = void 0;\n } else {\n setContextBy(settings);\n }\n caret = Utils.contentEditable(this) ? new EditableCaret(this) : new InputCaret(this);\n return methods[method].apply(caret, [value]);\n } else {\n return $.error(\"Method \" + method + \" does not exist on jQuery.caret\");\n }\n};\n\n$.fn.caret.EditableCaret = EditableCaret;\n\n$.fn.caret.InputCaret = InputCaret;\n\n$.fn.caret.Utils = Utils;\n\n$.fn.caret.apis = methods;\n\n\n}));\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"dropdown-header\"}},[(!_vm.isStandalone)?_c('div',{staticClass:\"dropdown-title gl-mb-0 gl-flex gl-items-center gl-pb-4 gl-pt-2\",attrs:{\"data-testid\":\"dropdown-header-title\"}},[(_vm.showDropdownContentsCreateView)?_c('gl-button',{staticClass:\"js-btn-back dropdown-header-button !gl-p-0\",attrs:{\"aria-label\":_vm.__('Go back'),\"variant\":\"link\",\"size\":\"small\",\"icon\":\"arrow-left\",\"data-testid\":\"go-back-button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.$emit('toggleDropdownContentsCreateView')}}}):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"gl-grow\"},[_vm._v(_vm._s(_vm.dropdownTitle))]),_vm._v(\" \"),_c('gl-button',{staticClass:\"dropdown-header-button !gl-p-0\",attrs:{\"aria-label\":_vm.__('Close'),\"variant\":\"link\",\"size\":\"small\",\"icon\":\"close\",\"data-testid\":\"close-labels-dropdown-button\"},on:{\"click\":function($event){return _vm.$emit('closeDropdown')}}})],1):_vm._e(),_vm._v(\" \"),(!_vm.showDropdownContentsCreateView)?_c('gl-search-box-by-type',{ref:\"searchInput\",attrs:{\"value\":_vm.searchKey,\"placeholder\":_vm.__('Search labels'),\"disabled\":_vm.labelsFetchInProgress,\"data-testid\":\"dropdown-input-field\"},on:{\"input\":function($event){return _vm.$emit('input', $event)},\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.$emit('searchEnter', $event)}}}):_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!./dropdown_header.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!./dropdown_header.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlSearchBoxByType } from '@gitlab/ui';\n\nexport default {\n components: {\n GlButton,\n GlSearchBoxByType,\n },\n props: {\n labelsCreateTitle: {\n type: String,\n required: true,\n },\n labelsListTitle: {\n type: String,\n required: true,\n },\n showDropdownContentsCreateView: {\n type: Boolean,\n required: true,\n },\n labelsFetchInProgress: {\n type: Boolean,\n required: false,\n default: false,\n },\n searchKey: {\n type: String,\n required: true,\n },\n isStandalone: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n dropdownTitle() {\n return this.showDropdownContentsCreateView ? this.labelsCreateTitle : this.labelsListTitle;\n },\n },\n methods: {\n focusInput() {\n this.$refs.searchInput?.focusInput();\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"dropdown-header\">\n <div\n v-if=\"!isStandalone\"\n class=\"dropdown-title gl-mb-0 gl-flex gl-items-center gl-pb-4 gl-pt-2\"\n data-testid=\"dropdown-header-title\"\n >\n <gl-button\n v-if=\"showDropdownContentsCreateView\"\n :aria-label=\"__('Go back')\"\n variant=\"link\"\n size=\"small\"\n class=\"js-btn-back dropdown-header-button !gl-p-0\"\n icon=\"arrow-left\"\n data-testid=\"go-back-button\"\n @click.stop=\"$emit('toggleDropdownContentsCreateView')\"\n />\n <span class=\"gl-grow\">{{ dropdownTitle }}</span>\n <gl-button\n :aria-label=\"__('Close')\"\n variant=\"link\"\n size=\"small\"\n class=\"dropdown-header-button !gl-p-0\"\n icon=\"close\"\n data-testid=\"close-labels-dropdown-button\"\n @click=\"$emit('closeDropdown')\"\n />\n </div>\n <gl-search-box-by-type\n v-if=\"!showDropdownContentsCreateView\"\n ref=\"searchInput\"\n :value=\"searchKey\"\n :placeholder=\"__('Search labels')\"\n :disabled=\"labelsFetchInProgress\"\n data-testid=\"dropdown-input-field\"\n @input=\"$emit('input', $event)\"\n @keydown.enter=\"$emit('searchEnter', $event)\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_header.vue?vue&type=template&id=97abd698\"\nimport script from \"./dropdown_header.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_header.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\":\"getState\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"archived\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"onlyAllowMergeIfPipelineSucceeds\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowMergeOnSkippedPipeline\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeTrainCarCount\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"autoMergeEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availableAutoMergeStrategies\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"commitCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"conflicts\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detailedMergeStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"diffHeadSha\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeAfter\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeError\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeableDiscussionsState\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"shouldBeRebased\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sourceBranchExists\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetBranchExists\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canMerge\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"draft\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeTrainCarIndex\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":863}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/vue_merge_request_widget/queries/states/merge_train_car_index.fragment.graphql\\\"\\n#import \\\"ee_else_ce/vue_merge_request_widget/queries/states/merge_train_car_count.fragment.graphql\\\"\\n\\nquery getState($projectPath: ID!, $iid: String!) {\\n project(fullPath: $projectPath) {\\n id\\n archived\\n onlyAllowMergeIfPipelineSucceeds\\n allowMergeOnSkippedPipeline\\n ...MergeTrainCarCount\\n mergeRequest(iid: $iid) {\\n id\\n autoMergeEnabled\\n availableAutoMergeStrategies\\n commitCount\\n conflicts\\n detailedMergeStatus\\n diffHeadSha\\n mergeAfter\\n mergeError\\n mergeStatus\\n mergeable\\n mergeableDiscussionsState\\n shouldBeRebased\\n sourceBranchExists\\n state\\n targetBranchExists\\n userPermissions {\\n canMerge\\n }\\n draft\\n ...MergeTrainCarIndex\\n }\\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/vue_merge_request_widget/queries/states/merge_train_car_index.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"ee_else_ce/vue_merge_request_widget/queries/states/merge_train_car_count.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[\"getState\"] = oneQuery(doc, \"getState\");\n \n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]';\n\n/**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\nfunction isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n}\n\nmodule.exports = isBoolean;\n","'use strict';\n\n/*eslint-disable no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\n\nvar _toString = Object.prototype.toString;\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar CHAR_TAB = 0x09; /* Tab */\nvar CHAR_LINE_FEED = 0x0A; /* LF */\nvar CHAR_CARRIAGE_RETURN = 0x0D; /* CR */\nvar CHAR_SPACE = 0x20; /* Space */\nvar CHAR_EXCLAMATION = 0x21; /* ! */\nvar CHAR_DOUBLE_QUOTE = 0x22; /* \" */\nvar CHAR_SHARP = 0x23; /* # */\nvar CHAR_PERCENT = 0x25; /* % */\nvar CHAR_AMPERSAND = 0x26; /* & */\nvar CHAR_SINGLE_QUOTE = 0x27; /* ' */\nvar CHAR_ASTERISK = 0x2A; /* * */\nvar CHAR_COMMA = 0x2C; /* , */\nvar CHAR_MINUS = 0x2D; /* - */\nvar CHAR_COLON = 0x3A; /* : */\nvar CHAR_EQUALS = 0x3D; /* = */\nvar CHAR_GREATER_THAN = 0x3E; /* > */\nvar CHAR_QUESTION = 0x3F; /* ? */\nvar CHAR_COMMERCIAL_AT = 0x40; /* @ */\nvar CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */\nvar CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */\nvar CHAR_GRAVE_ACCENT = 0x60; /* ` */\nvar CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */\nvar CHAR_VERTICAL_LINE = 0x7C; /* | */\nvar CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */\n\nvar ESCAPE_SEQUENCES = {};\n\nESCAPE_SEQUENCES[0x00] = '\\\\0';\nESCAPE_SEQUENCES[0x07] = '\\\\a';\nESCAPE_SEQUENCES[0x08] = '\\\\b';\nESCAPE_SEQUENCES[0x09] = '\\\\t';\nESCAPE_SEQUENCES[0x0A] = '\\\\n';\nESCAPE_SEQUENCES[0x0B] = '\\\\v';\nESCAPE_SEQUENCES[0x0C] = '\\\\f';\nESCAPE_SEQUENCES[0x0D] = '\\\\r';\nESCAPE_SEQUENCES[0x1B] = '\\\\e';\nESCAPE_SEQUENCES[0x22] = '\\\\\"';\nESCAPE_SEQUENCES[0x5C] = '\\\\\\\\';\nESCAPE_SEQUENCES[0x85] = '\\\\N';\nESCAPE_SEQUENCES[0xA0] = '\\\\_';\nESCAPE_SEQUENCES[0x2028] = '\\\\L';\nESCAPE_SEQUENCES[0x2029] = '\\\\P';\n\nvar DEPRECATED_BOOLEANS_SYNTAX = [\n 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON',\n 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF'\n];\n\nfunction compileStyleMap(schema, map) {\n var result, keys, index, length, tag, style, type;\n\n if (map === null) return {};\n\n result = {};\n keys = Object.keys(map);\n\n for (index = 0, length = keys.length; index < length; index += 1) {\n tag = keys[index];\n style = String(map[tag]);\n\n if (tag.slice(0, 2) === '!!') {\n tag = 'tag:yaml.org,2002:' + tag.slice(2);\n }\n type = schema.compiledTypeMap['fallback'][tag];\n\n if (type && _hasOwnProperty.call(type.styleAliases, style)) {\n style = type.styleAliases[style];\n }\n\n result[tag] = style;\n }\n\n return result;\n}\n\nfunction encodeHex(character) {\n var string, handle, length;\n\n string = character.toString(16).toUpperCase();\n\n if (character <= 0xFF) {\n handle = 'x';\n length = 2;\n } else if (character <= 0xFFFF) {\n handle = 'u';\n length = 4;\n } else if (character <= 0xFFFFFFFF) {\n handle = 'U';\n length = 8;\n } else {\n throw new YAMLException('code point within a string may not be greater than 0xFFFFFFFF');\n }\n\n return '\\\\' + handle + common.repeat('0', length - string.length) + string;\n}\n\nfunction State(options) {\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.indent = Math.max(1, (options['indent'] || 2));\n this.noArrayIndent = options['noArrayIndent'] || false;\n this.skipInvalid = options['skipInvalid'] || false;\n this.flowLevel = (common.isNothing(options['flowLevel']) ? -1 : options['flowLevel']);\n this.styleMap = compileStyleMap(this.schema, options['styles'] || null);\n this.sortKeys = options['sortKeys'] || false;\n this.lineWidth = options['lineWidth'] || 80;\n this.noRefs = options['noRefs'] || false;\n this.noCompatMode = options['noCompatMode'] || false;\n this.condenseFlow = options['condenseFlow'] || false;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.explicitTypes = this.schema.compiledExplicit;\n\n this.tag = null;\n this.result = '';\n\n this.duplicates = [];\n this.usedDuplicates = null;\n}\n\n// Indents every line in a string. Empty lines (\\n only) are not indented.\nfunction indentString(string, spaces) {\n var ind = common.repeat(' ', spaces),\n position = 0,\n next = -1,\n result = '',\n line,\n length = string.length;\n\n while (position < length) {\n next = string.indexOf('\\n', position);\n if (next === -1) {\n line = string.slice(position);\n position = length;\n } else {\n line = string.slice(position, next + 1);\n position = next + 1;\n }\n\n if (line.length && line !== '\\n') result += ind;\n\n result += line;\n }\n\n return result;\n}\n\nfunction generateNextLine(state, level) {\n return '\\n' + common.repeat(' ', state.indent * level);\n}\n\nfunction testImplicitResolving(state, str) {\n var index, length, type;\n\n for (index = 0, length = state.implicitTypes.length; index < length; index += 1) {\n type = state.implicitTypes[index];\n\n if (type.resolve(str)) {\n return true;\n }\n }\n\n return false;\n}\n\n// [33] s-white ::= s-space | s-tab\nfunction isWhitespace(c) {\n return c === CHAR_SPACE || c === CHAR_TAB;\n}\n\n// Returns true if the character can be printed without escaping.\n// From YAML 1.2: \"any allowed characters known to be non-printable\n// should also be escaped. [However,] This isn’t mandatory\"\n// Derived from nb-char - \\t - #x85 - #xA0 - #x2028 - #x2029.\nfunction isPrintable(c) {\n return (0x00020 <= c && c <= 0x00007E)\n || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029)\n || ((0x0E000 <= c && c <= 0x00FFFD) && c !== 0xFEFF /* BOM */)\n || (0x10000 <= c && c <= 0x10FFFF);\n}\n\n// [34] ns-char ::= nb-char - s-white\n// [27] nb-char ::= c-printable - b-char - c-byte-order-mark\n// [26] b-char ::= b-line-feed | b-carriage-return\n// [24] b-line-feed ::= #xA /* LF */\n// [25] b-carriage-return ::= #xD /* CR */\n// [3] c-byte-order-mark ::= #xFEFF\nfunction isNsChar(c) {\n return isPrintable(c) && !isWhitespace(c)\n // byte-order-mark\n && c !== 0xFEFF\n // b-char\n && c !== CHAR_CARRIAGE_RETURN\n && c !== CHAR_LINE_FEED;\n}\n\n// Simplified test for values allowed after the first character in plain style.\nfunction isPlainSafe(c, prev) {\n // Uses a subset of nb-char - c-flow-indicator - \":\" - \"#\"\n // where nb-char ::= c-printable - b-char - c-byte-order-mark.\n return isPrintable(c) && c !== 0xFEFF\n // - c-flow-indicator\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // - \":\" - \"#\"\n // /* An ns-char preceding */ \"#\"\n && c !== CHAR_COLON\n && ((c !== CHAR_SHARP) || (prev && isNsChar(prev)));\n}\n\n// Simplified test for values allowed as the first character in plain style.\nfunction isPlainSafeFirst(c) {\n // Uses a subset of ns-char - c-indicator\n // where ns-char = nb-char - s-white.\n return isPrintable(c) && c !== 0xFEFF\n && !isWhitespace(c) // - s-white\n // - (c-indicator ::=\n // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}”\n && c !== CHAR_MINUS\n && c !== CHAR_QUESTION\n && c !== CHAR_COLON\n && c !== CHAR_COMMA\n && c !== CHAR_LEFT_SQUARE_BRACKET\n && c !== CHAR_RIGHT_SQUARE_BRACKET\n && c !== CHAR_LEFT_CURLY_BRACKET\n && c !== CHAR_RIGHT_CURLY_BRACKET\n // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “\"”\n && c !== CHAR_SHARP\n && c !== CHAR_AMPERSAND\n && c !== CHAR_ASTERISK\n && c !== CHAR_EXCLAMATION\n && c !== CHAR_VERTICAL_LINE\n && c !== CHAR_EQUALS\n && c !== CHAR_GREATER_THAN\n && c !== CHAR_SINGLE_QUOTE\n && c !== CHAR_DOUBLE_QUOTE\n // | “%” | “@” | “`”)\n && c !== CHAR_PERCENT\n && c !== CHAR_COMMERCIAL_AT\n && c !== CHAR_GRAVE_ACCENT;\n}\n\n// Determines whether block indentation indicator is required.\nfunction needIndentIndicator(string) {\n var leadingSpaceRe = /^\\n* /;\n return leadingSpaceRe.test(string);\n}\n\nvar STYLE_PLAIN = 1,\n STYLE_SINGLE = 2,\n STYLE_LITERAL = 3,\n STYLE_FOLDED = 4,\n STYLE_DOUBLE = 5;\n\n// Determines which scalar styles are possible and returns the preferred style.\n// lineWidth = -1 => no limit.\n// Pre-conditions: str.length > 0.\n// Post-conditions:\n// STYLE_PLAIN or STYLE_SINGLE => no \\n are in the string.\n// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1).\n// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1).\nfunction chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType) {\n var i;\n var char, prev_char;\n var hasLineBreak = false;\n var hasFoldableLine = false; // only checked if shouldTrackWidth\n var shouldTrackWidth = lineWidth !== -1;\n var previousLineBreak = -1; // count the first line correctly\n var plain = isPlainSafeFirst(string.charCodeAt(0))\n && !isWhitespace(string.charCodeAt(string.length - 1));\n\n if (singleLineOnly) {\n // Case: no block styles.\n // Check for disallowed characters to rule out plain and single.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n } else {\n // Case: block styles permitted.\n for (i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n if (char === CHAR_LINE_FEED) {\n hasLineBreak = true;\n // Check if any line can be folded.\n if (shouldTrackWidth) {\n hasFoldableLine = hasFoldableLine ||\n // Foldable line = too long, and not more-indented.\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' ');\n previousLineBreak = i;\n }\n } else if (!isPrintable(char)) {\n return STYLE_DOUBLE;\n }\n prev_char = i > 0 ? string.charCodeAt(i - 1) : null;\n plain = plain && isPlainSafe(char, prev_char);\n }\n // in case the end is missing a \\n\n hasFoldableLine = hasFoldableLine || (shouldTrackWidth &&\n (i - previousLineBreak - 1 > lineWidth &&\n string[previousLineBreak + 1] !== ' '));\n }\n // Although every style can represent \\n without escaping, prefer block styles\n // for multiline, since they're more readable and they don't add empty lines.\n // Also prefer folding a super-long line.\n if (!hasLineBreak && !hasFoldableLine) {\n // Strings interpretable as another type have to be quoted;\n // e.g. the string 'true' vs. the boolean true.\n return plain && !testAmbiguousType(string)\n ? STYLE_PLAIN : STYLE_SINGLE;\n }\n // Edge case: block indentation indicator can only have one digit.\n if (indentPerLevel > 9 && needIndentIndicator(string)) {\n return STYLE_DOUBLE;\n }\n // At this point we know block styles are valid.\n // Prefer literal style unless we want to fold.\n return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL;\n}\n\n// Note: line breaking/folding is implemented for only the folded style.\n// NB. We drop the last trailing newline (if any) of a returned block scalar\n// since the dumper adds its own newline. This always works:\n// • No ending newline => unaffected; already using strip \"-\" chomping.\n// • Ending newline => removed then restored.\n// Importantly, this keeps the \"+\" chomp indicator from gaining an extra line.\nfunction writeScalar(state, string, level, iskey) {\n state.dump = (function () {\n if (string.length === 0) {\n return \"''\";\n }\n if (!state.noCompatMode &&\n DEPRECATED_BOOLEANS_SYNTAX.indexOf(string) !== -1) {\n return \"'\" + string + \"'\";\n }\n\n var indent = state.indent * Math.max(1, level); // no 0-indent scalars\n // As indentation gets deeper, let the width decrease monotonically\n // to the lower bound min(state.lineWidth, 40).\n // Note that this implies\n // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound.\n // state.lineWidth > 40 + state.indent: width decreases until the lower bound.\n // This behaves better than a constant minimum width which disallows narrower options,\n // or an indent threshold which causes the width to suddenly increase.\n var lineWidth = state.lineWidth === -1\n ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent);\n\n // Without knowing if keys are implicit/explicit, assume implicit for safety.\n var singleLineOnly = iskey\n // No block styles in flow mode.\n || (state.flowLevel > -1 && level >= state.flowLevel);\n function testAmbiguity(string) {\n return testImplicitResolving(state, string);\n }\n\n switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity)) {\n case STYLE_PLAIN:\n return string;\n case STYLE_SINGLE:\n return \"'\" + string.replace(/'/g, \"''\") + \"'\";\n case STYLE_LITERAL:\n return '|' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(string, indent));\n case STYLE_FOLDED:\n return '>' + blockHeader(string, state.indent)\n + dropEndingNewline(indentString(foldString(string, lineWidth), indent));\n case STYLE_DOUBLE:\n return '\"' + escapeString(string, lineWidth) + '\"';\n default:\n throw new YAMLException('impossible error: invalid scalar style');\n }\n }());\n}\n\n// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9.\nfunction blockHeader(string, indentPerLevel) {\n var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : '';\n\n // note the special case: the string '\\n' counts as a \"trailing\" empty line.\n var clip = string[string.length - 1] === '\\n';\n var keep = clip && (string[string.length - 2] === '\\n' || string === '\\n');\n var chomp = keep ? '+' : (clip ? '' : '-');\n\n return indentIndicator + chomp + '\\n';\n}\n\n// (See the note for writeScalar.)\nfunction dropEndingNewline(string) {\n return string[string.length - 1] === '\\n' ? string.slice(0, -1) : string;\n}\n\n// Note: a long line without a suitable break point will exceed the width limit.\n// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0.\nfunction foldString(string, width) {\n // In folded style, $k$ consecutive newlines output as $k+1$ newlines—\n // unless they're before or after a more-indented line, or at the very\n // beginning or end, in which case $k$ maps to $k$.\n // Therefore, parse each chunk as newline(s) followed by a content line.\n var lineRe = /(\\n+)([^\\n]*)/g;\n\n // first line (possibly an empty line)\n var result = (function () {\n var nextLF = string.indexOf('\\n');\n nextLF = nextLF !== -1 ? nextLF : string.length;\n lineRe.lastIndex = nextLF;\n return foldLine(string.slice(0, nextLF), width);\n }());\n // If we haven't reached the first content line yet, don't add an extra \\n.\n var prevMoreIndented = string[0] === '\\n' || string[0] === ' ';\n var moreIndented;\n\n // rest of the lines\n var match;\n while ((match = lineRe.exec(string))) {\n var prefix = match[1], line = match[2];\n moreIndented = (line[0] === ' ');\n result += prefix\n + (!prevMoreIndented && !moreIndented && line !== ''\n ? '\\n' : '')\n + foldLine(line, width);\n prevMoreIndented = moreIndented;\n }\n\n return result;\n}\n\n// Greedy line breaking.\n// Picks the longest line under the limit each time,\n// otherwise settles for the shortest line over the limit.\n// NB. More-indented lines *cannot* be folded, as that would add an extra \\n.\nfunction foldLine(line, width) {\n if (line === '' || line[0] === ' ') return line;\n\n // Since a more-indented line adds a \\n, breaks can't be followed by a space.\n var breakRe = / [^ ]/g; // note: the match index will always be <= length-2.\n var match;\n // start is an inclusive index. end, curr, and next are exclusive.\n var start = 0, end, curr = 0, next = 0;\n var result = '';\n\n // Invariants: 0 <= start <= length-1.\n // 0 <= curr <= next <= max(0, length-2). curr - start <= width.\n // Inside the loop:\n // A match implies length >= 2, so curr and next are <= length-2.\n while ((match = breakRe.exec(line))) {\n next = match.index;\n // maintain invariant: curr - start <= width\n if (next - start > width) {\n end = (curr > start) ? curr : next; // derive end <= length-2\n result += '\\n' + line.slice(start, end);\n // skip the space that was output as \\n\n start = end + 1; // derive start <= length-1\n }\n curr = next;\n }\n\n // By the invariants, start <= length-1, so there is something left over.\n // It is either the whole string or a part starting from non-whitespace.\n result += '\\n';\n // Insert a break if the remainder is too long and there is a break available.\n if (line.length - start > width && curr > start) {\n result += line.slice(start, curr) + '\\n' + line.slice(curr + 1);\n } else {\n result += line.slice(start);\n }\n\n return result.slice(1); // drop extra \\n joiner\n}\n\n// Escapes a double-quoted string.\nfunction escapeString(string) {\n var result = '';\n var char, nextChar;\n var escapeSeq;\n\n for (var i = 0; i < string.length; i++) {\n char = string.charCodeAt(i);\n // Check for surrogate pairs (reference Unicode 3.0 section \"3.7 Surrogates\").\n if (char >= 0xD800 && char <= 0xDBFF/* high surrogate */) {\n nextChar = string.charCodeAt(i + 1);\n if (nextChar >= 0xDC00 && nextChar <= 0xDFFF/* low surrogate */) {\n // Combine the surrogate pair and store it escaped.\n result += encodeHex((char - 0xD800) * 0x400 + nextChar - 0xDC00 + 0x10000);\n // Advance index one extra since we already used that char here.\n i++; continue;\n }\n }\n escapeSeq = ESCAPE_SEQUENCES[char];\n result += !escapeSeq && isPrintable(char)\n ? string[i]\n : escapeSeq || encodeHex(char);\n }\n\n return result;\n}\n\nfunction writeFlowSequence(state, level, object) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level, object[index], false, false)) {\n if (index !== 0) _result += ',' + (!state.condenseFlow ? ' ' : '');\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = '[' + _result + ']';\n}\n\nfunction writeBlockSequence(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n index,\n length;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n // Write only valid elements.\n if (writeNode(state, level + 1, object[index], true, true)) {\n if (!compact || index !== 0) {\n _result += generateNextLine(state, level);\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n _result += '-';\n } else {\n _result += '- ';\n }\n\n _result += state.dump;\n }\n }\n\n state.tag = _tag;\n state.dump = _result || '[]'; // Empty sequence if no valid values.\n}\n\nfunction writeFlowMapping(state, level, object) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n pairBuffer;\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n\n pairBuffer = '';\n if (index !== 0) pairBuffer += ', ';\n\n if (state.condenseFlow) pairBuffer += '\"';\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level, objectKey, false, false)) {\n continue; // Skip this pair because of invalid key;\n }\n\n if (state.dump.length > 1024) pairBuffer += '? ';\n\n pairBuffer += state.dump + (state.condenseFlow ? '\"' : '') + ':' + (state.condenseFlow ? '' : ' ');\n\n if (!writeNode(state, level, objectValue, false, false)) {\n continue; // Skip this pair because of invalid value.\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = '{' + _result + '}';\n}\n\nfunction writeBlockMapping(state, level, object, compact) {\n var _result = '',\n _tag = state.tag,\n objectKeyList = Object.keys(object),\n index,\n length,\n objectKey,\n objectValue,\n explicitPair,\n pairBuffer;\n\n // Allow sorting keys so that the output file is deterministic\n if (state.sortKeys === true) {\n // Default sorting\n objectKeyList.sort();\n } else if (typeof state.sortKeys === 'function') {\n // Custom sort function\n objectKeyList.sort(state.sortKeys);\n } else if (state.sortKeys) {\n // Something is wrong\n throw new YAMLException('sortKeys must be a boolean or a function');\n }\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n pairBuffer = '';\n\n if (!compact || index !== 0) {\n pairBuffer += generateNextLine(state, level);\n }\n\n objectKey = objectKeyList[index];\n objectValue = object[objectKey];\n\n if (!writeNode(state, level + 1, objectKey, true, true, true)) {\n continue; // Skip this pair because of invalid key.\n }\n\n explicitPair = (state.tag !== null && state.tag !== '?') ||\n (state.dump && state.dump.length > 1024);\n\n if (explicitPair) {\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += '?';\n } else {\n pairBuffer += '? ';\n }\n }\n\n pairBuffer += state.dump;\n\n if (explicitPair) {\n pairBuffer += generateNextLine(state, level);\n }\n\n if (!writeNode(state, level + 1, objectValue, true, explicitPair)) {\n continue; // Skip this pair because of invalid value.\n }\n\n if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) {\n pairBuffer += ':';\n } else {\n pairBuffer += ': ';\n }\n\n pairBuffer += state.dump;\n\n // Both key and value are valid.\n _result += pairBuffer;\n }\n\n state.tag = _tag;\n state.dump = _result || '{}'; // Empty mapping if no valid pairs.\n}\n\nfunction detectType(state, object, explicit) {\n var _result, typeList, index, length, type, style;\n\n typeList = explicit ? state.explicitTypes : state.implicitTypes;\n\n for (index = 0, length = typeList.length; index < length; index += 1) {\n type = typeList[index];\n\n if ((type.instanceOf || type.predicate) &&\n (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) &&\n (!type.predicate || type.predicate(object))) {\n\n state.tag = explicit ? type.tag : '?';\n\n if (type.represent) {\n style = state.styleMap[type.tag] || type.defaultStyle;\n\n if (_toString.call(type.represent) === '[object Function]') {\n _result = type.represent(object, style);\n } else if (_hasOwnProperty.call(type.represent, style)) {\n _result = type.represent[style](object, style);\n } else {\n throw new YAMLException('!<' + type.tag + '> tag resolver accepts not \"' + style + '\" style');\n }\n\n state.dump = _result;\n }\n\n return true;\n }\n }\n\n return false;\n}\n\n// Serializes `object` and writes it to global `result`.\n// Returns true on success, or false on invalid object.\n//\nfunction writeNode(state, level, object, block, compact, iskey) {\n state.tag = null;\n state.dump = object;\n\n if (!detectType(state, object, false)) {\n detectType(state, object, true);\n }\n\n var type = _toString.call(state.dump);\n\n if (block) {\n block = (state.flowLevel < 0 || state.flowLevel > level);\n }\n\n var objectOrArray = type === '[object Object]' || type === '[object Array]',\n duplicateIndex,\n duplicate;\n\n if (objectOrArray) {\n duplicateIndex = state.duplicates.indexOf(object);\n duplicate = duplicateIndex !== -1;\n }\n\n if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) {\n compact = false;\n }\n\n if (duplicate && state.usedDuplicates[duplicateIndex]) {\n state.dump = '*ref_' + duplicateIndex;\n } else {\n if (objectOrArray && duplicate && !state.usedDuplicates[duplicateIndex]) {\n state.usedDuplicates[duplicateIndex] = true;\n }\n if (type === '[object Object]') {\n if (block && (Object.keys(state.dump).length !== 0)) {\n writeBlockMapping(state, level, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowMapping(state, level, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object Array]') {\n var arrayLevel = (state.noArrayIndent && (level > 0)) ? level - 1 : level;\n if (block && (state.dump.length !== 0)) {\n writeBlockSequence(state, arrayLevel, state.dump, compact);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + state.dump;\n }\n } else {\n writeFlowSequence(state, arrayLevel, state.dump);\n if (duplicate) {\n state.dump = '&ref_' + duplicateIndex + ' ' + state.dump;\n }\n }\n } else if (type === '[object String]') {\n if (state.tag !== '?') {\n writeScalar(state, state.dump, level, iskey);\n }\n } else {\n if (state.skipInvalid) return false;\n throw new YAMLException('unacceptable kind of an object to dump ' + type);\n }\n\n if (state.tag !== null && state.tag !== '?') {\n state.dump = '!<' + state.tag + '> ' + state.dump;\n }\n }\n\n return true;\n}\n\nfunction getDuplicateReferences(object, state) {\n var objects = [],\n duplicatesIndexes = [],\n index,\n length;\n\n inspectNode(object, objects, duplicatesIndexes);\n\n for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) {\n state.duplicates.push(objects[duplicatesIndexes[index]]);\n }\n state.usedDuplicates = new Array(length);\n}\n\nfunction inspectNode(object, objects, duplicatesIndexes) {\n var objectKeyList,\n index,\n length;\n\n if (object !== null && typeof object === 'object') {\n index = objects.indexOf(object);\n if (index !== -1) {\n if (duplicatesIndexes.indexOf(index) === -1) {\n duplicatesIndexes.push(index);\n }\n } else {\n objects.push(object);\n\n if (Array.isArray(object)) {\n for (index = 0, length = object.length; index < length; index += 1) {\n inspectNode(object[index], objects, duplicatesIndexes);\n }\n } else {\n objectKeyList = Object.keys(object);\n\n for (index = 0, length = objectKeyList.length; index < length; index += 1) {\n inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes);\n }\n }\n }\n }\n}\n\nfunction dump(input, options) {\n options = options || {};\n\n var state = new State(options);\n\n if (!state.noRefs) getDuplicateReferences(input, state);\n\n if (writeNode(state, 0, input, true, true)) return state.dump + '\\n';\n\n return '';\n}\n\nfunction safeDump(input, options) {\n return dump(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\nmodule.exports.dump = dump;\nmodule.exports.safeDump = safeDump;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"getTitleSubscription\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestMergeStatusUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"titleHtml\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":185}};\n doc.loc.source = {\"body\":\"subscription getTitleSubscription($issuableId: IssuableID!) {\\n mergeRequestMergeStatusUpdated(issuableId: $issuableId) {\\n ... on MergeRequest {\\n id\\n titleHtml\\n }\\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[\"getTitleSubscription\"] = oneQuery(doc, \"getTitleSubscription\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueEpic\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasEpic\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasParent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":282}};\n doc.loc.source = {\"body\":\"#import \\\"./epic.fragment.graphql\\\"\\n\\nquery projectIssueEpic($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n hasEpic\\n hasParent\\n attribute: epic {\\n ...EpicFragment\\n }\\n }\\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(\"./epic.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[\"projectIssueEpic\"] = oneQuery(doc, \"projectIssueEpic\");\n \n","export default function(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","import ascending from \"./ascending\";\n\nexport default function(compare) {\n if (compare.length === 1) compare = ascendingComparator(compare);\n return {\n left: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) < 0) lo = mid + 1;\n else hi = mid;\n }\n return lo;\n },\n right: function(a, x, lo, hi) {\n if (lo == null) lo = 0;\n if (hi == null) hi = a.length;\n while (lo < hi) {\n var mid = lo + hi >>> 1;\n if (compare(a[mid], x) > 0) hi = mid;\n else lo = mid + 1;\n }\n return lo;\n }\n };\n}\n\nfunction ascendingComparator(f) {\n return function(d, x) {\n return ascending(f(d), x);\n };\n}\n","import ascending from \"./ascending\";\nimport bisector from \"./bisector\";\n\nvar ascendingBisect = bisector(ascending);\nexport var bisectRight = ascendingBisect.right;\nexport var bisectLeft = ascendingBisect.left;\nexport default bisectRight;\n","import {pair} from \"./pairs\";\n\nexport default function(values0, values1, reduce) {\n var n0 = values0.length,\n n1 = values1.length,\n values = new Array(n0 * n1),\n i0,\n i1,\n i,\n value0;\n\n if (reduce == null) reduce = pair;\n\n for (i0 = i = 0; i0 < n0; ++i0) {\n for (value0 = values0[i0], i1 = 0; i1 < n1; ++i1, ++i) {\n values[i] = reduce(value0, values1[i1]);\n }\n }\n\n return values;\n}\n","export default function(x) {\n return x === null ? NaN : +x;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null) {\n if (min > value) min = value;\n if (max < value) max = value;\n }\n }\n }\n }\n }\n\n return [min, max];\n}\n","var array = Array.prototype;\n\nexport var slice = array.slice;\nexport var map = array.map;\n","export default function(start, stop, step) {\n start = +start, stop = +stop, step = (n = arguments.length) < 2 ? (stop = start, start = 0, 1) : n < 3 ? 1 : +step;\n\n var i = -1,\n n = Math.max(0, Math.ceil((stop - start) / step)) | 0,\n range = new Array(n);\n\n while (++i < n) {\n range[i] = start + i * step;\n }\n\n return range;\n}\n","var e10 = Math.sqrt(50),\n e5 = Math.sqrt(10),\n e2 = Math.sqrt(2);\n\nexport default function(start, stop, count) {\n var reverse,\n i = -1,\n n,\n ticks,\n step;\n\n stop = +stop, start = +start, count = +count;\n if (start === stop && count > 0) return [start];\n if (reverse = stop < start) n = start, start = stop, stop = n;\n if ((step = tickIncrement(start, stop, count)) === 0 || !isFinite(step)) return [];\n\n if (step > 0) {\n start = Math.ceil(start / step);\n stop = Math.floor(stop / step);\n ticks = new Array(n = Math.ceil(stop - start + 1));\n while (++i < n) ticks[i] = (start + i) * step;\n } else {\n start = Math.floor(start * step);\n stop = Math.ceil(stop * step);\n ticks = new Array(n = Math.ceil(start - stop + 1));\n while (++i < n) ticks[i] = (start - i) / step;\n }\n\n if (reverse) ticks.reverse();\n\n return ticks;\n}\n\nexport function tickIncrement(start, stop, count) {\n var step = (stop - start) / Math.max(0, count),\n power = Math.floor(Math.log(step) / Math.LN10),\n error = step / Math.pow(10, power);\n return power >= 0\n ? (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1) * Math.pow(10, power)\n : -Math.pow(10, -power) / (error >= e10 ? 10 : error >= e5 ? 5 : error >= e2 ? 2 : 1);\n}\n\nexport function tickStep(start, stop, count) {\n var step0 = Math.abs(stop - start) / Math.max(0, count),\n step1 = Math.pow(10, Math.floor(Math.log(step0) / Math.LN10)),\n error = step0 / step1;\n if (error >= e10) step1 *= 10;\n else if (error >= e5) step1 *= 5;\n else if (error >= e2) step1 *= 2;\n return stop < start ? -step1 : step1;\n}\n","export default function(values) {\n return Math.ceil(Math.log(values.length) / Math.LN2) + 1;\n}\n","import number from \"./number\";\n\nexport default function(values, p, valueof) {\n if (valueof == null) valueof = number;\n if (!(n = values.length)) return;\n if ((p = +p) <= 0 || n < 2) return +valueof(values[0], 0, values);\n if (p >= 1) return +valueof(values[n - 1], n - 1, values);\n var n,\n i = (n - 1) * p,\n i0 = Math.floor(i),\n value0 = +valueof(values[i0], i0, values),\n value1 = +valueof(values[i0 + 1], i0 + 1, values);\n return value0 + (value1 - value0) * (i - i0);\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n max;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n max = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && value > max) {\n max = value;\n }\n }\n }\n }\n }\n\n return max;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n min;\n\n if (valueof == null) {\n while (++i < n) { // Find the first comparable value.\n if ((value = values[i]) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = values[i]) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n else {\n while (++i < n) { // Find the first comparable value.\n if ((value = valueof(values[i], i, values)) != null && value >= value) {\n min = value;\n while (++i < n) { // Compare the remaining values.\n if ((value = valueof(values[i], i, values)) != null && min > value) {\n min = value;\n }\n }\n }\n }\n }\n\n return min;\n}\n","export default function(values, valueof) {\n var n = values.length,\n i = -1,\n value,\n sum = 0;\n\n if (valueof == null) {\n while (++i < n) {\n if (value = +values[i]) sum += value; // Note: zero and null are equivalent.\n }\n }\n\n else {\n while (++i < n) {\n if (value = +valueof(values[i], i, values)) sum += value;\n }\n }\n\n return sum;\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssueHealthStatus\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"HealthStatus\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":265}};\n doc.loc.source = {\"body\":\"mutation updateIssueHealthStatus($projectPath: ID!, $iid: String!, $healthStatus: HealthStatus) {\\n updateIssue(input: { projectPath: $projectPath, iid: $iid, healthStatus: $healthStatus }) {\\n issuable: issue {\\n id\\n healthStatus\\n }\\n errors\\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[\"updateIssueHealthStatus\"] = oneQuery(doc, \"updateIssueHealthStatus\");\n \n","import { s__ } from '~/locale';\n\nexport const CATEGORY_OPTIONS = [\n { value: 'spam', text: s__(\"ReportAbuse|They're posting spam.\") },\n { value: 'offensive', text: s__(\"ReportAbuse|They're being offensive or abusive.\") },\n { value: 'phishing', text: s__(\"ReportAbuse|They're phishing.\") },\n { value: 'crypto', text: s__(\"ReportAbuse|They're crypto mining.\") },\n {\n value: 'credentials',\n text: s__(\"ReportAbuse|They're posting personal information or credentials.\"),\n },\n { value: 'copyright', text: s__(\"ReportAbuse|They're violating a copyright or trademark.\") },\n { value: 'malware', text: s__(\"ReportAbuse|They're posting malware.\") },\n { value: 'other', text: s__('ReportAbuse|Something else.') },\n];\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueIteration\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"iteration\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":272}};\n doc.loc.source = {\"body\":\"#import \\\"./iteration.fragment.graphql\\\"\\n\\nquery projectIssueIteration($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n attribute: iteration {\\n ...IterationFragment\\n }\\n }\\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(\"./iteration.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[\"projectIssueIteration\"] = oneQuery(doc, \"projectIssueIteration\");\n \n","export {default as path} from \"./path.js\";\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(_vm.showParticipantLabel)?_c('div',{staticClass:\"gl-mb-2 gl-flex gl-items-center gl-gap-2 gl-font-bold gl-leading-24 gl-text-default\"},[_vm._v(\"\\n \"+_vm._s(_vm.participantLabel)+\"\\n \"),(_vm.loading)?_c('gl-loading-icon',{attrs:{\"inline\":\"\"}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-flex-wrap gl-gap-3\"},_vm._l((_vm.visibleParticipants),function(participant){return _c('a',{key:participant.id,staticClass:\"author-link js-user-link gl-inline-block gl-rounded-full\",attrs:{\"href\":participant.web_url || participant.webUrl,\"data-user-id\":_vm.getParticipantId(participant.id),\"data-username\":participant.username}},[_c('user-avatar-image',{attrs:{\"lazy\":_vm.lazy,\"img-src\":participant.avatar_url || participant.avatarUrl,\"size\":24,\"img-alt\":participant.name,\"css-classes\":\"!gl-mr-0\",\"tooltip-placement\":\"bottom\"}})],1)}),0),_vm._v(\" \"),(_vm.hasMoreParticipants)?_c('gl-button',{staticClass:\"gl-mt-3\",attrs:{\"category\":\"tertiary\",\"size\":\"small\"},on:{\"click\":_vm.toggleMoreParticipants}},[_vm._v(\"\\n \"+_vm._s(_vm.toggleLabel)+\"\\n \")]):_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!./participants.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!./participants.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlButton, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { __, n__, sprintf } from '~/locale';\nimport UserAvatarImage from '~/vue_shared/components/user_avatar/user_avatar_image.vue';\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlButton,\n GlLoadingIcon,\n UserAvatarImage,\n },\n props: {\n loading: {\n type: Boolean,\n required: false,\n default: false,\n },\n participants: {\n type: Array,\n required: false,\n default: () => [],\n },\n numberOfLessParticipants: {\n type: Number,\n required: false,\n default: 8,\n },\n showParticipantLabel: {\n type: Boolean,\n required: false,\n default: true,\n },\n lazy: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n data() {\n return {\n isShowingMoreParticipants: false,\n };\n },\n computed: {\n lessParticipants() {\n return this.participants.slice(0, this.numberOfLessParticipants);\n },\n visibleParticipants() {\n return this.isShowingMoreParticipants ? this.participants : this.lessParticipants;\n },\n hasMoreParticipants() {\n return this.participants.length > this.numberOfLessParticipants;\n },\n toggleLabel() {\n let label = '';\n if (this.isShowingMoreParticipants) {\n label = __('- show less');\n } else {\n label = sprintf(__('+ %{moreCount} more'), {\n moreCount: this.participants.length - this.numberOfLessParticipants,\n });\n }\n\n return label;\n },\n participantLabel() {\n return sprintf(\n n__('%{count} Participant', '%{count} Participants', this.participants.length),\n { count: this.loading ? '' : this.participantCount },\n );\n },\n participantCount() {\n return this.participants.length;\n },\n },\n methods: {\n toggleMoreParticipants() {\n this.isShowingMoreParticipants = !this.isShowingMoreParticipants;\n },\n getParticipantId(participantId) {\n return getIdFromGraphQLId(participantId);\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div\n v-if=\"showParticipantLabel\"\n class=\"gl-mb-2 gl-flex gl-items-center gl-gap-2 gl-font-bold gl-leading-24 gl-text-default\"\n >\n {{ participantLabel }}\n <gl-loading-icon v-if=\"loading\" inline />\n </div>\n <div class=\"gl-flex gl-flex-wrap gl-gap-3\">\n <a\n v-for=\"participant in visibleParticipants\"\n :key=\"participant.id\"\n :href=\"participant.web_url || participant.webUrl\"\n :data-user-id=\"getParticipantId(participant.id)\"\n :data-username=\"participant.username\"\n class=\"author-link js-user-link gl-inline-block gl-rounded-full\"\n >\n <user-avatar-image\n :lazy=\"lazy\"\n :img-src=\"participant.avatar_url || participant.avatarUrl\"\n :size=\"24\"\n :img-alt=\"participant.name\"\n css-classes=\"!gl-mr-0\"\n tooltip-placement=\"bottom\"\n />\n </a>\n </div>\n <gl-button\n v-if=\"hasMoreParticipants\"\n class=\"gl-mt-3\"\n category=\"tertiary\"\n size=\"small\"\n @click=\"toggleMoreParticipants\"\n >\n {{ toggleLabel }}\n </gl-button>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./participants.vue?vue&type=template&id=bb540ad4\"\nimport script from \"./participants.vue?vue&type=script&lang=js\"\nexport * from \"./participants.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 Vue from 'vue';\nimport isFunction from 'lodash/isFunction';\nimport isString from 'lodash/isString';\nimport { DISCLOSURE_DROPDOWN_ITEM_NAME, DISCLOSURE_DROPDOWN_GROUP_NAME } from './constants';\n\nconst itemValidator = item => {\n var _item$text;\n return (item === null || item === void 0 ? void 0 : (_item$text = item.text) === null || _item$text === void 0 ? void 0 : _item$text.length) > 0 && !Array.isArray(item === null || item === void 0 ? void 0 : item.items);\n};\nconst isItem = item => Boolean(item) && itemValidator(item);\nconst isGroup = group => Boolean(group) && Array.isArray(group.items) && Boolean(group.items.length) &&\n// eslint-disable-next-line unicorn/no-array-callback-reference\ngroup.items.every(isItem);\n\n// eslint-disable-next-line unicorn/no-array-callback-reference\nconst itemsValidator = items => items.every(isItem) || items.every(isGroup);\nconst isListItem = tag => ['gl-disclosure-dropdown-group', 'gl-disclosure-dropdown-item', 'li'].includes(tag);\nconst isValidSlotTagVue2 = vNode => {\n var _vNode$componentOptio;\n return Boolean(vNode) && isListItem(((_vNode$componentOptio = vNode.componentOptions) === null || _vNode$componentOptio === void 0 ? void 0 : _vNode$componentOptio.tag) || vNode.tag);\n};\nconst isValidSlotTagVue3 = vNode => {\n var _vNode$type;\n return [DISCLOSURE_DROPDOWN_ITEM_NAME, DISCLOSURE_DROPDOWN_GROUP_NAME].includes((_vNode$type = vNode.type) === null || _vNode$type === void 0 ? void 0 : _vNode$type.name) || vNode.type === 'li';\n};\nconst hasOnlyListItemsVue2 = defaultSlot => {\n const nodes = defaultSlot();\n if (!Array.isArray(nodes)) {\n return false;\n }\n const tags = nodes.filter(vNode => vNode.tag);\n return tags.length && tags.every(tag => isValidSlotTagVue2(tag));\n};\nconst hasOnlyListItemsVue3 = defaultSlot => {\n const nodes = defaultSlot();\n const fragment = nodes.find(node => Array.isArray(node.children) && node.children.length);\n const targetNodes = fragment ? fragment.children : nodes;\n return targetNodes\n // Remove empty text vNodes\n .filter(vNode => !isString(vNode.text) || vNode.text.trim().length > 0).every(vNode => isValidSlotTagVue3(vNode));\n};\nconst hasOnlyListItems = defaultSlot => {\n if (!isFunction(defaultSlot)) {\n return false;\n }\n if (Vue.version.startsWith('3')) {\n return hasOnlyListItemsVue3(defaultSlot);\n }\n return hasOnlyListItemsVue2(defaultSlot);\n};\n\nexport { hasOnlyListItems, isGroup, isItem, itemsValidator };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-collapsible-listbox',{ref:\"dropdown\",attrs:{\"block\":\"\",\"header-text\":_vm.$options.HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS,\"toggle-text\":_vm.dropdownText,\"items\":_vm.items},on:{\"select\":_vm.onSelect},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})\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!./health_status_dropdown.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!./health_status_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport {\n HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS,\n HEALTH_STATUS_I18N_NO_STATUS,\n HEALTH_STATUS_I18N_SELECT_HEALTH_STATUS,\n healthStatusDropdownOptions,\n healthStatusTextMap,\n} from '../../constants';\n\nexport default {\n HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS,\n HEALTH_STATUS_I18N_NO_STATUS,\n HEALTH_STATUS_I18N_SELECT_HEALTH_STATUS,\n healthStatusDropdownOptions,\n components: {\n GlCollapsibleListbox,\n },\n props: {\n /**\n * `null` represents a user's choice to remove the health status.\n * `undefined` represents no chosen value.\n */\n healthStatus: {\n type: String,\n required: false,\n default: undefined,\n },\n },\n data() {\n return {\n selected: this.healthStatus === null ? '' : this.healthStatus,\n };\n },\n computed: {\n items() {\n return [\n {\n text: '',\n options: [{ text: this.$options.HEALTH_STATUS_I18N_NO_STATUS, value: '' }],\n textSrOnly: true,\n },\n {\n text: __('Health status'),\n options: this.$options.healthStatusDropdownOptions,\n textSrOnly: true,\n },\n ];\n },\n dropdownText() {\n if (this.healthStatus === null) {\n return this.$options.HEALTH_STATUS_I18N_NO_STATUS;\n }\n return this.healthStatus\n ? healthStatusTextMap[this.healthStatus]\n : this.$options.HEALTH_STATUS_I18N_SELECT_HEALTH_STATUS;\n },\n },\n methods: {\n onSelect(value) {\n this.$emit('change', value === '' ? null : value);\n },\n show() {\n this.$refs.dropdown.open();\n },\n },\n};\n</script>\n\n<template>\n <gl-collapsible-listbox\n ref=\"dropdown\"\n v-model=\"selected\"\n block\n :header-text=\"$options.HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS\"\n :toggle-text=\"dropdownText\"\n :items=\"items\"\n @select=\"onSelect\"\n />\n</template>\n","import { render, staticRenderFns } from \"./health_status_dropdown.vue?vue&type=template&id=19249ed0\"\nimport script from \"./health_status_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./health_status_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 { extend } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN_STRING } from '../../../constants/props';\nimport { makeProp } from '../../../utils/props';\n\n// --- Props ---\n\nconst props = {\n stacked: makeProp(PROP_TYPE_BOOLEAN_STRING, false)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst stackedMixin = extend({\n props,\n computed: {\n isStacked() {\n const {\n stacked\n } = this;\n // `true` when always stacked, or returns breakpoint specified\n return stacked === '' ? true : stacked;\n },\n isStackedAlways() {\n return this.isStacked === true;\n },\n stackedTableClasses() {\n const {\n isStackedAlways\n } = this;\n return {\n 'b-table-stacked': isStackedAlways,\n [`b-table-stacked-${this.stacked}`]: !isStackedAlways && this.isStacked\n };\n }\n }\n});\n\nexport { props, stackedMixin };\n","/* eslint-disable no-console */\nexport const LOG_PREFIX = '[gitlab]';\n\nexport const logError = (message = '', ...args) => {\n console.error(LOG_PREFIX, `${message}\\n`, ...args);\n};\n","export default function(selector) {\n return function() {\n return this.matches(selector);\n };\n}\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (!_vm.items.length)?_c('div',[_vm._v(_vm._s(_vm.emptyText))]):_c('div',[_vm._l((_vm.visibleItems),function(item){return _c('user-avatar-link',{key:item.id,attrs:{\"link-href\":item.web_url || item.webUrl,\"img-src\":item.avatar_url || item.avatarUrl,\"img-alt\":item.name,\"tooltip-text\":item.name,\"img-size\":_vm.imgSize,\"popover-user-id\":item.id,\"popover-username\":item.username,\"img-css-classes\":\"gl-mr-3\"}})}),_vm._v(\" \"),(_vm.hasBreakpoint)?[(_vm.hasHiddenItems)?_c('gl-button',{attrs:{\"variant\":\"link\"},on:{\"click\":_vm.expand}},[_vm._v(\"\\n \"+_vm._s(_vm.expandText)+\"\\n \")]):_c('gl-button',{attrs:{\"variant\":\"link\"},on:{\"click\":_vm.collapse}},[_vm._v(\"\\n \"+_vm._s(_vm.__('show less'))+\"\\n \")])]:_vm._e()],2)\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!./user_avatar_list.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!./user_avatar_list.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { sprintf, __ } from '~/locale';\nimport UserAvatarLink from './user_avatar_link.vue';\n\nexport default {\n components: {\n UserAvatarLink,\n GlButton,\n },\n props: {\n items: {\n type: Array,\n required: true,\n },\n breakpoint: {\n type: Number,\n required: false,\n default: 10,\n },\n imgSize: {\n type: [Number, Object],\n required: true,\n },\n emptyText: {\n type: String,\n required: false,\n default: __('None'),\n },\n },\n data() {\n return {\n isExpanded: false,\n };\n },\n computed: {\n visibleItems() {\n if (!this.hasHiddenItems) {\n return this.items;\n }\n\n return this.items.slice(0, this.breakpoint);\n },\n hasHiddenItems() {\n return this.hasBreakpoint && !this.isExpanded && this.items.length > this.breakpoint;\n },\n hasBreakpoint() {\n return this.breakpoint > 0 && this.items.length > this.breakpoint;\n },\n expandText() {\n if (!this.hasHiddenItems) {\n return '';\n }\n\n const count = this.items.length - this.breakpoint;\n\n return sprintf(__('%{count} more'), { count });\n },\n },\n methods: {\n expand() {\n this.isExpanded = true;\n this.$emit('expanded');\n },\n collapse() {\n this.isExpanded = false;\n this.$emit('collapsed');\n },\n },\n};\n</script>\n\n<template>\n <div v-if=\"!items.length\">{{ emptyText }}</div>\n <div v-else>\n <user-avatar-link\n v-for=\"item in visibleItems\"\n :key=\"item.id\"\n :link-href=\"item.web_url || item.webUrl\"\n :img-src=\"item.avatar_url || item.avatarUrl\"\n :img-alt=\"item.name\"\n :tooltip-text=\"item.name\"\n :img-size=\"imgSize\"\n :popover-user-id=\"item.id\"\n :popover-username=\"item.username\"\n img-css-classes=\"gl-mr-3\"\n />\n <template v-if=\"hasBreakpoint\">\n <gl-button v-if=\"hasHiddenItems\" variant=\"link\" @click=\"expand\">\n {{ expandText }}\n </gl-button>\n <gl-button v-else variant=\"link\" @click=\"collapse\">\n {{ __('show less') }}\n </gl-button>\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./user_avatar_list.vue?vue&type=template&id=87fa9260\"\nimport script from \"./user_avatar_list.vue?vue&type=script&lang=js\"\nexport * from \"./user_avatar_list.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","<script>\nimport { GlDisclosureDropdown, GlIcon, GlSearchBoxByType, GlSprintf } from '@gitlab/ui';\nimport fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport { __, n__, s__, sprintf } from '~/locale';\n\nexport const i18n = {\n messageAdditionsDeletions: s__('Diffs|with %{additions} and %{deletions}'),\n noFilesFound: __('No files found.'),\n noFileNameAvailable: s__('Diffs|No file name available'),\n searchFiles: __('Search files'),\n};\n\nconst variantCssColorMap = {\n success: 'gl-text-success',\n danger: 'gl-text-danger',\n};\n\nexport default {\n i18n,\n components: {\n GlDisclosureDropdown,\n GlIcon,\n GlSearchBoxByType,\n GlSprintf,\n },\n props: {\n changed: {\n type: Number,\n required: true,\n },\n added: {\n type: Number,\n required: true,\n },\n deleted: {\n type: Number,\n required: true,\n },\n files: {\n type: Array,\n required: true,\n },\n },\n data() {\n return {\n search: '',\n };\n },\n computed: {\n filteredFiles() {\n return this.search.length > 0\n ? fuzzaldrinPlus.filter(this.files, this.search, { key: 'name' })\n : this.files;\n },\n dropdownItems() {\n return this.filteredFiles.map((file) => {\n return {\n ...file,\n text: file.name || this.$options.i18n.noFileNameAvailable,\n iconColor: variantCssColorMap[file.iconColor],\n };\n });\n },\n messageChanged() {\n return sprintf(\n n__(\n 'Diffs|Showing %{dropdownStart}%{count} changed file%{dropdownEnd}',\n 'Diffs|Showing %{dropdownStart}%{count} changed files%{dropdownEnd}',\n this.changed,\n ),\n { count: this.changed },\n );\n },\n },\n methods: {\n focusInput() {\n this.$refs.search.focusInput();\n },\n focusFirstItem() {\n if (!this.filteredFiles.length) return;\n this.$el.querySelector('.gl-new-dropdown-item:first-child').focus();\n },\n additionsText(numberOfChanges = this.added) {\n return n__('Diffs|%d addition', 'Diffs|%d additions', numberOfChanges);\n },\n deletionsText(numberOfChanges = this.deleted) {\n return n__('Diffs|%d deletion', 'Diffs|%d deletions', numberOfChanges);\n },\n },\n};\n</script>\n\n<template>\n <div>\n <gl-sprintf :message=\"messageChanged\">\n <template #dropdown=\"{ content: dropdownText }\">\n <gl-disclosure-dropdown\n :toggle-text=\"dropdownText\"\n :items=\"dropdownItems\"\n category=\"tertiary\"\n variant=\"confirm\"\n data-testid=\"diff-stats-dropdown\"\n class=\"gl-align-baseline\"\n toggle-class=\"!gl-px-0 !gl-font-bold\"\n fluid-width\n @shown=\"focusInput\"\n >\n <template #header>\n <gl-search-box-by-type\n ref=\"search\"\n v-model.trim=\"search\"\n :placeholder=\"$options.i18n.searchFiles\"\n class=\"gl-mx-3 gl-my-4\"\n @keydown.down=\"focusFirstItem\"\n />\n <span v-if=\"!filteredFiles.length\" class=\"gl-mx-3\">\n {{ $options.i18n.noFilesFound }}\n </span>\n </template>\n <template #list-item=\"{ item }\">\n <div class=\"gl-flex gl-items-center gl-gap-3 gl-overflow-hidden\">\n <gl-icon :name=\"item.icon\" :class=\"item.iconColor\" class=\"gl-shrink-0\" />\n <div class=\"gl-grow gl-overflow-hidden\">\n <div class=\"gl-flex\">\n <span\n class=\"gl-mr-3 gl-grow gl-font-bold\"\n :class=\"item.name ? 'gl-truncate' : 'gl-italic gl-text-subtle'\"\n >{{ item.text }}</span\n >\n <span class=\"gl-ml-auto gl-whitespace-nowrap\" aria-hidden=\"true\">\n <span class=\"gl-text-success\">+{{ item.added }}</span>\n <span class=\"gl-text-danger\">-{{ item.removed }}</span>\n </span>\n <span class=\"gl-sr-only\"\n >{{ additionsText(item.added) }}, {{ deletionsText(item.removed) }}</span\n >\n </div>\n <div class=\"gl-overflow-hidden gl-text-ellipsis gl-text-subtle\">\n {{ item.path }}\n </div>\n </div>\n </div>\n </template>\n </gl-disclosure-dropdown>\n </template>\n </gl-sprintf>\n <span\n class=\"diff-stats-additions-deletions-expanded\"\n data-testid=\"diff-stats-additions-deletions-expanded\"\n >\n <gl-sprintf :message=\"$options.i18n.messageAdditionsDeletions\">\n <template #additions>\n <span class=\"gl-font-bold gl-text-success\">{{ additionsText() }}</span>\n </template>\n <template #deletions>\n <span class=\"gl-font-bold gl-text-danger\">{{ deletionsText() }}</span>\n </template>\n </gl-sprintf>\n </span>\n </div>\n</template>\n\n<style scoped>\n/* TODO: Use max-height prop when gitlab-ui got updated.\nSee https://gitlab.com/gitlab-org/gitlab-ui/-/issues/2374 */\n::v-deep .gl-new-dropdown-inner {\n max-height: 310px;\n}\n</style>\n","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!./diff_stats_dropdown.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!./diff_stats_dropdown.vue?vue&type=script&lang=js\"","import api from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ref--20-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./diff_stats_dropdown.vue?vue&type=style&index=0&id=5fa5a073&prod&scoped=true&lang=css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./diff_stats_dropdown.vue?vue&type=template&id=5fa5a073&scoped=true\"\nimport script from \"./diff_stats_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./diff_stats_dropdown.vue?vue&type=script&lang=js\"\nimport style0 from \"./diff_stats_dropdown.vue?vue&type=style&index=0&id=5fa5a073&prod&scoped=true&lang=css\"\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 \"5fa5a073\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('gl-sprintf',{attrs:{\"message\":_vm.messageChanged},scopedSlots:_vm._u([{key:\"dropdown\",fn:function({ content: dropdownText }){return [_c('gl-disclosure-dropdown',{staticClass:\"gl-align-baseline\",attrs:{\"toggle-text\":dropdownText,\"items\":_vm.dropdownItems,\"category\":\"tertiary\",\"variant\":\"confirm\",\"data-testid\":\"diff-stats-dropdown\",\"toggle-class\":\"!gl-px-0 !gl-font-bold\",\"fluid-width\":\"\"},on:{\"shown\":_vm.focusInput},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('gl-search-box-by-type',{ref:\"search\",staticClass:\"gl-mx-3 gl-my-4\",attrs:{\"placeholder\":_vm.$options.i18n.searchFiles},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"down\",40,$event.key,[\"Down\",\"ArrowDown\"]))return null;return _vm.focusFirstItem.apply(null, arguments)}},model:{value:(_vm.search),callback:function ($$v) {_vm.search=(typeof $$v === 'string'? $$v.trim(): $$v)},expression:\"search\"}}),_vm._v(\" \"),(!_vm.filteredFiles.length)?_c('span',{staticClass:\"gl-mx-3\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.noFilesFound)+\"\\n \")]):_vm._e()]},proxy:true},{key:\"list-item\",fn:function({ item }){return [_c('div',{staticClass:\"gl-flex gl-items-center gl-gap-3 gl-overflow-hidden\"},[_c('gl-icon',{staticClass:\"gl-shrink-0\",class:item.iconColor,attrs:{\"name\":item.icon}}),_vm._v(\" \"),_c('div',{staticClass:\"gl-grow gl-overflow-hidden\"},[_c('div',{staticClass:\"gl-flex\"},[_c('span',{staticClass:\"gl-mr-3 gl-grow gl-font-bold\",class:item.name ? 'gl-truncate' : 'gl-italic gl-text-subtle'},[_vm._v(_vm._s(item.text))]),_vm._v(\" \"),_c('span',{staticClass:\"gl-ml-auto gl-whitespace-nowrap\",attrs:{\"aria-hidden\":\"true\"}},[_c('span',{staticClass:\"gl-text-success\"},[_vm._v(\"+\"+_vm._s(item.added))]),_vm._v(\" \"),_c('span',{staticClass:\"gl-text-danger\"},[_vm._v(\"-\"+_vm._s(item.removed))])]),_vm._v(\" \"),_c('span',{staticClass:\"gl-sr-only\"},[_vm._v(_vm._s(_vm.additionsText(item.added))+\", \"+_vm._s(_vm.deletionsText(item.removed)))])]),_vm._v(\" \"),_c('div',{staticClass:\"gl-overflow-hidden gl-text-ellipsis gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(item.path)+\"\\n \")])])],1)]}}],null,true)})]}}])}),_vm._v(\" \"),_c('span',{staticClass:\"diff-stats-additions-deletions-expanded\",attrs:{\"data-testid\":\"diff-stats-additions-deletions-expanded\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.messageAdditionsDeletions},scopedSlots:_vm._u([{key:\"additions\",fn:function(){return [_c('span',{staticClass:\"gl-font-bold gl-text-success\"},[_vm._v(_vm._s(_vm.additionsText()))])]},proxy:true},{key:\"deletions\",fn:function(){return [_c('span',{staticClass:\"gl-font-bold gl-text-danger\"},[_vm._v(_vm._s(_vm.deletionsText()))])]},proxy:true}])})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport DiffStatsDropdown from '~/vue_shared/components/diff_stats_dropdown.vue';\n\nexport const initDiffStatsDropdown = () => {\n const el = document.querySelector('.js-diff-stats-dropdown');\n\n if (!el) {\n return false;\n }\n\n const { changed, added, deleted, files } = el.dataset;\n\n return new Vue({\n el,\n render: (createElement) =>\n createElement(DiffStatsDropdown, {\n props: {\n changed: parseInt(changed, 10),\n added: parseInt(added, 10),\n deleted: parseInt(deleted, 10),\n files: JSON.parse(files),\n },\n }),\n });\n};\n","import { identity } from '../../../utils/identity';\nimport { isArray, isString, isObject, isFunction } from '../../../utils/inspect';\nimport { clone, keys } from '../../../utils/object';\nimport { startCase } from '../../../utils/string';\nimport { IGNORED_FIELD_KEYS } from './constants';\n\n// Private function to massage field entry into common object format\nconst processField = (key, value) => {\n let field = null;\n if (isString(value)) {\n // Label shortcut\n field = {\n key,\n label: value\n };\n } else if (isFunction(value)) {\n // Formatter shortcut\n field = {\n key,\n formatter: value\n };\n } else if (isObject(value)) {\n field = clone(value);\n field.key = field.key || key;\n } else if (value !== false) {\n // Fallback to just key\n /* istanbul ignore next */\n field = {\n key\n };\n }\n return field;\n};\n\n// We normalize fields into an array of objects\n// [ { key:..., label:..., ...}, {...}, ..., {..}]\nconst normalizeFields = (origFields, items) => {\n const fields = [];\n if (isArray(origFields)) {\n // Normalize array Form\n origFields.filter(identity).forEach(f => {\n if (isString(f)) {\n fields.push({\n key: f,\n label: startCase(f)\n });\n } else if (isObject(f) && f.key && isString(f.key)) {\n // Full object definition. We use assign so that we don't mutate the original\n fields.push(clone(f));\n } else if (isObject(f) && keys(f).length === 1) {\n // Shortcut object (i.e. { 'foo_bar': 'This is Foo Bar' }\n const key = keys(f)[0];\n const field = processField(key, f[key]);\n if (field) {\n fields.push(field);\n }\n }\n });\n }\n\n // If no field provided, take a sample from first record (if exits)\n if (fields.length === 0 && isArray(items) && items.length > 0) {\n const sample = items[0];\n keys(sample).forEach(k => {\n if (!IGNORED_FIELD_KEYS[k]) {\n fields.push({\n key: k,\n label: startCase(k)\n });\n }\n });\n }\n\n // Ensure we have a unique array of fields and that they have String labels\n const memo = {};\n return fields.filter(f => {\n if (!memo[f.key]) {\n memo[f.key] = true;\n f.label = isString(f.label) ? f.label : startCase(f.key);\n return true;\n }\n return false;\n });\n};\n\nexport { normalizeFields };\n","import { extend } from '../../../vue';\nimport { EVENT_NAME_CONTEXT_CHANGED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_STRING } from '../../../constants/props';\nimport { useParentMixin } from '../../../mixins/use-parent';\nimport { isArray, isString, isFunction } 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 { sortKeys, clone } from '../../../utils/object';\nimport { makeProp } from '../../../utils/props';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { normalizeFields } from './normalize-fields';\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_ARRAY,\n defaultValue: []\n});\n\n// --- Props ---\n\nconst props = sortKeys({\n ...modelProps,\n fields: makeProp(PROP_TYPE_ARRAY, null),\n // Provider mixin adds in `Function` type\n items: makeProp(PROP_TYPE_ARRAY, []),\n // Primary key for record\n // If provided the value in each row must be unique!\n primaryKey: makeProp(PROP_TYPE_STRING),\n // `v-model` for retrieving the current displayed rows\n [MODEL_PROP_NAME]: makeProp(PROP_TYPE_ARRAY, [])\n});\n\n// --- Mixin ---\n\n// @vue/component\nconst itemsMixin = extend({\n mixins: [modelMixin, useParentMixin],\n props,\n data() {\n const {\n items\n } = this;\n return {\n // Our local copy of the items\n // Must be an array\n localItems: isArray(items) ? items.slice() : []\n };\n },\n computed: {\n computedFields() {\n // We normalize fields into an array of objects\n // `[ { key:..., label:..., ...}, {...}, ..., {..}]`\n return normalizeFields(this.fields, this.localItems);\n },\n computedFieldsObj() {\n // Fields as a simple lookup hash object\n // Mainly for formatter lookup and use in `scopedSlots` for convenience\n // If the field has a formatter, it normalizes formatter to a\n // function ref or `undefined` if no formatter\n const {\n bvParent\n } = this;\n return this.computedFields.reduce((obj, f) => {\n // We use object spread here so we don't mutate the original field object\n obj[f.key] = clone(f);\n if (f.formatter) {\n // Normalize formatter to a function ref or `undefined`\n let formatter = f.formatter;\n if (isString(formatter) && isFunction(bvParent[formatter])) {\n formatter = bvParent[formatter];\n } else if (!isFunction(formatter)) {\n /* istanbul ignore next */\n formatter = undefined;\n }\n // Return formatter function or `undefined` if none\n obj[f.key].formatter = formatter;\n }\n return obj;\n }, {});\n },\n computedItems() {\n const {\n paginatedItems,\n sortedItems,\n filteredItems,\n localItems\n } = safeVueInstance(this);\n // Fallback if various mixins not provided\n return (paginatedItems || sortedItems || filteredItems || localItems || /* istanbul ignore next */\n []).slice();\n },\n context() {\n const {\n perPage,\n currentPage\n } = safeVueInstance(this);\n // Current state of sorting, filtering and pagination props/values\n return {\n filter: this.localFilter,\n sortBy: this.localSortBy,\n sortDesc: this.localSortDesc,\n perPage: mathMax(toInteger(perPage, 0), 0),\n currentPage: mathMax(toInteger(currentPage, 0), 1),\n apiUrl: this.apiUrl\n };\n }\n },\n watch: {\n items(newValue) {\n // Set `localItems`/`filteredItems` to a copy of the provided array\n this.localItems = isArray(newValue) ? newValue.slice() : [];\n },\n // Watch for changes on `computedItems` and update the `v-model`\n computedItems(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(MODEL_EVENT_NAME, newValue);\n }\n },\n // Watch for context changes\n context(newValue, oldValue) {\n // Emit context information for external paging/filtering/sorting handling\n if (!looseEqual(newValue, oldValue)) {\n this.$emit(EVENT_NAME_CONTEXT_CHANGED, newValue);\n }\n }\n },\n mounted() {\n // Initially update the `v-model` of displayed items\n this.$emit(MODEL_EVENT_NAME, this.computedItems);\n },\n methods: {\n // Method to get the formatter method for a given field key\n getFieldFormatter(key) {\n const field = this.computedFieldsObj[key];\n // `this.computedFieldsObj` has pre-normalized the formatter to a\n // function ref if present, otherwise `undefined`\n return field ? field.formatter : undefined;\n }\n }\n});\n\nexport { MODEL_EVENT_NAME, MODEL_PROP_NAME, itemsMixin, props };\n","/* eslint-disable class-methods-use-this, no-new */\nimport $ from 'jquery';\nimport issuableEventHub from '~/issues/list/eventhub';\nimport LabelsSelect from '~/labels/labels_select';\nimport {\n mountAssigneesDropdown,\n mountConfidentialityDropdown,\n mountMilestoneDropdown,\n mountMoveIssuesButton,\n mountStatusDropdown,\n mountSubscriptionsDropdown,\n} from '~/sidebar/mount_sidebar';\nimport IssuableBulkUpdateActions from './issuable_bulk_update_actions';\n\nconst HIDDEN_CLASS = 'hidden';\nconst DISABLED_CONTENT_CLASS = 'disabled-content';\nconst SIDEBAR_EXPANDED_CLASS = 'right-sidebar-expanded issuable-bulk-update-sidebar';\nconst SIDEBAR_COLLAPSED_CLASS = 'right-sidebar-collapsed issuable-bulk-update-sidebar';\n\nexport default class IssuableBulkUpdateSidebar {\n constructor() {\n this.initDomElements();\n this.bindEvents();\n this.initDropdowns();\n this.setupBulkUpdateActions();\n }\n\n initDomElements() {\n this.$page = $('.layout-page');\n this.$sidebar = $('.right-sidebar');\n this.$sidebarInnerContainer = this.$sidebar.find('.issuable-sidebar');\n this.$bulkEditCancelBtn = $('.js-bulk-update-menu-hide');\n this.$bulkEditSubmitBtn = $('.js-update-selected-issues');\n this.$bulkUpdateEnableBtn = $('.js-bulk-update-toggle');\n this.$otherFilters = $('.issues-other-filters');\n this.$checkAllContainer = $('.check-all-holder');\n this.$issueChecks = $('.issue-check');\n this.$issuesList = $('.issuable-list input[type=\"checkbox\"]');\n this.$issuableIdsInput = $('#update_issuable_ids');\n }\n\n bindEvents() {\n this.$bulkUpdateEnableBtn.on('click', (e) => this.toggleBulkEdit(e, true));\n this.$bulkEditCancelBtn.on('click', (e) => this.toggleBulkEdit(e, false));\n this.$checkAllContainer.on('click', (e) => this.selectAll(e));\n this.$issuesList.on('change', () => this.updateFormState());\n this.$bulkEditSubmitBtn.on('click', () => this.prepForSubmit());\n this.$checkAllContainer.on('click', () => this.updateFormState());\n\n // The event hub connects this bulk update logic with `issues_list_app.vue`.\n // We can remove it once we've refactored the issues list page bulk edit sidebar to Vue.\n // https://gitlab.com/gitlab-org/gitlab/-/issues/325874\n issuableEventHub.$on('issuables:enableBulkEdit', () => this.toggleBulkEdit(null, true));\n issuableEventHub.$on('issuables:updateBulkEdit', () => this.updateFormState());\n\n // These events are connected to the logic inside `move_issues_button.vue`,\n // so that only one action can be performed at a time\n issuableEventHub.$on('issuables:bulkMoveStarted', () => this.toggleSubmitButtonDisabled(true));\n issuableEventHub.$on('issuables:bulkMoveEnded', () => this.updateFormState());\n }\n\n initDropdowns() {\n new LabelsSelect();\n mountMilestoneDropdown();\n mountMoveIssuesButton();\n mountStatusDropdown();\n mountSubscriptionsDropdown();\n mountAssigneesDropdown();\n mountConfidentialityDropdown();\n\n // Checking IS_EE and using ee_else_ce is odd, but we do it here to satisfy\n // the import/no-unresolved lint rule when FOSS_ONLY=1, even though at\n // runtime this block won't execute.\n if (IS_EE) {\n import('ee_else_ce/sidebar/mount_sidebar')\n .then(({ mountEpicDropdown, mountHealthStatusDropdown, mountIterationDropdown }) => {\n mountEpicDropdown();\n mountHealthStatusDropdown();\n mountIterationDropdown();\n })\n .catch(() => {});\n }\n }\n\n setupBulkUpdateActions() {\n IssuableBulkUpdateActions.setOriginalDropdownData();\n }\n\n updateFormState() {\n const noCheckedIssues = !$('.issuable-list input[type=\"checkbox\"]:checked').length;\n\n this.toggleSubmitButtonDisabled(noCheckedIssues);\n this.updateSelectedIssuableIds();\n\n IssuableBulkUpdateActions.setOriginalDropdownData();\n\n issuableEventHub.$emit('issuables:selectionChanged', !noCheckedIssues);\n }\n\n prepForSubmit() {\n // if submit button is disabled, submission is blocked. This ensures we disable after\n // form submission is carried out\n setTimeout(() => this.$bulkEditSubmitBtn.disable());\n this.updateSelectedIssuableIds();\n }\n\n toggleBulkEdit(e, enable) {\n e?.preventDefault();\n\n issuableEventHub.$emit('issuables:toggleBulkEdit', enable);\n\n this.toggleSidebarDisplay(enable);\n this.toggleBulkEditButtonDisabled(enable);\n this.toggleOtherFiltersDisabled(enable);\n this.toggleCheckboxDisplay(enable);\n }\n\n updateSelectedIssuableIds() {\n this.$issuableIdsInput.val(IssuableBulkUpdateSidebar.getCheckedIssueIds());\n }\n\n selectAll() {\n const checkAllButtonState = this.$checkAllContainer.find('input').prop('checked');\n\n this.$issuesList.prop('checked', checkAllButtonState);\n }\n\n toggleSidebarDisplay(show) {\n this.$page.toggleClass(SIDEBAR_EXPANDED_CLASS, show);\n this.$page.toggleClass(SIDEBAR_COLLAPSED_CLASS, !show);\n this.$sidebarInnerContainer.toggleClass(HIDDEN_CLASS, !show);\n this.$sidebar.toggleClass(SIDEBAR_EXPANDED_CLASS, show);\n this.$sidebar.toggleClass(SIDEBAR_COLLAPSED_CLASS, !show);\n }\n\n toggleBulkEditButtonDisabled(disable) {\n if (disable) {\n this.$bulkUpdateEnableBtn.disable();\n } else {\n this.$bulkUpdateEnableBtn.enable();\n }\n }\n\n toggleCheckboxDisplay(show) {\n this.$checkAllContainer.toggleClass(HIDDEN_CLASS, !show);\n this.$issueChecks.toggleClass(HIDDEN_CLASS, !show);\n }\n\n toggleOtherFiltersDisabled(disable) {\n this.$otherFilters.toggleClass(DISABLED_CONTENT_CLASS, disable);\n }\n\n toggleSubmitButtonDisabled(disable) {\n if (disable) {\n this.$bulkEditSubmitBtn.disable();\n } else {\n this.$bulkEditSubmitBtn.enable();\n }\n }\n\n static getCheckedIssueIds() {\n const $checkedIssues = $('.issuable-list input[type=\"checkbox\"]:checked');\n\n if ($checkedIssues.length > 0) {\n return $.map($checkedIssues, (value) => $(value).data('id'));\n }\n\n return [];\n }\n}\n","import { GlBreakpointInstance as bp } from '@gitlab/ui/dist/utils';\nimport $ from 'jquery';\nimport { setCookie } from '~/lib/utils/common_utils';\nimport UsersSelect from '~/users_select';\n\nexport default class IssuableContext {\n constructor(currentUser) {\n this.reviewersSelect = new UsersSelect(currentUser, '.js-reviewer-search');\n\n this.reviewersSelect.dropdowns.forEach((glDropdownInstance) => {\n const jQueryWrapper = glDropdownInstance.dropdown;\n const domElement = jQueryWrapper[0];\n const content = domElement.querySelector('.dropdown-content');\n const loader = domElement.querySelector('.dropdown-loading');\n const spinner = loader.querySelector('.gl-spinner-container');\n const realParent = loader.parentNode;\n\n domElement.classList.add('non-blocking-loader');\n spinner.classList.remove('gl-mt-7');\n spinner.classList.add('gl-mt-2');\n\n jQueryWrapper.on('shown.bs.dropdown', () => {\n glDropdownInstance.filterInput.focus();\n });\n jQueryWrapper.on('toggle.on.loading.gl.dropdown filtering.gl.dropdown', () => {\n content.appendChild(loader);\n });\n jQueryWrapper.on('done.remote.loading.gl.dropdown done.filtering.gl.dropdown', () => {\n realParent.appendChild(loader);\n });\n });\n\n $('.issuable-sidebar .inline-update').on('change', 'select', function onClickSelect() {\n return $(this).submit();\n });\n $(document)\n .off('click', '.issuable-sidebar .dropdown-content a')\n .on('click', '.issuable-sidebar .dropdown-content a', (e) => e.preventDefault());\n\n $(document)\n .off('click', '.edit-link')\n .on('click', '.edit-link', function onClickEdit(e) {\n e.preventDefault();\n const $block = $(this).parents('.block');\n const $selectbox = $block.find('.selectbox');\n if ($selectbox.is(':visible')) {\n $selectbox.hide();\n $block.find('.value:not(.dont-hide)').show();\n } else {\n $selectbox.show();\n $block.find('.value:not(.dont-hide)').hide();\n }\n\n if ($selectbox.is(':visible')) {\n setTimeout(() => $block.find('.dropdown-menu-toggle').trigger('click'), 0);\n }\n });\n\n window.addEventListener('beforeunload', () => {\n // collapsed_gutter cookie hides the sidebar\n const bpBreakpoint = bp.getBreakpointSize();\n const supportedSizes = ['xs', 'sm', 'md'];\n\n if (supportedSizes.includes(bpBreakpoint)) {\n setCookie('collapsed_gutter', true);\n }\n });\n }\n}\n","import { GlToast } from '@gitlab/ui';\nimport Vue from 'vue';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport Sidebar from '~/right_sidebar';\nimport { getSidebarOptions } from '~/sidebar/mount_sidebar';\nimport CsvImportExportButtons from './components/csv_import_export_buttons.vue';\nimport IssuableByEmail from './components/issuable_by_email.vue';\nimport issuableBulkUpdateActions from './issuable_bulk_update_actions';\nimport IssuableBulkUpdateSidebar from './issuable_bulk_update_sidebar';\nimport IssuableContext from './issuable_context';\n\nexport function initBulkUpdateSidebar(prefixId) {\n const el = document.querySelector('.issues-bulk-update');\n\n if (!el) {\n return;\n }\n\n issuableBulkUpdateActions.init({ prefixId });\n new IssuableBulkUpdateSidebar(); // eslint-disable-line no-new\n}\n\nexport function initCsvImportExportButtons() {\n const el = document.querySelector('.js-csv-import-export-buttons');\n\n if (!el) {\n return null;\n }\n\n const {\n showExportButton,\n showImportButton,\n issuableType,\n issuableCount,\n email,\n exportCsvPath,\n importCsvIssuesPath,\n canEdit,\n projectImportJiraPath,\n maxAttachmentSize,\n } = el.dataset;\n\n return new Vue({\n el,\n name: 'CsvImportExportButtonsRoot',\n provide: {\n showExportButton: parseBoolean(showExportButton),\n showImportButton: parseBoolean(showImportButton),\n issuableType,\n email,\n importCsvIssuesPath,\n canEdit: parseBoolean(canEdit),\n projectImportJiraPath,\n maxAttachmentSize,\n },\n render: (createElement) =>\n createElement(CsvImportExportButtons, {\n props: {\n exportCsvPath,\n issuableCount: parseInt(issuableCount, 10),\n },\n }),\n });\n}\n\nexport function initIssuableByEmail() {\n const el = document.querySelector('.js-issuable-by-email');\n\n if (!el) {\n return null;\n }\n\n Vue.use(GlToast);\n\n const {\n initialEmail,\n issuableType,\n emailsHelpPagePath,\n quickActionsHelpPath,\n markdownHelpPath,\n resetPath,\n } = el.dataset;\n\n return new Vue({\n el,\n name: 'IssuableByEmailRoot',\n provide: {\n initialEmail,\n issuableType,\n emailsHelpPagePath,\n quickActionsHelpPath,\n markdownHelpPath,\n resetPath,\n },\n render: (createElement) => createElement(IssuableByEmail),\n });\n}\n\nexport function initIssuableSidebar() {\n const el = document.querySelector('.js-sidebar-options');\n\n if (!el) {\n return;\n }\n\n const sidebarOptions = getSidebarOptions(el);\n\n new IssuableContext(sidebarOptions.currentUser); // eslint-disable-line no-new\n Sidebar.initialize();\n}\n","import { s__ } from '~/locale';\n\nexport const CLOSED = 'closed';\n\nexport const OPEN = 'open';\n\nexport const UNBLOCK_RULES_KEY = 'unblock_rules_using_execution_policies';\n\nexport const UNBLOCK_RULES_TEXT = s__(\n 'ScanResultPolicy|Make approval rules optional using scan execution policies',\n);\n","(function (root, factory) {\n if (typeof define === \"function\" && define.amd) {\n define([], factory);\n } else if (typeof module === \"object\" && module.exports) {\n module.exports = factory();\n } else {\n root.Scrollparent = factory();\n }\n}(this, function () {\n var regex = /(auto|scroll)/;\n\n var parents = function (node, ps) {\n if (node.parentNode === null) { return ps; }\n\n return parents(node.parentNode, ps.concat([node]));\n };\n\n var style = function (node, prop) {\n return getComputedStyle(node, null).getPropertyValue(prop);\n };\n\n var overflow = function (node) {\n return style(node, \"overflow\") + style(node, \"overflow-y\") + style(node, \"overflow-x\");\n };\n\n var scroll = function (node) {\n return regex.test(overflow(node));\n };\n\n var scrollParent = function (node) {\n if (!(node instanceof HTMLElement || node instanceof SVGElement)) {\n return ;\n }\n\n var ps = parents(node.parentNode, []);\n\n for (var i = 0; i < ps.length; i += 1) {\n if (scroll(ps[i])) {\n return ps[i];\n }\n }\n\n return document.scrollingElement || document.documentElement;\n };\n\n return scrollParent;\n}));\n","'use strict';\n\nvar YAMLException = require('./exception');\n\nvar TYPE_CONSTRUCTOR_OPTIONS = [\n 'kind',\n 'resolve',\n 'construct',\n 'instanceOf',\n 'predicate',\n 'represent',\n 'defaultStyle',\n 'styleAliases'\n];\n\nvar YAML_NODE_KINDS = [\n 'scalar',\n 'sequence',\n 'mapping'\n];\n\nfunction compileStyleAliases(map) {\n var result = {};\n\n if (map !== null) {\n Object.keys(map).forEach(function (style) {\n map[style].forEach(function (alias) {\n result[String(alias)] = style;\n });\n });\n }\n\n return result;\n}\n\nfunction Type(tag, options) {\n options = options || {};\n\n Object.keys(options).forEach(function (name) {\n if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) {\n throw new YAMLException('Unknown option \"' + name + '\" is met in definition of \"' + tag + '\" YAML type.');\n }\n });\n\n // TODO: Add tag format check.\n this.tag = tag;\n this.kind = options['kind'] || null;\n this.resolve = options['resolve'] || function () { return true; };\n this.construct = options['construct'] || function (data) { return data; };\n this.instanceOf = options['instanceOf'] || null;\n this.predicate = options['predicate'] || null;\n this.represent = options['represent'] || null;\n this.defaultStyle = options['defaultStyle'] || null;\n this.styleAliases = compileStyleAliases(options['styleAliases'] || null);\n\n if (YAML_NODE_KINDS.indexOf(this.kind) === -1) {\n throw new YAMLException('Unknown kind \"' + this.kind + '\" is specified for \"' + tag + '\" YAML type.');\n }\n}\n\nmodule.exports = Type;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"playPipelineMiniGraphJob\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CiProcessableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobPlay\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"job\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Job\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":182}};\n doc.loc.source = {\"body\":\"#import \\\"../fragments/job.fragment.graphql\\\"\\n\\nmutation playPipelineMiniGraphJob($id: CiProcessableID!) {\\n jobPlay(input: { id: $id }) {\\n job {\\n ...Job\\n }\\n errors\\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(\"../fragments/job.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[\"playPipelineMiniGraphJob\"] = oneQuery(doc, \"playPipelineMiniGraphJob\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-badge',{attrs:{\"variant\":\"muted\"}},[_vm._t(\"default\")],2)\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!./user_access_role_badge.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!./user_access_role_badge.vue?vue&type=script&lang=js\"","<script>\n/**\n * This component applies particular styling to GlBadge that isn't\n * available in the current GlBadge variants.\n * Where possible, prefer one of the supported GlBadge variants.\n * Discussion issue: https://gitlab.com/gitlab-org/gitlab-ui/-/issues/1247\n */\nimport { GlBadge } from '@gitlab/ui';\n\nexport default {\n name: 'UserAccessRoleBadge',\n components: {\n GlBadge,\n },\n};\n</script>\n\n<template>\n <gl-badge variant=\"muted\">\n <slot></slot>\n </gl-badge>\n</template>\n","import { render, staticRenderFns } from \"./user_access_role_badge.vue?vue&type=template&id=6096c5c6\"\nimport script from \"./user_access_role_badge.vue?vue&type=script&lang=js\"\nexport * from \"./user_access_role_badge.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","'use strict';\n\n\nvar common = require('./common');\n\n\nfunction Mark(name, buffer, position, line, column) {\n this.name = name;\n this.buffer = buffer;\n this.position = position;\n this.line = line;\n this.column = column;\n}\n\n\nMark.prototype.getSnippet = function getSnippet(indent, maxLength) {\n var head, start, tail, end, snippet;\n\n if (!this.buffer) return null;\n\n indent = indent || 4;\n maxLength = maxLength || 75;\n\n head = '';\n start = this.position;\n\n while (start > 0 && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(start - 1)) === -1) {\n start -= 1;\n if (this.position - start > (maxLength / 2 - 1)) {\n head = ' ... ';\n start += 5;\n break;\n }\n }\n\n tail = '';\n end = this.position;\n\n while (end < this.buffer.length && '\\x00\\r\\n\\x85\\u2028\\u2029'.indexOf(this.buffer.charAt(end)) === -1) {\n end += 1;\n if (end - this.position > (maxLength / 2 - 1)) {\n tail = ' ... ';\n end -= 5;\n break;\n }\n }\n\n snippet = this.buffer.slice(start, end);\n\n return common.repeat(' ', indent) + head + snippet + tail + '\\n' +\n common.repeat(' ', indent + this.position - start + head.length) + '^';\n};\n\n\nMark.prototype.toString = function toString(compact) {\n var snippet, where = '';\n\n if (this.name) {\n where += 'in \"' + this.name + '\" ';\n }\n\n where += 'at line ' + (this.line + 1) + ', column ' + (this.column + 1);\n\n if (!compact) {\n snippet = this.getSnippet();\n\n if (snippet) {\n where += ':\\n' + snippet;\n }\n }\n\n return where;\n};\n\n\nmodule.exports = Mark;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:({ placement: _vm.tooltipPlacement, container: _vm.tooltipContainer }),expression:\"{ placement: tooltipPlacement, container: tooltipContainer }\"}],class:_vm.cssClasses,attrs:{\"id\":_vm.id,\"data-clipboard-target\":_vm.target,\"data-clipboard-text\":_vm.text,\"title\":_vm.title,\"aria-label\":_vm.title,\"category\":_vm.category,\"icon\":\"copy-to-clipboard\"}})\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!./modal_copy_button.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!./modal_copy_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlTooltipDirective } from '@gitlab/ui';\nimport ClipboardJS from 'clipboard';\nimport { uniqueId } from 'lodash';\nimport { __ } from '~/locale';\nimport { BV_HIDE_TOOLTIP } from '~/lib/utils/constants';\n\nexport default {\n components: {\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n text: {\n type: String,\n required: false,\n default: '',\n },\n id: {\n type: String,\n required: false,\n default: () => uniqueId('modal-copy-button-'),\n },\n container: {\n type: String,\n required: false,\n default: '',\n },\n cssClasses: {\n type: String,\n required: false,\n default: '',\n },\n modalId: {\n type: String,\n required: false,\n default: '',\n },\n target: {\n type: String,\n required: false,\n default: '',\n },\n title: {\n type: String,\n required: false,\n default: __('Copy'),\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'top',\n },\n tooltipContainer: {\n type: String,\n required: false,\n default: null,\n },\n category: {\n type: String,\n required: false,\n default: 'primary',\n },\n },\n computed: {\n modalDomId() {\n return this.modalId ? `#${this.modalId}` : '';\n },\n },\n mounted() {\n this.$nextTick(() => {\n this.clipboard = new ClipboardJS(this.$el, {\n container:\n document.querySelector(`${this.modalDomId} div.modal-content`) ||\n document.getElementById(this.container) ||\n document.body,\n });\n this.clipboard\n .on('success', (e) => {\n this.$root.$emit(BV_HIDE_TOOLTIP, this.id);\n this.$emit('success', e);\n // Clear the selection and blur the trigger so it loses its border\n e.clearSelection();\n e.trigger.blur();\n })\n .on('error', (e) => this.$emit('error', e));\n });\n },\n destroyed() {\n if (this.clipboard) {\n this.clipboard.destroy();\n }\n },\n};\n</script>\n<template>\n <gl-button\n :id=\"id\"\n v-gl-tooltip=\"{ placement: tooltipPlacement, container: tooltipContainer }\"\n :class=\"cssClasses\"\n :data-clipboard-target=\"target\"\n :data-clipboard-text=\"text\"\n :title=\"title\"\n :aria-label=\"title\"\n :category=\"category\"\n icon=\"copy-to-clipboard\"\n />\n</template>\n","import { render, staticRenderFns } from \"./modal_copy_button.vue?vue&type=template&id=4c7472d6\"\nimport script from \"./modal_copy_button.vue?vue&type=script&lang=js\"\nexport * from \"./modal_copy_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var baseSlice = require('./_baseSlice'),\n isIterateeCall = require('./_isIterateeCall'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeCeil = Math.ceil,\n nativeMax = Math.max;\n\n/**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\nfunction chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n}\n\nmodule.exports = chunk;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getReadyToMergeStatus\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canMerge\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":207}};\n doc.loc.source = {\"body\":\"query getReadyToMergeStatus($projectPath: ID!, $iid: String!) {\\n project(fullPath: $projectPath) {\\n id\\n mergeRequest(iid: $iid) {\\n id\\n userPermissions {\\n canMerge\\n }\\n }\\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[\"getReadyToMergeStatus\"] = oneQuery(doc, \"getReadyToMergeStatus\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.textOnly)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.title),expression:\"title\"}]},[_vm._v(\"\\n \"+_vm._s(_vm.__('Imported'))+\"\\n\")]):_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.title),expression:\"title\"}],staticClass:\"gl-shrink-0\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Imported'))+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlBadge, GlTooltipDirective } from '@gitlab/ui';\nimport { __, s__, sprintf } from '~/locale';\n\nimport { TYPE_EPIC, TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { TYPE_ACTIVITY, TYPE_COMMENT, TYPE_DESIGN, TYPE_SNIPPET } from '~/import/constants';\n\nconst importableTypeText = {\n [TYPE_ACTIVITY]: __('activity'),\n [TYPE_COMMENT]: __('comment'),\n [TYPE_DESIGN]: __('design'),\n [TYPE_EPIC]: __('epic'),\n [TYPE_ISSUE]: __('issue'),\n [TYPE_MERGE_REQUEST]: __('merge request'),\n [TYPE_SNIPPET]: __('snippet'),\n};\n\nexport default {\n components: {\n GlBadge,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n importableType: {\n type: String,\n required: false,\n default: '',\n },\n textOnly: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n title() {\n return sprintf(s__('BulkImport|This %{importable} was imported from another instance.'), {\n importable: importableTypeText[this.importableType],\n });\n },\n },\n};\n</script>\n\n<template>\n <span v-if=\"textOnly\" v-gl-tooltip=\"title\">\n {{ __('Imported') }}\n </span>\n <gl-badge v-else v-gl-tooltip=\"title\" class=\"gl-shrink-0\">\n {{ __('Imported') }}\n </gl-badge>\n</template>\n","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!./imported_badge.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!./imported_badge.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./imported_badge.vue?vue&type=template&id=03c38d80\"\nimport script from \"./imported_badge.vue?vue&type=script&lang=js\"\nexport * from \"./imported_badge.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 { extend } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';\nimport { SLOT_NAME_CUSTOM_FOOT } from '../../../constants/slots';\nimport { makeProp } from '../../../utils/props';\nimport { BTfoot } from '../tfoot';\n\n// --- Props ---\n\nconst props = {\n footClone: makeProp(PROP_TYPE_BOOLEAN, false),\n // Any Bootstrap theme variant (or custom)\n // Falls back to `headRowVariant`\n footRowVariant: makeProp(PROP_TYPE_STRING),\n // 'dark', 'light', or `null` (or custom)\n footVariant: makeProp(PROP_TYPE_STRING),\n tfootClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tfootTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst tfootMixin = extend({\n props,\n methods: {\n renderTFootCustom() {\n const h = this.$createElement;\n if (this.hasNormalizedSlot(SLOT_NAME_CUSTOM_FOOT)) {\n return h(BTfoot, {\n class: this.tfootClass || null,\n props: {\n footVariant: this.footVariant || this.headVariant || null\n },\n key: 'bv-tfoot-custom'\n }, this.normalizeSlot(SLOT_NAME_CUSTOM_FOOT, {\n items: this.computedItems.slice(),\n fields: this.computedFields.slice(),\n columns: this.computedFields.length\n }));\n }\n return h();\n },\n renderTfoot() {\n // Passing true to renderThead will make it render a tfoot\n return this.footClone ? this.renderThead(true) : this.renderTFootCustom();\n }\n }\n});\n\nexport { props, tfootMixin };\n","export const MAX_WINDOW_HEIGHT_COMPACT = 750;\n\n// Commit message textarea\nexport const MAX_TITLE_LENGTH = 50;\nexport const MAX_BODY_LENGTH = 72;\n\nexport const SIDEBAR_INIT_WIDTH = 340;\nexport const SIDEBAR_MIN_WIDTH = 260;\nexport const SIDEBAR_NAV_WIDTH = 60;\n\n// File view modes\nexport const FILE_VIEW_MODE_EDITOR = 'editor';\nexport const FILE_VIEW_MODE_PREVIEW = 'preview';\n\nexport const PERMISSION_CREATE_MR = 'createMergeRequestIn';\nexport const PERMISSION_READ_MR = 'readMergeRequest';\nexport const PERMISSION_PUSH_CODE = 'pushCode';\nexport const PUSH_RULE_REJECT_UNSIGNED_COMMITS = 'rejectUnsignedCommits';\n\n// The default permission object to use when the project data isn't available yet.\n// This helps us encapsulate checks like `canPushCode` without requiring an\n// additional check like `currentProject && canPushCode`.\nexport const DEFAULT_PERMISSIONS = {\n [PERMISSION_PUSH_CODE]: true,\n};\n\nexport const viewerTypes = {\n mr: 'mrdiff',\n edit: 'editor',\n diff: 'diff',\n};\n\nexport const diffModes = {\n replaced: 'replaced',\n new: 'new',\n deleted: 'deleted',\n renamed: 'renamed',\n mode_changed: 'mode_changed',\n};\n\nexport const diffViewerModes = Object.freeze({\n not_diffable: 'not_diffable',\n no_preview: 'no_preview',\n added: 'added',\n deleted: 'deleted',\n renamed: 'renamed',\n mode_changed: 'mode_changed',\n text: 'text',\n image: 'image',\n});\n\nexport const diffViewerErrors = Object.freeze({\n too_large: 'too_large',\n stored_externally: 'server_side_but_stored_externally',\n});\n\nexport const leftSidebarViews = {\n edit: { name: 'ide-tree' },\n review: { name: 'ide-review' },\n commit: { name: 'repo-commit-section' },\n};\n\nexport const rightSidebarViews = {\n pipelines: { name: 'pipelines-list', keepAlive: true },\n jobsDetail: { name: 'jobs-detail', keepAlive: false },\n mergeRequestInfo: { name: 'merge-request-info', keepAlive: true },\n terminal: { name: 'terminal', keepAlive: true },\n};\n\nexport const stageKeys = {\n unstaged: 'unstaged',\n staged: 'staged',\n};\n\nexport const commitItemIconMap = {\n addition: {\n icon: 'file-addition',\n class: 'file-addition ide-file-addition',\n },\n modified: {\n icon: 'file-modified',\n class: 'file-modified ide-file-modified',\n },\n deleted: {\n icon: 'file-deletion',\n class: 'file-deletion ide-file-deletion',\n },\n};\n\nexport const modalTypes = {\n rename: 'rename',\n tree: 'tree',\n blob: 'blob',\n};\n\nexport const commitActionTypes = {\n move: 'move',\n delete: 'delete',\n create: 'create',\n update: 'update',\n};\n\nexport const SIDE_LEFT = 'left';\nexport const SIDE_RIGHT = 'right';\n\n// This is the maximum number of files to auto open when opening the Web IDE\n// from a merge request\nexport const MAX_MR_FILES_AUTO_OPEN = 10;\n\nexport const DEFAULT_BRANCH = 'main';\n\nexport const GITLAB_WEB_IDE_FEEDBACK_ISSUE = 'https://gitlab.com/gitlab-org/gitlab/-/issues/377367';\n\nexport const IDE_ELEMENT_ID = 'ide';\n\n// note: This path comes from `config/routes.rb`\nexport const IDE_PATH = '/-/ide';\nexport const WEB_IDE_OAUTH_CALLBACK_URL_PATH = '/-/ide/oauth_redirect';\n","const DISCLOSURE_DROPDOWN_ITEM_NAME = 'GlDisclosureDropdownItem';\nconst DISCLOSURE_DROPDOWN_GROUP_NAME = 'GlDisclosureDropdownGroup';\nconst DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS = {\n top: 'top',\n bottom: 'bottom'\n};\n\nexport { DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS, DISCLOSURE_DROPDOWN_GROUP_NAME, DISCLOSURE_DROPDOWN_ITEM_NAME };\n","var baseAssignValue = require('./_baseAssignValue'),\n createAggregator = require('./_createAggregator');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\nvar groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n});\n\nmodule.exports = groupBy;\n","import clamp from 'lodash/clamp';\nimport uniqueId from 'lodash/uniqueId';\nimport { stopEvent, filterVisible } from '../../../../utils/utils';\nimport { GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_FOCUS_CONTENT, POSITION_ABSOLUTE, POSITION_FIXED, HOME, END, ARROW_UP, ARROW_DOWN, ENTER, SPACE, GL_DROPDOWN_CONTENTS_CLASS } from '../constants';\nimport { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements } from '../../../../utils/constants';\nimport GlBaseDropdown, { BASE_DROPDOWN_CLASS } from '../base_dropdown/base_dropdown';\nimport GlDisclosureDropdownItem, { ITEM_CLASS } from './disclosure_dropdown_item';\nimport GlDisclosureDropdownGroup from './disclosure_dropdown_group';\nimport { itemsValidator, hasOnlyListItems, isItem } from './utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst DROPDOWN_SELECTOR = `.${BASE_DROPDOWN_CLASS}`;\nconst ITEM_SELECTOR = `.${ITEM_CLASS}`;\nvar script = {\n name: 'GlDisclosureDropdown',\n events: {\n GL_DROPDOWN_SHOWN,\n GL_DROPDOWN_HIDDEN,\n GL_DROPDOWN_BEFORE_CLOSE,\n GL_DROPDOWN_FOCUS_CONTENT\n },\n components: {\n GlBaseDropdown,\n GlDisclosureDropdownItem,\n GlDisclosureDropdownGroup\n },\n props: {\n /**\n * Items to display in the dropdown\n */\n items: {\n type: Array,\n required: false,\n default: () => [],\n validator: itemsValidator\n },\n /**\n * Toggle button text\n */\n toggleText: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Toggle text to be read by screen readers only\n */\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Styling option - dropdown's toggle category\n */\n category: {\n type: String,\n required: false,\n default: buttonCategoryOptions.primary,\n validator: value => value in buttonCategoryOptions\n },\n /**\n * Styling option - dropdown's toggle variant\n */\n variant: {\n type: String,\n required: false,\n default: dropdownVariantOptions.default,\n validator: value => value in dropdownVariantOptions\n },\n /**\n * The size of the dropdown toggle\n */\n size: {\n type: String,\n required: false,\n default: 'medium',\n validator: value => value in buttonSizeOptions\n },\n /**\n * Icon name that will be rendered in the toggle button\n */\n icon: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Set to \"true\" to disable the dropdown\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Set to \"true\" when dropdown content (items) is loading\n * It will render a small loader in the dropdown toggle and make it disabled\n */\n loading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Custom toggle id.\n * For instance, it can be referenced by tooltip or popover\n */\n toggleId: {\n type: String,\n required: false,\n default: () => uniqueId('dropdown-toggle-btn-')\n },\n /**\n * Additional CSS classes to customize toggle appearance\n */\n toggleClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n /**\n * Set to \"true\" to hide the caret\n */\n noCaret: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Align disclosure dropdown with respect to the toggle button\n */\n placement: {\n type: String,\n required: false,\n default: 'bottom-start',\n validator: value => Object.keys(dropdownPlacements).includes(value)\n },\n /**\n * The `aria-labelledby` attribute value for the toggle button\n * Provide the string of ids seperated by space\n */\n toggleAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The `aria-labelledby` attribute value for the list of options\n * Provide the string of ids seperated by space\n */\n listAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Render the toggle button as a block element\n */\n block: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Custom offset to be applied to Floating UI's offset middleware.\n * https://floating-ui.com/docs/offset\n */\n dropdownOffset: {\n type: [Number, Object],\n required: false,\n default: undefined\n },\n /**\n * Lets the dropdown extend to match its content's width, up to a maximum width\n * defined by the `$gl-new-dropdown-max-width` variable.\n */\n fluidWidth: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Close the dropdown on item click (action)\n */\n autoClose: {\n type: Boolean,\n required: false,\n default: true\n },\n /**\n * Strategy to be applied by computePosition. If the dropdown's container is too short for it to\n * fit in, setting this to fixed will let it position itself above its container.\n * https://floating-ui.com/docs/computePosition#strategy\n */\n positioningStrategy: {\n type: String,\n required: false,\n default: POSITION_ABSOLUTE,\n validator: strategy => [POSITION_ABSOLUTE, POSITION_FIXED].includes(strategy)\n },\n /**\n * Opens dropdown on render\n */\n startOpened: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n data() {\n return {\n disclosureId: uniqueId('disclosure-'),\n nextFocusedItemIndex: null\n };\n },\n computed: {\n disclosureTag() {\n var _this$items;\n if ((_this$items = this.items) !== null && _this$items !== void 0 && _this$items.length ||\n // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n hasOnlyListItems(this.$scopedSlots.default || this.$slots.default)) {\n return 'ul';\n }\n return 'div';\n },\n hasCustomToggle() {\n return Boolean(this.$scopedSlots.toggle);\n }\n },\n mounted() {\n if (this.startOpened) {\n this.open();\n }\n },\n methods: {\n open() {\n this.$refs.baseDropdown.open();\n },\n close() {\n this.$refs.baseDropdown.close();\n },\n onShow() {\n /**\n * Emitted when dropdown is shown\n *\n * @event shown\n */\n this.$emit(GL_DROPDOWN_SHOWN);\n },\n onBeforeClose(event) {\n /**\n * Emitted when dropdown is about to be closed\n *\n * @event beforeClose\n */\n this.$emit(GL_DROPDOWN_BEFORE_CLOSE, event);\n },\n onHide() {\n /**\n * Emitted when dropdown is hidden\n *\n * @event hidden\n */\n this.$emit(GL_DROPDOWN_HIDDEN);\n this.nextFocusedItemIndex = null;\n },\n onKeydown(event) {\n const {\n code\n } = event;\n const elements = this.getFocusableListItemElements();\n if (elements.length < 1) return;\n let stop = true;\n if (code === HOME) {\n this.focusItem(0, elements);\n } else if (code === END) {\n this.focusItem(elements.length - 1, elements);\n } else if (code === ARROW_UP) {\n this.focusNextItem(event, elements, -1);\n } else if (code === ARROW_DOWN) {\n this.focusNextItem(event, elements, 1);\n } else if (code === ENTER || code === SPACE) {\n this.handleAutoClose(event);\n } else {\n stop = false;\n }\n if (stop) {\n stopEvent(event);\n }\n },\n getFocusableListItemElements() {\n var _this$$refs$content;\n const items = (_this$$refs$content = this.$refs.content) === null || _this$$refs$content === void 0 ? void 0 : _this$$refs$content.querySelectorAll(ITEM_SELECTOR);\n return filterVisible(Array.from(items || []));\n },\n focusNextItem(event, elements, offset) {\n const {\n target\n } = event;\n const currentIndex = elements.indexOf(target);\n const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);\n this.focusItem(nextIndex, elements);\n },\n focusItem(index, elements) {\n var _elements$index;\n this.nextFocusedItemIndex = index;\n (_elements$index = elements[index]) === null || _elements$index === void 0 ? void 0 : _elements$index.focus();\n },\n closeAndFocus() {\n this.$refs.baseDropdown.closeAndFocus();\n },\n handleAction(action) {\n // See https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/4376 for\n // detailed explanation why we need requestAnimationFrame\n window.requestAnimationFrame(() => {\n /**\n * Emitted when one of disclosure dropdown items is clicked\n *\n * @event action\n */\n this.$emit('action', action);\n });\n },\n handleAutoClose(e) {\n if (this.autoClose && e.target.closest(ITEM_SELECTOR) && e.target.closest(DROPDOWN_SELECTOR) === this.$refs.baseDropdown.$el) {\n this.closeAndFocus();\n }\n },\n uniqueItemId() {\n return uniqueId(`disclosure-item-`);\n },\n isItem\n },\n GL_DROPDOWN_CONTENTS_CLASS\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('gl-base-dropdown',{ref:\"baseDropdown\",staticClass:\"gl-disclosure-dropdown\",attrs:{\"aria-labelledby\":_vm.toggleAriaLabelledBy,\"toggle-id\":_vm.toggleId,\"toggle-text\":_vm.toggleText,\"toggle-class\":_vm.toggleClass,\"text-sr-only\":_vm.textSrOnly,\"category\":_vm.category,\"variant\":_vm.variant,\"size\":_vm.size,\"icon\":_vm.icon,\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"no-caret\":_vm.noCaret,\"placement\":_vm.placement,\"block\":_vm.block,\"offset\":_vm.dropdownOffset,\"fluid-width\":_vm.fluidWidth,\"positioning-strategy\":_vm.positioningStrategy},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide,_vm.$options.events.GL_DROPDOWN_BEFORE_CLOSE,_vm.onBeforeClose,_vm.$options.events.GL_DROPDOWN_FOCUS_CONTENT,_vm.onKeydown]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:\"toggle\",fn:function(){return [_vm._t(\"toggle\")]},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._t(\"header\"),_vm._v(\" \"),_c(_vm.disclosureTag,{ref:\"content\",tag:\"component\",class:_vm.$options.GL_DROPDOWN_CONTENTS_CLASS,attrs:{\"id\":_vm.disclosureId,\"aria-labelledby\":_vm.listAriaLabelledBy || _vm.toggleId,\"data-testid\":\"disclosure-content\",\"tabindex\":\"-1\"},on:{\"keydown\":_vm.onKeydown,\"click\":_vm.handleAutoClose}},[_vm._t(\"default\",function(){return [_vm._l((_vm.items),function(item,index){return [(_vm.isItem(item))?[_c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{\"item\":item},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([('list-item' in _vm.$scopedSlots)?{key:\"list-item\",fn:function(){return [_vm._t(\"list-item\",null,{\"item\":item})]},proxy:true}:null],null,true)})]:[_c('gl-disclosure-dropdown-group',{key:item.name,attrs:{\"bordered\":index !== 0,\"group\":item},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([(_vm.$scopedSlots['group-label'])?{key:\"group-label\",fn:function(){return [_vm._t(\"group-label\",null,{\"group\":item})]},proxy:true}:null],null,true)},[_vm._v(\" \"),(_vm.$scopedSlots['list-item'])?_vm._l((item.items),function(groupItem){return _c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{\"item\":groupItem},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._t(\"list-item\",null,{\"item\":groupItem})]},proxy:true}],null,true)})}):_vm._e()],2)]]})]})],2),_vm._v(\" \"),_vm._t(\"footer\")],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__;\nexport { DROPDOWN_SELECTOR, ITEM_SELECTOR };\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"unschedulePipelineMiniGraphJob\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CiBuildID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobUnschedule\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"job\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Job\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":188}};\n doc.loc.source = {\"body\":\"#import \\\"../fragments/job.fragment.graphql\\\"\\n\\nmutation unschedulePipelineMiniGraphJob($id: CiBuildID!) {\\n jobUnschedule(input: { id: $id }) {\\n job {\\n ...Job\\n }\\n errors\\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(\"../fragments/job.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[\"unschedulePipelineMiniGraphJob\"] = oneQuery(doc, \"unschedulePipelineMiniGraphJob\");\n \n","function none() {}\n\nexport default function(selector) {\n return selector == null ? none : function() {\n return this.querySelector(selector);\n };\n}\n","import { invert } from 'lodash';\nimport { __, s__, sprintf } from '~/locale';\nimport {\n STATUS_TRIGGERED,\n STATUS_ACKNOWLEDGED,\n STATUS_RESOLVED,\n IssuableAttributeType as IssuableAttributeTypeFoss,\n IssuableAttributeState as IssuableAttributeStateFoss,\n LocalizedIssuableAttributeType as LocalizedIssuableAttributeTypeFoss,\n dropdowni18nText as dropdowni18nTextFoss,\n Tracking,\n defaultEpicSort,\n epicIidPattern,\n} from '~/sidebar/constants';\n\nexport { Tracking, defaultEpicSort, epicIidPattern };\n\nexport const edit = __('Edit');\nexport const none = __('None');\n\nexport const HEALTH_STATUS_I18N_ASSIGN_HEALTH_STATUS = s__('Sidebar|Select health status');\nexport const HEALTH_STATUS_I18N_FETCH_ERROR = __(\n 'An error occurred while fetching the health status.',\n);\nexport const HEALTH_STATUS_I18N_HEALTH_STATUS = s__('Sidebar|Health status');\nexport const HEALTH_STATUS_I18N_NO_STATUS = s__('Sidebar|No status');\nexport const HEALTH_STATUS_I18N_NONE = s__('Sidebar|None');\nexport const HEALTH_STATUS_I18N_SELECT_HEALTH_STATUS = __('Select health status');\nexport const HEALTH_STATUS_I18N_UPDATE_ERROR = __(\n 'Something went wrong while setting %{issuableType} health status.',\n);\nexport const HEALTH_STATUS_OPEN_DROPDOWN_DELAY = 100;\n\nexport const HEALTH_STATUS_AT_RISK = 'atRisk';\nexport const HEALTH_STATUS_NEEDS_ATTENTION = 'needsAttention';\nexport const HEALTH_STATUS_ON_TRACK = 'onTrack';\n\nexport const healthStatusTextMap = {\n [HEALTH_STATUS_ON_TRACK]: __('On track'),\n [HEALTH_STATUS_NEEDS_ATTENTION]: __('Needs attention'),\n [HEALTH_STATUS_AT_RISK]: __('At risk'),\n};\n\nexport const healthStatusVariantMap = {\n [HEALTH_STATUS_ON_TRACK]: 'success',\n [HEALTH_STATUS_NEEDS_ATTENTION]: 'warning',\n [HEALTH_STATUS_AT_RISK]: 'danger',\n};\n\nexport const healthStatusIconMap = {\n [HEALTH_STATUS_ON_TRACK]: 'status-health',\n [HEALTH_STATUS_NEEDS_ATTENTION]: 'warning',\n [HEALTH_STATUS_AT_RISK]: 'error',\n};\n\nexport const healthStatusColorMap = {\n [HEALTH_STATUS_ON_TRACK]: 'gl-text-success',\n [HEALTH_STATUS_NEEDS_ATTENTION]: 'gl-text-orange-500',\n [HEALTH_STATUS_AT_RISK]: 'gl-text-red-500',\n};\n\nexport const healthStatusForRestApi = {\n NO_STATUS: '0',\n [HEALTH_STATUS_ON_TRACK]: 'on_track',\n [HEALTH_STATUS_NEEDS_ATTENTION]: 'needs_attention',\n [HEALTH_STATUS_AT_RISK]: 'at_risk',\n};\n\nexport const healthStatusDropdownOptions = [\n { text: __('On track'), value: HEALTH_STATUS_ON_TRACK },\n { text: __('Needs attention'), value: HEALTH_STATUS_NEEDS_ATTENTION },\n { text: __('At risk'), value: HEALTH_STATUS_AT_RISK },\n];\n\nexport const healthStatusTracking = {\n event: Tracking.editEvent,\n label: Tracking.rightSidebarLabel,\n property: 'health_status',\n};\n\nexport const iterationSelectTextMap = {\n iteration: __('Iteration'),\n noIteration: __('No iteration'),\n assignIteration: __('Select iteration'),\n iterationSelectFail: __('Failed to set iteration on this issue. Please try again.'),\n currentIterationFetchError: __('Failed to fetch the iteration for this issue. Please try again.'),\n iterationsFetchError: __('Failed to fetch the iterations for the group. Please try again.'),\n noIterationsFound: s__('Iterations|No iterations found'),\n};\n\nexport const noAttributeId = null;\n\nexport const noEpic = {\n id: 0,\n title: __('No Epic'),\n};\n\nexport const placeholderEpic = {\n id: -1,\n title: __('Select epic'),\n};\n\nexport const SIDEBAR_ESCALATION_POLICY_TITLE = __('Escalation policy');\n\nexport const MAX_DISPLAY_WEIGHT = 99999;\n\nexport const CVE_ID_REQUEST_SIDEBAR_I18N = {\n action: s__('CVE|Request CVE ID'),\n description: s__('CVE|CVE ID Request'),\n createRequest: s__('CVE|Create CVE ID Request'),\n whyRequest: s__('CVE|Why Request a CVE ID?'),\n whyText1: s__(\n 'CVE|Common Vulnerability Enumeration (CVE) identifiers are used to track distinct vulnerabilities in specific versions of code.',\n ),\n whyText2: s__(\n 'CVE|As a maintainer, requesting a CVE for a vulnerability in your project will help your users stay secure and informed.',\n ),\n learnMore: __('Learn more'),\n};\n\nexport const IssuableAttributeType = {\n ...IssuableAttributeTypeFoss,\n Iteration: 'iteration',\n Epic: 'epic',\n EscalationPolicy: 'escalation policy', // eslint-disable-line @gitlab/require-i18n-strings\n Parent: 'parent',\n};\n\nexport const LocalizedIssuableAttributeType = {\n ...LocalizedIssuableAttributeTypeFoss,\n Iteration: s__('Issuable|iteration'),\n Epic: s__('Issuable|epic'),\n EscalationPolicy: s__('Issuable|escalation policy'),\n};\n\n// The reason we did this conversion is that we want to keep track of the keys via referencing the object itself\n// Thus we have to convert value as key, and use is in the method.\nexport const IssuableAttributeTypeKeyMap = invert(IssuableAttributeType);\n\nexport const IssuableAttributeState = {\n ...IssuableAttributeStateFoss,\n [IssuableAttributeType.Iteration]: 'opened',\n [IssuableAttributeType.Epic]: 'opened',\n};\n\nexport function dropdowni18nText(issuableAttribute, issuableType) {\n let noAttributesFound = s__('DropdownWidget|No %{issuableAttribute} found');\n\n if (issuableAttribute === LocalizedIssuableAttributeType.Iteration) {\n noAttributesFound = s__('DropdownWidget|No open %{issuableAttribute} found');\n }\n\n return {\n ...dropdowni18nTextFoss(issuableAttribute, issuableType),\n noAttributesFound: sprintf(noAttributesFound, {\n issuableAttribute,\n }),\n };\n}\n\nexport const i18nHelpText = {\n title: s__('IncidentManagement|Page your team with escalation policies'),\n detail: s__(\n 'IncidentManagement|Use escalation policies to automatically page your team when incidents are created.',\n ),\n linkText: __('Learn more'),\n};\n\nexport const i18nPolicyText = {\n paged: s__('IncidentManagement|Paged'),\n title: SIDEBAR_ESCALATION_POLICY_TITLE,\n none,\n};\n\nexport const i18nStatusHeaderText = s__('IncidentManagement|Assign paging status');\nconst STOPS_PAGING = s__('IncidentManagement|Stops paging');\n\nexport const STATUS_SUBTEXTS = {\n [STATUS_TRIGGERED]: '',\n\n [STATUS_ACKNOWLEDGED]: STOPS_PAGING,\n [STATUS_RESOLVED]: STOPS_PAGING,\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssuableSeverity\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"severity\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableSeverity\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSetSeverity\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"severity\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"severity\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"severity\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":258}};\n doc.loc.source = {\"body\":\"mutation updateIssuableSeverity($projectPath: ID!, $severity: IssuableSeverity!, $iid: String!) {\\n issueSetSeverity(input: { iid: $iid, severity: $severity, projectPath: $projectPath }) {\\n errors\\n issue {\\n iid\\n id\\n severity\\n }\\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[\"updateIssuableSeverity\"] = oneQuery(doc, \"updateIssuableSeverity\");\n \n","// eslint-disable-next-line no-restricted-imports\nimport { mapGetters } from 'vuex';\nimport { sprintf, s__, __ } from '~/locale';\n\nexport default {\n props: {\n discussionId: {\n type: String,\n required: false,\n default: null,\n },\n resolveDiscussion: {\n type: Boolean,\n required: false,\n default: false,\n },\n isDraft: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n ...mapGetters(['isDiscussionResolved']),\n resolvedStatusMessage() {\n let message;\n const discussionResolved = this.isDiscussionResolved(\n 'draft' in this ? this.draft.discussion_id : this.discussionId,\n );\n const discussionToBeResolved =\n 'draft' in this ? this.draft.resolve_discussion : this.resolveDiscussion;\n\n if (discussionToBeResolved && discussionResolved && !this.$options.showStaysResolved) {\n return undefined;\n }\n\n if (discussionToBeResolved) {\n message = discussionResolved\n ? s__('MergeRequests|Thread stays resolved')\n : s__('MergeRequests|Thread will be resolved');\n } else if (discussionResolved) {\n message = s__('MergeRequests|Thread will be unresolved');\n } else if (this.$options.showStaysResolved) {\n message = s__('MergeRequests|Thread stays unresolved');\n }\n\n return message;\n },\n componentClasses() {\n return this.resolveDiscussion ? 'is-resolving-discussion' : 'is-unresolving-discussion';\n },\n resolveButtonTitle() {\n const escapeParameters = false;\n\n if (this.isDraft || this.discussionId) return this.resolvedStatusMessage;\n\n let title = __('Resolve thread');\n\n if (this.resolvedBy) {\n title = sprintf(\n __('Resolved by %{name}'),\n { name: this.resolvedBy.name },\n escapeParameters,\n );\n }\n\n return title;\n },\n },\n showStaysResolved: true,\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"file-container\"},[_c('div',{staticClass:\"file-content\"},[_c('p',{staticClass:\"file-info gl-mt-3\"},[_vm._v(\"\\n \"+_vm._s(_vm.fileName)+\"\\n \"),(_vm.fileSize > 0)?[_vm._v(\" (\"+_vm._s(_vm.fileSizeReadable)+\") \")]:_vm._e()],2),_vm._v(\" \"),_c('a',{staticClass:\"btn btn-default\",attrs:{\"href\":_vm.path,\"rel\":\"nofollow\",\"download\":_vm.fileName,\"target\":\"_blank\"}},[_c('gl-icon',{staticClass:\"float-left gl-mr-3\",attrs:{\"size\":16,\"name\":\"download\"}}),_vm._v(\"\\n \"+_vm._s(_vm.__('Download'))+\"\\n \")],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!./download_viewer.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!./download_viewer.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { numberToHumanSize } from '~/lib/utils/number_utils';\n\nexport default {\n components: {\n GlIcon,\n },\n props: {\n path: {\n type: String,\n required: true,\n },\n filePath: {\n type: String,\n required: false,\n default: '',\n },\n fileSize: {\n type: Number,\n required: false,\n default: 0,\n },\n },\n computed: {\n fileSizeReadable() {\n return numberToHumanSize(this.fileSize);\n },\n fileName() {\n // path could be a base64 uri too, so check if filePath was passed additionally\n return (this.filePath || this.path).split('/').pop();\n },\n },\n};\n</script>\n\n<template>\n <div class=\"file-container\">\n <div class=\"file-content\">\n <p class=\"file-info gl-mt-3\">\n {{ fileName }}\n <template v-if=\"fileSize > 0\"> ({{ fileSizeReadable }}) </template>\n </p>\n <a :href=\"path\" class=\"btn btn-default\" rel=\"nofollow\" :download=\"fileName\" target=\"_blank\">\n <gl-icon :size=\"16\" name=\"download\" class=\"float-left gl-mr-3\" />\n {{ __('Download') }}\n </a>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./download_viewer.vue?vue&type=template&id=535df327\"\nimport script from \"./download_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./download_viewer.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--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./local_storage_sync.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!./local_storage_sync.vue?vue&type=script&lang=js\"","<script>\nimport { isEqual, isString } from 'lodash';\n\n/**\n * This component will save and restore a value to and from localStorage.\n * The value will be saved only when the value changes; the initial value won't be saved.\n *\n * By default, the value will be saved using JSON.stringify(), and retrieved back using JSON.parse().\n *\n * If you would like to save the raw string instead, you may set the 'asString' prop to true, though be aware that this is a\n * legacy prop to maintain backwards compatibility.\n *\n * For new components saving data for the first time, it's recommended to not use 'asString' even if you're saving a string; it will still be\n * saved and restored properly using JSON.stringify()/JSON.parse().\n */\nexport default {\n props: {\n storageKey: {\n type: String,\n required: true,\n },\n value: {\n type: [String, Number, Boolean, Array, Object],\n required: false,\n default: '',\n },\n asString: {\n type: Boolean,\n required: false,\n default: false,\n },\n persist: {\n type: Boolean,\n required: false,\n default: true,\n },\n clear: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n watch: {\n value(newVal) {\n if (!this.persist) return;\n\n this.saveValue(this.serialize(newVal));\n },\n clear(newVal) {\n if (newVal) {\n localStorage.removeItem(this.storageKey);\n }\n },\n },\n mounted() {\n // On mount, trigger update if we actually have a localStorageValue\n const { exists, value } = this.getStorageValue();\n\n if (exists && !isEqual(value, this.value)) {\n this.$emit('input', value);\n }\n },\n methods: {\n getStorageValue() {\n const value = localStorage.getItem(this.storageKey);\n\n if (value === null) {\n return { exists: false };\n }\n\n try {\n return { exists: true, value: this.deserialize(value) };\n } catch {\n // eslint-disable-next-line no-console\n console.warn(\n `[gitlab] Failed to deserialize value from localStorage (key=${this.storageKey})`,\n value,\n );\n // default to \"don't use localStorage value\"\n return { exists: false };\n }\n },\n saveValue(val) {\n localStorage.setItem(this.storageKey, val);\n },\n serialize(val) {\n if (!isString(val) && this.asString) {\n // eslint-disable-next-line no-console\n console.warn(\n `[gitlab] LocalStorageSync is saving`,\n val,\n `to the key \"${this.storageKey}\", but it is not a string and the 'asString' prop is true. This will save and restore the stringified value rather than the original value. If this is not intended, please remove or set the 'asString' prop to false.`,\n );\n }\n\n return this.asString ? val : JSON.stringify(val);\n },\n deserialize(val) {\n return this.asString ? val : JSON.parse(val);\n },\n },\n render() {\n return this.$scopedSlots.default?.();\n },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./local_storage_sync.vue?vue&type=script&lang=js\"\nexport * from \"./local_storage_sync.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 { NAMESPACE_TYPES } from 'ee/security_orchestration/constants';\nimport { s__, __ } from '~/locale';\nimport {\n SAST_SHORT_NAME,\n DAST_SHORT_NAME,\n DEPENDENCY_SCANNING_NAME,\n SECRET_DETECTION_NAME,\n CONTAINER_SCANNING_NAME,\n SAST_IAC_SHORT_NAME,\n} from '~/security_configuration/constants';\nimport {\n REPORT_TYPE_SAST,\n REPORT_TYPE_SAST_IAC,\n REPORT_TYPE_DAST,\n REPORT_TYPE_SECRET_DETECTION,\n REPORT_TYPE_DEPENDENCY_SCANNING,\n REPORT_TYPE_CONTAINER_SCANNING,\n} from '~/vue_shared/security_reports/constants';\nimport { isGroup } from 'ee/security_orchestration/components/utils';\nimport { mapToListboxItems } from 'ee/security_orchestration/utils';\n\nexport const EDITOR_MODE_RULE = 'rule';\nexport const EDITOR_MODE_YAML = 'yaml';\n\nexport const PARSING_ERROR_MESSAGE = s__(\n 'SecurityOrchestration|Rule mode is unavailable for this policy. In some cases, we cannot parse the YAML file back into the rules editor.',\n);\n\nexport const ACTION_SECTION_DISABLE_ERROR = s__(\n 'SecurityOrchestration|The current YAML syntax is invalid so you cannot edit the actions in rule mode. To resolve the issue, switch to YAML mode and fix the syntax.',\n);\n\nexport const CONDITION_SECTION_DISABLE_ERROR = s__(\n 'SecurityOrchestration|The current YAML syntax is invalid so you cannot edit the conditions in rule mode. To resolve the issue, switch to YAML mode and fix the syntax.',\n);\n\nexport const EDITOR_MODES = [\n { value: EDITOR_MODE_RULE, text: s__('SecurityOrchestration|Rule mode') },\n { value: EDITOR_MODE_YAML, text: s__('SecurityOrchestration|.yaml mode') },\n];\n\nexport const DELETE_MODAL_CONFIG = {\n id: 'delete-modal',\n secondary: {\n text: s__('SecurityOrchestration|Delete policy'),\n attributes: { variant: 'danger' },\n },\n cancel: {\n text: __('Cancel'),\n },\n};\n\nexport const MATCH_ON_INCLUSION_LICENSE = 'match_on_inclusion_license';\n\nexport const DEFAULT_MR_TITLE = s__('SecurityOrchestration|Update scan policies');\n\nexport const POLICY_RUN_TIME_MESSAGE = s__(\n 'SecurityOrchestration|Policy changes may take some time to be applied.',\n);\n\nexport const POLICY_RUN_TIME_TOOLTIP = s__(\n 'SecurityOrchestration|For large groups, there may be a significant delay in applying policy changes to pre-existing merge requests. Policy changes typically apply almost immediately for newly created merge requests.',\n);\n\nexport const SECURITY_POLICY_ACTIONS = Object.freeze({\n APPEND: 'APPEND',\n REMOVE: 'REMOVE',\n REPLACE: 'REPLACE',\n});\n\nexport const GRAPHQL_ERROR_MESSAGE = s__(\n 'SecurityOrchestration|There was a problem creating the new security policy',\n);\n\nexport const NO_RULE_MESSAGE = s__('SecurityOrchestration|No rules defined - policy will not run.');\n\nexport const ACTIONS = {\n tags: 'TAGS',\n variables: 'VARIABLES',\n};\n\nexport const INVALID_RULE_MESSAGE = s__(\n 'SecurityOrchestration|Invalid branch type detected - rule will not be applied.',\n);\n\nexport const INVALID_PROTECTED_BRANCHES = s__(\n 'SecurityOrchestration|The following branches do not exist on this development project: %{branches}. Please review all protected branches to ensure the values are accurate before updating this policy.',\n);\nexport const ADD_RULE_LABEL = s__('SecurityOrchestration|Add new rule');\nexport const RULES_LABEL = s__('SecurityOrchestration|Rules');\n\nexport const ADD_ACTION_LABEL = s__('SecurityOrchestration|Add new action');\nexport const ACTIONS_LABEL = s__('SecurityOrchestration|Actions');\n\nexport const RULE_IF_LABEL = __('if');\nexport const RULE_OR_LABEL = __('or');\nexport const SCOPE_LABEL = s__('SecurityOrchestration|Policy scope');\nexport const ACTION_AND_LABEL = __('and');\n\nexport const RULE_MODE_SCANNERS = {\n [REPORT_TYPE_SAST]: SAST_SHORT_NAME,\n [REPORT_TYPE_SAST_IAC]: SAST_IAC_SHORT_NAME,\n [REPORT_TYPE_DAST]: DAST_SHORT_NAME,\n [REPORT_TYPE_SECRET_DETECTION]: SECRET_DETECTION_NAME,\n [REPORT_TYPE_CONTAINER_SCANNING]: CONTAINER_SCANNING_NAME,\n [REPORT_TYPE_DEPENDENCY_SCANNING]: DEPENDENCY_SCANNING_NAME,\n};\n\nexport const MAX_ALLOWED_RULES_LENGTH = 5;\nexport const MAX_ALLOWED_APPROVER_ACTION_LENGTH = 5;\n\nexport const PRIMARY_POLICY_KEYS = [\n 'type',\n 'name',\n 'description',\n 'enabled',\n 'policy_scope',\n 'metadata',\n];\n\nexport const SPECIFIC_BRANCHES = {\n id: 'SPECIFIC_BRANCHES',\n text: __('specific protected branches'),\n value: 'SPECIFIC_BRANCHES',\n};\n\nexport const ALL_BRANCHES = {\n text: __('all branches'),\n value: 'all',\n};\n\nexport const GROUP_DEFAULT_BRANCHES = {\n text: __('all default branches'),\n value: 'default',\n};\n\nexport const PROJECT_DEFAULT_BRANCH = {\n text: __('default branch'),\n value: 'default',\n};\n\nexport const ALL_PROTECTED_BRANCHES = {\n text: __('all protected branches'),\n value: 'protected',\n};\n\nexport const ANY_COMMIT = 'any';\nexport const ANY_UNSIGNED_COMMIT = 'unsigned';\n\nexport const ANY_OPERATOR = 'ANY';\n\nexport const GREATER_THAN_OPERATOR = 'greater_than';\n\nexport const LESS_THAN_OPERATOR = 'less_than';\n\nexport const VULNERABILITIES_ALLOWED_OPERATORS = [\n { value: ANY_OPERATOR, text: s__('ApprovalRule|Any') },\n { value: GREATER_THAN_OPERATOR, text: s__('ApprovalRule|More than') },\n];\n\nexport const VULNERABILITY_AGE_OPERATORS = [\n { value: ANY_OPERATOR, text: s__('ApprovalRule|Any') },\n { value: GREATER_THAN_OPERATOR, text: s__('ApprovalRule|Greater than') },\n { value: LESS_THAN_OPERATOR, text: s__('ApprovalRule|Less than') },\n];\n\nexport const SCAN_RESULT_BRANCH_TYPE_OPTIONS = (nameSpaceType = NAMESPACE_TYPES.GROUP) => [\n isGroup(nameSpaceType) ? GROUP_DEFAULT_BRANCHES : PROJECT_DEFAULT_BRANCH,\n ALL_PROTECTED_BRANCHES,\n SPECIFIC_BRANCHES,\n];\n\nexport const SCAN_EXECUTION_BRANCH_TYPE_OPTIONS = (nameSpaceType = NAMESPACE_TYPES.GROUP) => [\n ALL_BRANCHES,\n isGroup(nameSpaceType) ? GROUP_DEFAULT_BRANCHES : PROJECT_DEFAULT_BRANCH,\n ALL_PROTECTED_BRANCHES,\n SPECIFIC_BRANCHES,\n];\nexport const VALID_SCAN_EXECUTION_BRANCH_TYPE_OPTIONS = [\n ALL_BRANCHES.value,\n ALL_PROTECTED_BRANCHES.value,\n GROUP_DEFAULT_BRANCHES.value,\n];\nexport const VALID_SCAN_RESULT_BRANCH_TYPE_OPTIONS = [\n ALL_PROTECTED_BRANCHES.value,\n GROUP_DEFAULT_BRANCHES.value,\n];\n\nexport const BRANCHES_KEY = 'branches';\nexport const BRANCH_TYPE_KEY = 'branch_type';\nexport const BRANCH_EXCEPTIONS_KEY = 'branch_exceptions';\n\nexport const HUMANIZED_BRANCH_TYPE_TEXT_DICT = {\n [ALL_BRANCHES.value]: s__('SecurityOrchestration|any branch'),\n [ALL_PROTECTED_BRANCHES.value]: s__('SecurityOrchestration|any protected branch'),\n [GROUP_DEFAULT_BRANCHES.value]: s__('SecurityOrchestration|any default branch'),\n [PROJECT_DEFAULT_BRANCH.value]: s__('SecurityOrchestration|the default branch'),\n};\n\nexport const MORE_LABEL = s__('SecurityOrchestration|+%{numberOfAdditionalLabels} more');\n\nexport const MULTIPLE_SELECTED_LABEL = s__(\n 'PolicyRuleMultiSelect|%{firstLabel}, %{secondLabel} %{moreLabel}',\n);\nexport const MULTIPLE_SELECTED_LABEL_SINGLE_OPTION = s__(\n 'PolicyRuleMultiSelect|%{firstLabel} %{moreLabel}',\n);\n\nexport const SELECTED_ITEMS_LABEL = s__('PolicyRuleMultiSelect|Select %{itemTypeName}');\nexport const ALL_SELECTED_LABEL = s__('PolicyRuleMultiSelect|All %{itemTypeName}');\n\nexport const REGULAR_BRANCH = 'regular';\nexport const PROTECTED_BRANCH = 'protected';\n\nexport const BRANCH_TYPES = {\n [PROTECTED_BRANCH]: s__('SecurityOrchestration|Add protected branches'),\n [REGULAR_BRANCH]: s__('SecurityOrchestration|Add regular branches'),\n};\n\nexport const BRANCH_TYPES_ITEMS = mapToListboxItems(BRANCH_TYPES);\n\nexport const EXCEPTION_KEY = 'exception';\nexport const NO_EXCEPTION_KEY = 'no_exception';\nexport const EXCEPTION_TYPE_ITEMS = [\n {\n value: EXCEPTION_KEY,\n text: s__('SecurityOrchestration|Exceptions'),\n },\n {\n value: NO_EXCEPTION_KEY,\n text: s__('SecurityOrchestration|No exceptions'),\n },\n];\n\nexport const SPLIT_VIEW_MAX_WIDTH = 1248;\nexport const SPLIT_VIEW_MIN_WIDTH = 340;\nexport const YAML_SECTION_INITIAL_WIDTH = 350;\nexport const RULE_SECTION_INITIAL_WIDTH = SPLIT_VIEW_MAX_WIDTH - YAML_SECTION_INITIAL_WIDTH;\nexport const RULE_SECTION_COLLAPSED_WIDTH = 76;\nexport const SPLIT_VIEW_HALF_WIDTH = SPLIT_VIEW_MAX_WIDTH / 2;\nexport const RULE_SECTION_MAX_WIDTH = SPLIT_VIEW_MAX_WIDTH - 64;\n","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","/**\n * Returns parsed notes filter data from a given element's dataset\n *\n * @param {Element} el containing info in the dataset\n */\nexport const getNotesFilterData = (el) => {\n const { notesFilterValue: valueData, notesFilters: filtersData } = el.dataset;\n\n const filtersParsed = filtersData ? JSON.parse(filtersData) : {};\n const filters = Object.keys(filtersParsed).map((key) => ({\n title: key,\n value: filtersParsed[key],\n }));\n\n const value = valueData ? Number(valueData) : undefined;\n\n return {\n notesFilters: filters,\n notesFilterValue: value,\n };\n};\n","/* Developer beware! Do not add logic to showButton or hideButton\n * that will force a reflow. Doing so will create a significant performance\n * bottleneck for pages with large diffs. For a comprehensive list of what\n * causes reflows, visit https://gist.github.com/paulirish/5d52fb081b3570c81e3a\n */\n\nimport { getCookie } from '~/lib/utils/common_utils';\n\nconst LINE_NUMBER_CLASS = 'diff-line-num';\nconst UNFOLDABLE_LINE_CLASS = 'js-unfold';\nconst NO_COMMENT_CLASS = 'no-comment-btn';\nconst EMPTY_CELL_CLASS = 'empty-cell';\nconst OLD_LINE_CLASS = 'old_line';\nconst LINE_COLUMN_CLASSES = `.${LINE_NUMBER_CLASS}, .line_content`;\nconst DIFF_CONTAINER_SELECTOR = '.files';\nconst DIFF_EXPANDED_CLASS = 'diff-expanded';\n\nexport default {\n init($diffFile) {\n /* Caching is used only when the following members are *true*.\n * This is because there are likely to be\n * differently configured versions of diffs in the same session.\n * However if these values are true, they\n * will be true in all cases */\n\n if (!this.userCanCreateNote) {\n // data-can-create-note is an empty string when true, otherwise undefined\n this.userCanCreateNote =\n $diffFile.closest(DIFF_CONTAINER_SELECTOR).data('canCreateNote') === '';\n }\n\n this.isParallelView = getCookie('diff_view') === 'parallel';\n\n if (this.userCanCreateNote) {\n $diffFile\n .on('mouseover', LINE_COLUMN_CLASSES, (e) => this.showButton(this.isParallelView, e))\n .on('mouseleave', LINE_COLUMN_CLASSES, (e) => this.hideButton(this.isParallelView, e));\n }\n },\n\n showButton(isParallelView, e) {\n const buttonParentElement = this.getButtonParent(e.currentTarget, isParallelView);\n\n if (!this.validateButtonParent(buttonParentElement)) return;\n\n buttonParentElement.classList.add('is-over');\n buttonParentElement.nextElementSibling.classList.add('is-over');\n },\n\n hideButton(isParallelView, e) {\n const buttonParentElement = this.getButtonParent(e.currentTarget, isParallelView);\n\n buttonParentElement.classList.remove('is-over');\n buttonParentElement.nextElementSibling.classList.remove('is-over');\n },\n\n getButtonParent(hoveredElement, isParallelView) {\n if (isParallelView) {\n if (!hoveredElement.classList.contains(LINE_NUMBER_CLASS)) {\n return hoveredElement.previousElementSibling;\n }\n } else if (!hoveredElement.classList.contains(OLD_LINE_CLASS)) {\n return hoveredElement.parentNode.querySelector(`.${OLD_LINE_CLASS}`);\n }\n return hoveredElement;\n },\n\n validateButtonParent(buttonParentElement) {\n return (\n !buttonParentElement.classList.contains(EMPTY_CELL_CLASS) &&\n !buttonParentElement.classList.contains(UNFOLDABLE_LINE_CLASS) &&\n !buttonParentElement.classList.contains(NO_COMMENT_CLASS) &&\n !buttonParentElement.parentNode.classList.contains(DIFF_EXPANDED_CLASS)\n );\n },\n};\n","/* eslint-disable func-names, consistent-return, one-var, no-return-assign */\n\nimport $ from 'jquery';\n\n// Width where images must fits in, for 2-up this gets divided by 2\nconst availWidth = 900;\nconst viewModes = ['two-up', 'swipe'];\n\nexport default class ImageFile {\n constructor(file) {\n this.file = file;\n this.requestImageInfo($('.two-up.view .frame.deleted img', this.file), () =>\n this.requestImageInfo($('.two-up.view .frame.added img', this.file), () => {\n this.initViewModes();\n\n // Load two-up view after images are loaded\n // so that we can display the correct width and height information\n this.initView('two-up');\n }),\n );\n }\n\n initViewModes() {\n const viewMode = viewModes[0];\n $('.view-modes', this.file).removeClass('gl-hidden');\n $('.view-modes-menu', this.file).on('click', 'li', (event) => {\n if (!$(event.currentTarget).hasClass('active')) {\n return this.activateViewMode(event.currentTarget.className);\n }\n });\n return this.activateViewMode(viewMode);\n }\n\n activateViewMode(viewMode) {\n $('.view-modes-menu li', this.file)\n .removeClass('active')\n .filter(`.${viewMode}`)\n .addClass('active');\n\n $(`.view:visible:not(.${viewMode})`, this.file).addClass('gl-hidden');\n $(`.view.${viewMode}`, this.file).removeClass('gl-hidden');\n\n return this.initView(viewMode);\n }\n\n initView(viewMode) {\n return this.views[viewMode].call(this);\n }\n // eslint-disable-next-line class-methods-use-this\n initDraggable($el, padding, callback) {\n let dragging = false;\n const $body = $('body');\n const $offsetEl = $el.parent();\n const dragStart = function () {\n dragging = true;\n $body.css('user-select', 'none');\n };\n const dragStop = function () {\n dragging = false;\n $body.css('user-select', '');\n };\n const dragMove = function (e) {\n const moveX = e.pageX || e.touches[0].pageX;\n const left = moveX - ($offsetEl.offset().left + padding);\n if (!dragging) return;\n\n callback(e, left);\n };\n\n // eslint-disable-next-line @gitlab/no-global-event-off\n $el.off('mousedown').off('touchstart').on('mousedown', dragStart).on('touchstart', dragStart);\n\n // eslint-disable-next-line @gitlab/no-global-event-off\n $body\n .off('mouseup')\n .off('mousemove')\n .off('touchend')\n .off('touchmove')\n .on('mouseup', dragStop)\n .on('touchend', dragStop)\n .on('mousemove', dragMove)\n .on('touchmove', dragMove);\n }\n\n static prepareFrames(view) {\n let maxWidth = 0;\n let maxHeight = 0;\n $('.frame', view)\n .each((index, frame) => {\n const width = $(frame).width();\n const height = $(frame).height();\n maxWidth = width > maxWidth ? width : maxWidth;\n return (maxHeight = height > maxHeight ? height : maxHeight);\n })\n .css({\n width: maxWidth,\n height: maxHeight,\n });\n return [maxWidth, maxHeight];\n }\n\n views = {\n 'two-up': function () {\n return $('.two-up.view .wrap', this.file).each((index, wrap) => {\n $('img', wrap).each(function () {\n const currentWidth = $(this).width();\n if (currentWidth > availWidth / 2) {\n return $(this).width(availWidth / 2);\n }\n });\n return this.requestImageInfo($('img', wrap), (width, height) => {\n $('.image-info .meta-width', wrap).text(`${width}px`);\n $('.image-info .meta-height', wrap).text(`${height}px`);\n return $('.image-info', wrap).removeClass('gl-hidden');\n });\n });\n },\n swipe() {\n let maxWidth = 0;\n let maxHeight = 0;\n return $('.swipe.view', this.file).each((index, view) => {\n const ref = ImageFile.prepareFrames(view);\n [maxWidth, maxHeight] = ref;\n const $swipeFrame = $('.swipe-frame', view);\n const $swipeWrap = $('.swipe-wrap', view);\n const $swipeBar = $('.swipe-bar', view);\n\n $swipeFrame.css({\n width: maxWidth + 16,\n height: maxHeight + 28,\n });\n $swipeWrap.css({\n width: maxWidth + 1,\n height: maxHeight + 2,\n });\n // Set swipeBar left position to match image frame\n $swipeBar.css({\n left: 1,\n });\n\n const wrapPadding = parseInt($swipeWrap.css('right').replace('px', ''), 10);\n\n this.initDraggable($swipeBar, wrapPadding, (e, left) => {\n if (left > 0 && left < $swipeFrame.width() - wrapPadding * 2) {\n $swipeWrap.width(maxWidth + 1 - left);\n $swipeBar.css('left', left);\n }\n });\n });\n },\n 'onion-skin': function () {\n let maxHeight, maxWidth;\n maxWidth = 0;\n maxHeight = 0;\n const dragTrackWidth = $('.drag-track', this.file).width() - $('.dragger', this.file).width();\n return $('.onion-skin.view', this.file).each((index, view) => {\n const ref = ImageFile.prepareFrames(view);\n [maxWidth, maxHeight] = ref;\n const $frame = $('.onion-skin-frame', view);\n const $frameAdded = $('.frame.added', view);\n const $track = $('.drag-track', view);\n const $dragger = $('.dragger', $track);\n\n $frame.css({\n width: maxWidth + 16,\n height: maxHeight + 28,\n });\n $('.swipe-wrap', view).css({\n width: maxWidth + 1,\n height: maxHeight + 2,\n });\n $dragger.css({\n left: dragTrackWidth,\n });\n\n $frameAdded.css('opacity', 1);\n const framePadding = parseInt($frameAdded.css('right').replace('px', ''), 10);\n\n this.initDraggable($dragger, framePadding, (e, left) => {\n const opacity = left / dragTrackWidth;\n\n if (opacity >= 0 && opacity <= 1) {\n $dragger.css('left', left);\n $frameAdded.css('opacity', opacity);\n }\n });\n });\n },\n };\n\n requestImageInfo(img, callback) {\n const domImg = img.get(0);\n if (domImg) {\n if (domImg.complete) {\n return callback.call(this, domImg.naturalWidth, domImg.naturalHeight);\n }\n return img.on('load', () => callback.call(this, domImg.naturalWidth, domImg.naturalHeight));\n }\n }\n}\n","import { spriteIcon } from '~/lib/utils/common_utils';\n\nexport function createImageBadge(noteId, { x, y }, classNames = []) {\n const buttonEl = document.createElement('button');\n const classList = classNames.concat(['js-image-badge']);\n classList.forEach((className) => buttonEl.classList.add(className));\n buttonEl.setAttribute('type', 'button');\n buttonEl.setAttribute('disabled', true);\n buttonEl.dataset.noteId = noteId;\n buttonEl.style.left = `${x}px`;\n buttonEl.style.top = `${y}px`;\n\n return buttonEl;\n}\n\nexport function addImageBadge(containerEl, { coordinate, badgeText, noteId }) {\n const buttonEl = createImageBadge(noteId, coordinate, [\n 'gl-flex',\n 'gl-items-center',\n 'gl-justify-center',\n 'gl-text-sm',\n 'design-note-pin',\n 'on-image',\n 'gl-absolute',\n ]);\n buttonEl.textContent = badgeText;\n\n containerEl.appendChild(buttonEl);\n}\n\nexport function addImageCommentBadge(containerEl, { coordinate, noteId }) {\n const buttonEl = createImageBadge(noteId, coordinate, ['image-comment-badge']);\n // eslint-disable-next-line no-unsanitized/property\n buttonEl.innerHTML = spriteIcon('image-comment-dark');\n\n containerEl.appendChild(buttonEl);\n}\n\nexport function addAvatarBadge(el, event) {\n const { noteId, badgeNumber } = event.detail;\n\n // Add design pin to new comment\n const avatarBadgeEl = el.querySelector(`#${noteId} .design-note-pin`);\n avatarBadgeEl.textContent = badgeNumber;\n avatarBadgeEl.classList.remove('hidden');\n}\n","import { spriteIcon } from '~/lib/utils/common_utils';\n\nexport function addCommentIndicator(containerEl, { x, y }) {\n const buttonEl = document.createElement('button');\n buttonEl.classList.add('gl-border-0');\n buttonEl.classList.add('gl-bg-transparent');\n buttonEl.classList.add('comment-indicator');\n buttonEl.setAttribute('type', 'button');\n buttonEl.style.left = `${x}px`;\n buttonEl.style.top = `${y}px`;\n\n // eslint-disable-next-line no-unsanitized/property\n buttonEl.innerHTML = spriteIcon('image-comment-dark');\n\n containerEl.appendChild(buttonEl);\n}\n\nexport function removeCommentIndicator(imageFrameEl) {\n const commentIndicatorEl = imageFrameEl.querySelector('.comment-indicator');\n const imageEl = imageFrameEl.querySelector('img');\n const willRemove = Boolean(commentIndicatorEl);\n let meta = {};\n\n if (willRemove) {\n meta = {\n x: parseInt(commentIndicatorEl.style.left, 10),\n y: parseInt(commentIndicatorEl.style.top, 10),\n image: {\n width: imageEl.width,\n height: imageEl.height,\n },\n };\n\n commentIndicatorEl.remove();\n }\n\n return { ...meta, removed: willRemove };\n}\n\nexport function showCommentIndicator(imageFrameEl, coordinate) {\n const { x, y } = coordinate;\n const commentIndicatorEl = imageFrameEl.querySelector('.comment-indicator');\n\n if (commentIndicatorEl) {\n commentIndicatorEl.style.left = `${x}px`;\n commentIndicatorEl.style.top = `${y}px`;\n } else {\n addCommentIndicator(imageFrameEl, coordinate);\n }\n}\n\nexport function commentIndicatorOnClick(event) {\n // Prevent from triggering onAddImageDiffNote in notes.js\n event.stopPropagation();\n\n const buttonEl = event.currentTarget;\n const diffViewerEl = buttonEl.closest('.diff-viewer');\n const textareaEl = diffViewerEl.querySelector('.note-container .note-textarea');\n textareaEl.focus();\n}\n","import imageDiffHelper from './helpers/index';\n\nconst defaultMeta = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n};\n\nexport default class ImageBadge {\n constructor(options) {\n const { noteId, discussionId } = options;\n\n this.actual = options.actual || defaultMeta;\n this.browser = options.browser || defaultMeta;\n this.noteId = noteId;\n this.discussionId = discussionId;\n\n if (options.imageEl && !options.browser) {\n this.browser = imageDiffHelper.resizeCoordinatesToImageElement(options.imageEl, this.actual);\n }\n }\n}\n","import * as badgeHelper from './badge_helper';\nimport * as commentIndicatorHelper from './comment_indicator_helper';\nimport * as domHelper from './dom_helper';\nimport * as utilsHelper from './utils_helper';\n\nexport default {\n addCommentIndicator: commentIndicatorHelper.addCommentIndicator,\n removeCommentIndicator: commentIndicatorHelper.removeCommentIndicator,\n showCommentIndicator: commentIndicatorHelper.showCommentIndicator,\n commentIndicatorOnClick: commentIndicatorHelper.commentIndicatorOnClick,\n\n addImageBadge: badgeHelper.addImageBadge,\n addImageCommentBadge: badgeHelper.addImageCommentBadge,\n addAvatarBadge: badgeHelper.addAvatarBadge,\n\n setPositionDataAttribute: domHelper.setPositionDataAttribute,\n updateDiscussionAvatarBadgeNumber: domHelper.updateDiscussionAvatarBadgeNumber,\n updateDiscussionBadgeNumber: domHelper.updateDiscussionBadgeNumber,\n toggleCollapsed: domHelper.toggleCollapsed,\n\n resizeCoordinatesToImageElement: utilsHelper.resizeCoordinatesToImageElement,\n generateBadgeFromDiscussionDOM: utilsHelper.generateBadgeFromDiscussionDOM,\n getTargetSelection: utilsHelper.getTargetSelection,\n};\n","export function setPositionDataAttribute(el, options) {\n // Update position data attribute so that the\n // new comment form can use this data for ajax request\n const { x, y, width, height } = options;\n const { position } = el.dataset;\n\n const positionObject = { ...JSON.parse(position), x, y, width, height };\n\n el.dataset.position = JSON.stringify(positionObject);\n}\n\nexport function updateDiscussionAvatarBadgeNumber(discussionEl, newBadgeNumber) {\n const avatarBadgeEl = discussionEl.querySelector('.image-diff-avatar-link .design-note-pin');\n avatarBadgeEl.textContent = newBadgeNumber;\n}\n\nexport function updateDiscussionBadgeNumber(discussionEl, newBadgeNumber) {\n const discussionBadgeEl = discussionEl.querySelector('.design-note-pin');\n discussionBadgeEl.textContent = newBadgeNumber;\n}\n\nexport function toggleCollapsed(event) {\n const toggleButtonEl = event.currentTarget;\n const discussionNotesEl = toggleButtonEl.closest('.discussion-notes');\n const formEl = discussionNotesEl.querySelector('.discussion-form');\n const isCollapsed = discussionNotesEl.classList.contains('collapsed');\n\n if (isCollapsed) {\n discussionNotesEl.classList.remove('collapsed');\n } else {\n discussionNotesEl.classList.add('collapsed');\n }\n\n // Override the inline display style set in notes.js\n if (formEl && !isCollapsed) {\n formEl.style.display = 'none';\n } else if (formEl && isCollapsed) {\n formEl.style.display = 'block';\n }\n}\n","import ImageBadge from '../image_badge';\n\nexport function resizeCoordinatesToImageElement(imageEl, meta) {\n const { x, y, width, height } = meta;\n\n const imageWidth = imageEl.width;\n const imageHeight = imageEl.height;\n\n const widthRatio = imageWidth / width;\n const heightRatio = imageHeight / height;\n\n return {\n x: Math.round(x * widthRatio),\n y: Math.round(y * heightRatio),\n width: imageWidth,\n height: imageHeight,\n };\n}\n\nexport function generateBadgeFromDiscussionDOM(imageFrameEl, discussionEl) {\n const position = JSON.parse(discussionEl.dataset.position);\n const firstNoteEl = discussionEl.querySelector('.note');\n const badge = new ImageBadge({\n actual: position,\n imageEl: imageFrameEl.querySelector('img'),\n noteId: firstNoteEl.id,\n discussionId: discussionEl.dataset.discussionId,\n });\n\n return badge;\n}\n\nexport function getTargetSelection(event) {\n const containerEl = event.currentTarget;\n const imageEl = containerEl.querySelector('img');\n\n const x = event.offsetX;\n const y = event.offsetY;\n\n const { width, height } = imageEl;\n\n const actualWidth = imageEl.naturalWidth;\n const actualHeight = imageEl.naturalHeight;\n\n const widthRatio = actualWidth / width;\n const heightRatio = actualHeight / height;\n\n // Browser will include the frame as a clickable target,\n // which would result in potential 1px out of bounds value\n // This bound the coordinates to inside the frame\n const normalizedX = Math.max(0, x) && Math.min(x, width);\n const normalizedY = Math.max(0, y) && Math.min(y, height);\n\n return {\n browser: {\n x: normalizedX,\n y: normalizedY,\n width,\n height,\n },\n actual: {\n // Round x, y so that we don't need to deal with decimals\n x: Math.round(normalizedX * widthRatio),\n y: Math.round(normalizedY * heightRatio),\n width: actualWidth,\n height: actualHeight,\n },\n };\n}\n","import $ from 'jquery';\nimport { isImageLoaded } from '../lib/utils/image_utility';\nimport imageDiffHelper from './helpers/index';\nimport ImageBadge from './image_badge';\n\nexport default class ImageDiff {\n constructor(el, options) {\n this.el = el;\n this.canCreateNote = Boolean(options && options.canCreateNote);\n this.renderCommentBadge = Boolean(options && options.renderCommentBadge);\n this.$noteContainer = $('.note-container', this.el);\n this.imageBadges = [];\n }\n\n init() {\n this.imageFrameEl = this.el.querySelector('.diff-file .js-image-frame');\n this.imageEl = this.imageFrameEl.querySelector('img');\n\n this.bindEvents();\n }\n\n bindEvents() {\n this.imageClickedWrapper = this.imageClicked.bind(this);\n this.imageBlurredWrapper = imageDiffHelper.removeCommentIndicator.bind(null, this.imageFrameEl);\n this.addBadgeWrapper = this.addBadge.bind(this);\n this.removeBadgeWrapper = this.removeBadge.bind(this);\n this.renderBadgesWrapper = this.renderBadges.bind(this);\n\n // Render badges\n if (isImageLoaded(this.imageEl)) {\n this.renderBadges();\n } else {\n this.imageEl.addEventListener('load', this.renderBadgesWrapper);\n }\n\n // jquery makes the event delegation here much simpler\n this.$noteContainer.on('click', '.js-diff-notes-toggle', imageDiffHelper.toggleCollapsed);\n $(this.el).on('click', '.comment-indicator', imageDiffHelper.commentIndicatorOnClick);\n\n if (this.canCreateNote) {\n this.el.addEventListener('click.imageDiff', this.imageClickedWrapper);\n this.el.addEventListener('blur.imageDiff', this.imageBlurredWrapper);\n this.el.addEventListener('addBadge.imageDiff', this.addBadgeWrapper);\n this.el.addEventListener('removeBadge.imageDiff', this.removeBadgeWrapper);\n }\n }\n\n imageClicked(event) {\n const customEvent = event.detail;\n const selection = imageDiffHelper.getTargetSelection(customEvent);\n const el = customEvent.currentTarget;\n\n imageDiffHelper.setPositionDataAttribute(el, selection.actual);\n imageDiffHelper.showCommentIndicator(this.imageFrameEl, selection.browser);\n }\n\n renderBadges() {\n const discussionsEls = this.el.querySelectorAll('.note-container .discussion-notes .notes');\n [...discussionsEls].forEach(this.renderBadge.bind(this));\n }\n\n renderBadge(discussionEl, index) {\n const imageBadge = imageDiffHelper.generateBadgeFromDiscussionDOM(\n this.imageFrameEl,\n discussionEl,\n );\n\n this.imageBadges.push(imageBadge);\n\n const options = {\n coordinate: imageBadge.browser,\n noteId: imageBadge.noteId,\n };\n\n if (this.renderCommentBadge) {\n imageDiffHelper.addImageCommentBadge(this.imageFrameEl, options);\n } else {\n const numberBadgeOptions = { ...options, badgeText: index + 1 };\n\n imageDiffHelper.addImageBadge(this.imageFrameEl, numberBadgeOptions);\n }\n }\n\n addBadge(event) {\n const { x, y, width, height, noteId, discussionId } = event.detail;\n const badgeText = this.imageBadges.length + 1;\n const imageBadge = new ImageBadge({\n actual: {\n x,\n y,\n width,\n height,\n },\n imageEl: this.imageFrameEl.querySelector('img'),\n noteId,\n discussionId,\n });\n\n this.imageBadges.push(imageBadge);\n\n imageDiffHelper.addImageBadge(this.imageFrameEl, {\n coordinate: imageBadge.browser,\n badgeText,\n noteId,\n });\n\n imageDiffHelper.addAvatarBadge(this.el, {\n detail: {\n noteId,\n badgeNumber: badgeText,\n },\n });\n\n const discussionEl = this.el.querySelector(`#discussion_${discussionId}`);\n imageDiffHelper.updateDiscussionBadgeNumber(discussionEl, badgeText);\n }\n\n removeBadge(event) {\n const { badgeNumber } = event.detail;\n const indexToRemove = badgeNumber - 1;\n const imageBadgeEls = this.imageFrameEl.querySelectorAll('.design-note-pin');\n\n if (this.imageBadges.length !== badgeNumber) {\n // Cascade badges count numbers for (avatar badges + image badges)\n this.imageBadges.forEach((badge, index) => {\n if (index > indexToRemove) {\n const { discussionId } = badge;\n const updatedBadgeNumber = index;\n const discussionEl = this.el.querySelector(`#discussion_${discussionId}`);\n\n imageBadgeEls[index].textContent = updatedBadgeNumber;\n\n imageDiffHelper.updateDiscussionBadgeNumber(discussionEl, updatedBadgeNumber);\n imageDiffHelper.updateDiscussionAvatarBadgeNumber(discussionEl, updatedBadgeNumber);\n }\n });\n }\n\n this.imageBadges.splice(indexToRemove, 1);\n\n const imageBadgeEl = imageBadgeEls[indexToRemove];\n imageBadgeEl.remove();\n }\n}\n","export function isImageLoaded(element) {\n return element.complete && element.naturalHeight !== 0;\n}\n","export const viewTypes = {\n TWO_UP: 'TWO_UP',\n SWIPE: 'SWIPE',\n ONION_SKIN: 'ONION_SKIN',\n};\n\nexport function isValidViewType(validate) {\n return Boolean(Object.getOwnPropertyNames(viewTypes).find((viewType) => viewType === validate));\n}\n","import imageDiffHelper from './helpers/index';\nimport ImageDiff from './image_diff';\nimport { viewTypes, isValidViewType } from './view_types';\n\nexport default class ReplacedImageDiff extends ImageDiff {\n init(defaultViewType = viewTypes.TWO_UP) {\n this.imageFrameEls = {\n [viewTypes.TWO_UP]: this.el.querySelector('.two-up .js-image-frame'),\n [viewTypes.SWIPE]: this.el.querySelector('.swipe .js-image-frame'),\n [viewTypes.ONION_SKIN]: this.el.querySelector('.onion-skin .js-image-frame'),\n };\n\n const viewModesEl = this.el.querySelector('.view-modes-menu');\n this.viewModesEls = {\n [viewTypes.TWO_UP]: viewModesEl.querySelector('.two-up'),\n [viewTypes.SWIPE]: viewModesEl.querySelector('.swipe'),\n [viewTypes.ONION_SKIN]: viewModesEl.querySelector('.onion-skin'),\n };\n\n this.currentView = defaultViewType;\n this.generateImageEls();\n this.bindEvents();\n }\n\n generateImageEls() {\n this.imageEls = {};\n\n const viewTypeNames = Object.getOwnPropertyNames(viewTypes);\n viewTypeNames.forEach((viewType) => {\n this.imageEls[viewType] = this.imageFrameEls[viewType].querySelector('img');\n });\n }\n\n bindEvents() {\n super.bindEvents();\n\n this.changeToViewTwoUp = this.changeView.bind(this, viewTypes.TWO_UP);\n this.changeToViewSwipe = this.changeView.bind(this, viewTypes.SWIPE);\n this.changeToViewOnionSkin = this.changeView.bind(this, viewTypes.ONION_SKIN);\n\n this.viewModesEls[viewTypes.TWO_UP].addEventListener('click', this.changeToViewTwoUp);\n this.viewModesEls[viewTypes.SWIPE].addEventListener('click', this.changeToViewSwipe);\n this.viewModesEls[viewTypes.ONION_SKIN].addEventListener('click', this.changeToViewOnionSkin);\n }\n\n get imageEl() {\n return this.imageEls[this.currentView];\n }\n\n get imageFrameEl() {\n return this.imageFrameEls[this.currentView];\n }\n\n changeView(newView) {\n if (!isValidViewType(newView)) {\n return;\n }\n\n const indicator = imageDiffHelper.removeCommentIndicator(this.imageFrameEl);\n\n this.currentView = newView;\n\n // Clear existing badges on new view\n const existingBadges = this.imageFrameEl.querySelectorAll('.design-note-pin');\n [...existingBadges].map((badge) => badge.remove());\n\n // Remove existing references to old view image badges\n this.imageBadges = [];\n\n // Image_file.js has a fade animation of 200ms for loading the view\n // Need to wait an additional 250ms for the images to be displayed\n // on window in order to re-normalize their dimensions\n setTimeout(this.renderNewView.bind(this, indicator), 250);\n }\n\n renderNewView(indicator) {\n // Generate badge coordinates on new view\n this.renderBadges();\n\n // Re-render indicator in new view\n if (indicator.removed) {\n const normalizedIndicator = imageDiffHelper.resizeCoordinatesToImageElement(this.imageEl, {\n x: indicator.x,\n y: indicator.y,\n width: indicator.image.width,\n height: indicator.image.height,\n });\n imageDiffHelper.showCommentIndicator(this.imageFrameEl, normalizedIndicator);\n }\n }\n}\n","import ImageFile from '~/commit/image_file';\nimport ImageDiff from '../image_diff';\nimport ReplacedImageDiff from '../replaced_image_diff';\n\nfunction initImageDiff(fileEl, canCreateNote, renderCommentBadge) {\n const options = {\n canCreateNote,\n renderCommentBadge,\n };\n let diff;\n\n // ImageFile needs to be invoked before initImageDiff so that badges\n // can mount to the correct location\n new ImageFile(fileEl); // eslint-disable-line no-new\n\n if (fileEl.querySelector('.diff-file .js-single-image')) {\n diff = new ImageDiff(fileEl, options);\n diff.init();\n } else if (fileEl.querySelector('.diff-file .js-replaced-image')) {\n diff = new ReplacedImageDiff(fileEl, options);\n diff.init();\n }\n\n return diff;\n}\n\nexport default { initImageDiff };\n","import $ from 'jquery';\nimport { GlButton } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { loadingIconForLegacyJS } from '~/loading_icon_for_legacy_js';\nimport { renderVueComponentForLegacyJS } from '~/render_vue_component_for_legacy_js';\nimport { spriteIcon } from '~/lib/utils/common_utils';\nimport FilesCommentButton from './files_comment_button';\nimport initImageDiffHelper from './image_diff/helpers/init_image_diff';\nimport axios from './lib/utils/axios_utils';\nimport { __ } from './locale';\nimport syntaxHighlight from './syntax_highlight';\n\nconst WRAPPER = '<div class=\"diff-content\"></div>';\nconst LOADING_HTML = loadingIconForLegacyJS().outerHTML;\nconst ERROR_HTML = `<div class=\"nothing-here-block\">${spriteIcon(\n 'warning-solid',\n 's16',\n)} Could not load diff</div>`;\nconst CLICK_TO_EXPAND_BUTTON_HTML = renderVueComponentForLegacyJS(\n GlButton,\n {\n class: 'click-to-expand',\n props: { variant: 'link' },\n },\n __('Click to expand it.'),\n).outerHTML;\nconst COLLAPSED_HTML = `<div class=\"nothing-here-block diff-collapsed\">This diff is collapsed. ${CLICK_TO_EXPAND_BUTTON_HTML}</div>`;\n\nexport default class SingleFileDiff {\n constructor(file) {\n this.file = file;\n this.toggleDiff = this.toggleDiff.bind(this);\n this.content = $('.diff-content', this.file);\n this.$chevronRightIcon = $('.diff-toggle-caret .chevron-right', this.file);\n this.$chevronDownIcon = $('.diff-toggle-caret .chevron-down', this.file);\n this.diffForPath = this.content\n .find('div:not(.note-text)[data-diff-for-path]')\n .data('diffForPath');\n this.isOpen = !this.diffForPath;\n if (this.diffForPath) {\n this.collapsedContent = this.content;\n this.loadingContent = $(WRAPPER).addClass('loading').html(LOADING_HTML).hide();\n this.content = null;\n this.collapsedContent.after(this.loadingContent);\n this.$chevronRightIcon.removeClass('gl-hidden');\n } else {\n this.collapsedContent = $(WRAPPER).html(COLLAPSED_HTML).hide();\n this.content.after(this.collapsedContent);\n this.$chevronDownIcon.removeClass('gl-hidden');\n }\n\n $('.js-file-title', this.file).on('click', (e) => {\n this.toggleDiff($(e.target));\n });\n $('.click-to-expand', this.file).on('click', (e) => {\n this.toggleDiff($(e.currentTarget));\n });\n }\n\n toggleDiff($target, cb) {\n if (\n !$target.hasClass('js-file-title') &&\n !$target.hasClass('click-to-expand') &&\n !$target.closest('.diff-toggle-caret').length > 0\n )\n return;\n this.isOpen = !this.isOpen;\n if (!this.isOpen && !this.hasError) {\n this.content.hide();\n this.$chevronRightIcon.removeClass('gl-hidden');\n this.$chevronDownIcon.addClass('gl-hidden');\n this.collapsedContent.show();\n } else if (this.content) {\n this.collapsedContent.hide();\n this.content.show();\n this.$chevronDownIcon.removeClass('gl-hidden');\n this.$chevronRightIcon.addClass('gl-hidden');\n } else {\n this.$chevronDownIcon.removeClass('gl-hidden');\n this.$chevronRightIcon.addClass('gl-hidden');\n return this.getContentHTML(cb); // eslint-disable-line consistent-return\n }\n }\n\n getContentHTML(cb) {\n this.collapsedContent.hide();\n this.loadingContent.show();\n\n return axios\n .get(this.diffForPath)\n .then(({ data }) => {\n this.loadingContent.hide();\n if (data.html) {\n this.content = $(data.html);\n syntaxHighlight(this.content);\n } else {\n this.hasError = true;\n this.content = $(ERROR_HTML);\n }\n this.collapsedContent.after(this.content);\n\n const $file = $(this.file);\n FilesCommentButton.init($file);\n\n const canCreateNote = $file.closest('.files').is('[data-can-create-note]');\n initImageDiffHelper.initImageDiff($file[0], canCreateNote);\n\n if (cb) cb();\n })\n .catch(() => {\n createAlert({\n message: __('An error occurred while retrieving diff'),\n });\n });\n }\n}\n","import $ from 'jquery';\nimport { merge } from 'lodash';\nimport { createAlert } from '~/alert';\nimport axios from '~/lib/utils/axios_utils';\nimport { __ } from '~/locale';\nimport FilesCommentButton from './files_comment_button';\nimport initImageDiffHelper from './image_diff/helpers/init_image_diff';\nimport { getLocationHash } from './lib/utils/url_utility';\nimport SingleFileDiff from './single_file_diff';\n\nconst UNFOLD_COUNT = 20;\nlet isBound = false;\n\nexport default class Diff {\n constructor({ mergeRequestEventHub } = {}) {\n const $diffFile = $('.files .diff-file');\n\n if (mergeRequestEventHub) {\n this.mrHub = mergeRequestEventHub;\n }\n\n $diffFile.each((index, file) => {\n if (!$.data(file, 'singleFileDiff')) {\n $.data(file, 'singleFileDiff', new SingleFileDiff(file));\n }\n });\n\n const tab = document.getElementById('diffs');\n if (!tab || (tab && tab.dataset && tab.dataset.isLocked !== ''))\n FilesCommentButton.init($diffFile);\n\n const firstFile = $('.files').first().get(0);\n const canCreateNote =\n firstFile && Object.prototype.hasOwnProperty.call(firstFile.dataset, 'canCreateNote');\n $diffFile.each((index, file) => initImageDiffHelper.initImageDiff(file, canCreateNote));\n\n if (!isBound) {\n $(document)\n .on('click', '.js-unfold', this.handleClickUnfold.bind(this))\n .on('click', '.diff-line-num a', this.handleClickLineNum.bind(this))\n .on('mousedown', 'td.line_content.parallel', this.handleParallelLineDown.bind(this))\n .on('click', '.inline-parallel-buttons a', ($e) => this.viewTypeSwitch($e));\n isBound = true;\n }\n\n if (getLocationHash()) {\n this.highlightSelectedLine();\n }\n\n this.openAnchoredDiff();\n\n this.prepareRenderedDiff();\n }\n\n handleClickUnfold(e) {\n const $target = $(e.target);\n const [oldLineNumber, newLineNumber] = this.lineNumbers($target.parent());\n const offset = newLineNumber - oldLineNumber;\n const bottom = $target.hasClass('js-unfold-bottom');\n let since;\n let to;\n let unfold = true;\n\n if (bottom) {\n const lineNumber = newLineNumber + 1;\n since = lineNumber;\n to = lineNumber + UNFOLD_COUNT;\n } else {\n const lineNumber = newLineNumber - 1;\n since = lineNumber - UNFOLD_COUNT;\n to = lineNumber;\n\n // make sure we aren't loading more than we need\n const prevNewLine = this.lineNumbers($target.parent().prev())[1];\n if (since <= prevNewLine + 1) {\n since = prevNewLine + 1;\n unfold = false;\n }\n }\n\n const file = $target.parents('.diff-file');\n const link = file.data('blobDiffPath');\n const view = file.data('view');\n\n const params = { since, to, bottom, offset, unfold, view };\n axios\n .get(link, { params })\n .then(({ data }) => $target.parent().replaceWith(data))\n .catch(() =>\n createAlert({\n message: __('An error occurred while loading diff'),\n }),\n );\n }\n\n openAnchoredDiff(cb) {\n const locationHash = getLocationHash();\n const anchoredDiff = locationHash && locationHash.split('_')[0];\n\n if (!anchoredDiff) return;\n\n const diffTitle = $(`#${anchoredDiff}`);\n const diffFile = diffTitle.closest('.diff-file');\n const nothingHereBlock = $('.nothing-here-block:visible', diffFile);\n if (nothingHereBlock.length) {\n const clickTarget = $('.js-file-title, .click-to-expand', diffFile);\n diffFile.data('singleFileDiff').toggleDiff(clickTarget, () => {\n this.highlightSelectedLine();\n this.prepareRenderedDiff();\n if (cb) cb();\n });\n } else if (cb) {\n cb();\n }\n }\n\n handleClickLineNum(e) {\n const hash = $(e.currentTarget).attr('href');\n e.preventDefault();\n if (window.history.pushState) {\n window.history.pushState(null, null, hash);\n } else {\n window.location.hash = hash;\n }\n this.highlightSelectedLine();\n }\n // eslint-disable-next-line class-methods-use-this\n handleParallelLineDown(e) {\n const line = $(e.currentTarget);\n const table = line.closest('table');\n\n table.removeClass('left-side-selected right-side-selected');\n\n const lineClass = ['left-side', 'right-side'].filter((name) => line.hasClass(name))[0];\n if (lineClass) {\n table.addClass(`${lineClass}-selected`);\n }\n }\n // eslint-disable-next-line class-methods-use-this\n diffViewType() {\n return $('.inline-parallel-buttons a.active').data('viewType');\n }\n viewTypeSwitch(event) {\n const click = event.originalEvent;\n const diffSource = new URL(event.currentTarget.getAttribute('href'), document.location.href);\n\n if (this.mrHub) {\n click.preventDefault();\n click.stopPropagation();\n\n diffSource.pathname = `${diffSource.pathname}.json`;\n\n this.mrHub.$emit('diff:switch-view-type', { source: diffSource.toString() });\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n lineNumbers(line) {\n const children = line.find('.diff-line-num').toArray();\n if (children.length !== 2) {\n return [0, 0];\n }\n return children.map((elm) => parseInt($(elm).data('linenumber'), 10) || 0);\n }\n // eslint-disable-next-line class-methods-use-this\n highlightSelectedLine() {\n const hash = getLocationHash();\n const $diffFiles = $('.diff-file');\n $diffFiles.find('.hll').removeClass('hll');\n\n if (hash) {\n $diffFiles\n .find(`tr#${hash}:not(.match) td, td#${hash}, td[data-line-code=\"${hash}\"]`)\n .addClass('hll');\n }\n }\n\n prepareRenderedDiff() {\n const allElements = this.elementsForRenderedDiff();\n const diff = this;\n\n for (const [fileHash, fileElements] of Object.entries(allElements)) {\n // eslint-disable no-param-reassign\n fileElements.rawButton.onclick = () => {\n diff.showRawViewer(fileHash, diff.elementsForRenderedDiff()[fileHash]);\n };\n\n fileElements.renderedButton.onclick = () => {\n diff.showRenderedViewer(fileHash, diff.elementsForRenderedDiff()[fileHash]);\n };\n // eslint-enable no-param-reassign\n\n diff.showRenderedViewer(fileHash, fileElements);\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n formatElementToObject = (element) => {\n const key = element.attributes['data-file-hash'].value;\n const name = element.attributes['data-diff-toggle-entity'].value;\n\n return { [key]: { [name]: element } };\n };\n\n elementsForRenderedDiff = () => {\n const $elements = $('[data-diff-toggle-entity]');\n\n if ($elements.length === 0) return {};\n\n const diff = this;\n\n return $elements.toArray().map(diff.formatElementToObject).reduce(merge);\n };\n\n // eslint-disable-next-line class-methods-use-this\n showRawViewer = (fileHash, elements) => {\n if (elements === undefined) return;\n\n elements.rawButton.classList.add('selected');\n elements.renderedButton.classList.remove('selected');\n\n elements.renderedViewer.classList.add('hidden');\n elements.rawViewer.classList.remove('hidden');\n };\n\n // eslint-disable-next-line class-methods-use-this\n showRenderedViewer = (fileHash, elements) => {\n if (elements === undefined) return;\n\n elements.rawButton.classList.remove('selected');\n elements.rawViewer.classList.add('hidden');\n\n elements.renderedButton.classList.add('selected');\n elements.renderedViewer.classList.remove('hidden');\n };\n}\n","var arrayReduce = require('./_arrayReduce'),\n deburr = require('./deburr'),\n words = require('./words');\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\";\n\n/** Used to match apostrophes. */\nvar reApos = RegExp(rsApos, 'g');\n\n/**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\nfunction createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n}\n\nmodule.exports = createCompounder;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('gl-button',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.$options.modalId),expression:\"$options.modalId\"}],attrs:{\"variant\":\"link\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.__('Email a new %{name} to this project')},scopedSlots:_vm._u([{key:\"name\",fn:function(){return [_vm._v(_vm._s(_vm.issuableName))]},proxy:true}])})],1),_vm._v(\" \"),_c('gl-modal',{ref:\"modal\",attrs:{\"modal-id\":_vm.$options.modalId},scopedSlots:_vm._u([{key:\"modal-title\",fn:function(){return [_c('gl-sprintf',{attrs:{\"message\":_vm.__('Create new %{name} by email')},scopedSlots:_vm._u([{key:\"name\",fn:function(){return [_vm._v(_vm._s(_vm.issuableName))]},proxy:true}])})]},proxy:true},{key:\"modal-footer\",fn:function(){return [_c('gl-button',{attrs:{\"category\":\"secondary\"},on:{\"click\":_vm.cancelHandler}},[_vm._v(_vm._s(_vm.__('Cancel')))])]},proxy:true}])},[_vm._v(\" \"),_c('p',[_c('gl-sprintf',{attrs:{\"message\":_vm.__(\n 'You can create a new %{name} inside this project by sending an email to the following email address:',\n )},scopedSlots:_vm._u([{key:\"name\",fn:function(){return [_vm._v(_vm._s(_vm.issuableName))]},proxy:true}])})],1),_vm._v(\" \"),_c('gl-form-input-group',{staticClass:\"gl-mb-4\",attrs:{\"value\":_vm.email,\"readonly\":\"\",\"select-on-click\":\"\"},scopedSlots:_vm._u([{key:\"append\",fn:function(){return [_c('modal-copy-button',{attrs:{\"text\":_vm.email,\"title\":_vm.__('Copy'),\"modal-id\":_vm.$options.modalId}}),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"href\":_vm.mailToLink,\"title\":_vm.$options.i18n.sendEmail,\"aria-label\":_vm.$options.i18n.sendEmail,\"icon\":\"mail\"}})]},proxy:true}])}),_vm._v(\" \"),_c('p',[_c('gl-sprintf',{attrs:{\"message\":_vm.__(\n 'The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported.',\n )},scopedSlots:_vm._u([{key:\"quickActionsLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.quickActionsHelpPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}},{key:\"markdownLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.markdownHelpPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}}])})],1),_vm._v(\" \"),_c('p',[_c('gl-sprintf',{attrs:{\"message\":_vm.__(\n 'This is a private email address %{helpIcon} generated just for you. Anyone who has it can create issues or merge requests as if they were you. If that happens, %{resetLinkStart}reset this token%{resetLinkEnd}.',\n )},scopedSlots:_vm._u([{key:\"helpIcon\",fn:function(){return [_c('gl-link',{attrs:{\"href\":_vm.emailsHelpPagePath,\"target\":\"_blank\"}},[_c('help-icon')],1)]},proxy:true},{key:\"resetLink\",fn:function({ content }){return [_c('gl-button',{attrs:{\"variant\":\"link\",\"data-testid\":\"reset_email_token_link\"},on:{\"click\":_vm.resetIncomingEmailToken}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}}])})],1)],1)],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!./issuable_by_email.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!./issuable_by_email.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlButton,\n GlModal,\n GlModalDirective,\n GlTooltipDirective,\n GlSprintf,\n GlLink,\n GlFormInputGroup,\n} from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport axios from '~/lib/utils/axios_utils';\nimport { sprintf, __ } from '~/locale';\nimport ModalCopyButton from '~/vue_shared/components/modal_copy_button.vue';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\n\nexport default {\n i18n: {\n sendEmail: __('Send email'),\n },\n name: 'IssuableByEmail',\n components: {\n GlButton,\n GlModal,\n GlSprintf,\n GlLink,\n GlFormInputGroup,\n HelpIcon,\n ModalCopyButton,\n },\n directives: {\n GlModal: GlModalDirective,\n GlTooltip: GlTooltipDirective,\n },\n inject: {\n initialEmail: {\n default: null,\n },\n issuableType: {\n default: TYPE_ISSUE,\n },\n emailsHelpPagePath: {\n default: '',\n },\n quickActionsHelpPath: {\n default: '',\n },\n markdownHelpPath: {\n default: '',\n },\n resetPath: {\n default: '',\n },\n },\n data() {\n return {\n email: this.initialEmail,\n issuableName: this.issuableType === TYPE_ISSUE ? __('issue') : __('merge request'),\n };\n },\n computed: {\n mailToLink() {\n const subject = sprintf(__('Enter the %{name} title'), {\n name: this.issuableName,\n });\n const body = sprintf(__('Enter the %{name} description'), {\n name: this.issuableName,\n });\n return `mailto:${this.email}?subject=${subject}&body=${body}`;\n },\n },\n methods: {\n async resetIncomingEmailToken() {\n try {\n const {\n data: { new_address: newAddress },\n } = await axios.put(this.resetPath);\n this.email = newAddress;\n } catch {\n this.$toast.show(__('There was an error when reseting email token.'));\n }\n },\n cancelHandler() {\n this.$refs.modal.hide();\n },\n },\n modalId: 'issuable-email-modal',\n};\n</script>\n\n<template>\n <div>\n <gl-button v-gl-modal=\"$options.modalId\" variant=\"link\"\n ><gl-sprintf :message=\"__('Email a new %{name} to this project')\"\n ><template #name>{{ issuableName }}</template></gl-sprintf\n ></gl-button\n >\n <gl-modal ref=\"modal\" :modal-id=\"$options.modalId\">\n <template #modal-title>\n <gl-sprintf :message=\"__('Create new %{name} by email')\">\n <template #name>{{ issuableName }}</template>\n </gl-sprintf>\n </template>\n <p>\n <gl-sprintf\n :message=\"\n __(\n 'You can create a new %{name} inside this project by sending an email to the following email address:',\n )\n \"\n >\n <template #name>{{ issuableName }}</template>\n </gl-sprintf>\n </p>\n <gl-form-input-group :value=\"email\" readonly select-on-click class=\"gl-mb-4\">\n <template #append>\n <modal-copy-button :text=\"email\" :title=\"__('Copy')\" :modal-id=\"$options.modalId\" />\n <gl-button\n v-gl-tooltip.hover\n :href=\"mailToLink\"\n :title=\"$options.i18n.sendEmail\"\n :aria-label=\"$options.i18n.sendEmail\"\n icon=\"mail\"\n />\n </template>\n </gl-form-input-group>\n <p>\n <gl-sprintf\n :message=\"\n __(\n 'The subject will be used as the title of the new issue, and the message will be the description. %{quickActionsLinkStart}Quick actions%{quickActionsLinkEnd} and styling with %{markdownLinkStart}Markdown%{markdownLinkEnd} are supported.',\n )\n \"\n >\n <template #quickActionsLink=\"{ content }\">\n <gl-link :href=\"quickActionsHelpPath\" target=\"_blank\">{{ content }}</gl-link>\n </template>\n <template #markdownLink=\"{ content }\">\n <gl-link :href=\"markdownHelpPath\" target=\"_blank\">{{ content }}</gl-link>\n </template>\n </gl-sprintf>\n </p>\n <p>\n <gl-sprintf\n :message=\"\n __(\n 'This is a private email address %{helpIcon} generated just for you. Anyone who has it can create issues or merge requests as if they were you. If that happens, %{resetLinkStart}reset this token%{resetLinkEnd}.',\n )\n \"\n >\n <template #helpIcon>\n <gl-link :href=\"emailsHelpPagePath\" target=\"_blank\">\n <help-icon />\n </gl-link>\n </template>\n <template #resetLink=\"{ content }\">\n <gl-button\n variant=\"link\"\n data-testid=\"reset_email_token_link\"\n @click=\"resetIncomingEmailToken\"\n >\n {{ content }}\n </gl-button>\n </template>\n </gl-sprintf>\n </p>\n <template #modal-footer>\n <gl-button category=\"secondary\" @click=\"cancelHandler\">{{ __('Cancel') }}</gl-button>\n </template>\n </gl-modal>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./issuable_by_email.vue?vue&type=template&id=063f56ce\"\nimport script from \"./issuable_by_email.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_by_email.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export default \"<svg enable-background=\\\"new 0 0 50 50\\\" viewBox=\\\"0 0 50 50\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\"><linearGradient id=\\\"a\\\" gradientUnits=\\\"userSpaceOnUse\\\" x1=\\\"10.2941\\\" x2=\\\"50\\\" y1=\\\"17.8247\\\" y2=\\\"17.8247\\\"><stop offset=\\\"0\\\" stop-color=\\\"#f39c63\\\"/><stop offset=\\\"1\\\" stop-color=\\\"#ef5d4f\\\"/></linearGradient><linearGradient id=\\\"b\\\"><stop offset=\\\"0\\\" stop-color=\\\"#231c4f\\\"/><stop offset=\\\"1\\\" stop-color=\\\"#0a0430\\\"/></linearGradient><linearGradient id=\\\"c\\\" gradientUnits=\\\"userSpaceOnUse\\\" x1=\\\"16.9118\\\" x2=\\\"25\\\" xlink:href=\\\"#b\\\" y1=\\\"27.2046\\\" y2=\\\"27.2046\\\"/><linearGradient id=\\\"d\\\" gradientUnits=\\\"userSpaceOnUse\\\" x1=\\\"27.9412\\\" x2=\\\"33.0882\\\" xlink:href=\\\"#b\\\" y1=\\\"22.0575\\\" y2=\\\"22.0575\\\"/><g clip-rule=\\\"evenodd\\\" fill-rule=\\\"evenodd\\\"><path d=\\\"m31.94 41.71-31.94 8.41v-21.23c0-4.73 3.19-8.87 7.77-10.07l19.29-5.08c6.4-1.68 12.65 3.14 12.65 9.75v8.14c0 4.74-3.19 8.88-7.77 10.08z\\\" fill=\\\"#2b6af9\\\"/><path d=\\\"m50 0v21.23c0 4.73-3.19 8.87-7.77 10.07l-14.79 3.89c-8.67 2.28-17.15-4.26-17.15-13.22v-3.49c0-4.73 3.19-8.87 7.77-10.07z\\\" fill=\\\"url(#a)\\\"/><path d=\\\"m23.36 36.33 16.35-4.3v-8.16c0-6.83-6.46-11.81-13.06-10.07l-16.35 4.3v8.16c-.01 6.82 6.45 11.8 13.06 10.07z\\\" fill=\\\"#fff\\\"/><circle cx=\\\"20.96\\\" cy=\\\"27.2\\\" fill=\\\"url(#c)\\\" r=\\\"4.04\\\"/><circle cx=\\\"30.51\\\" cy=\\\"22.06\\\" fill=\\\"url(#d)\\\" r=\\\"2.57\\\"/></g></svg>\";","import kontraLogo from 'images/vulnerability/kontra-logo.svg?raw';\nimport scwLogo from 'images/vulnerability/scw-logo.svg?raw';\nimport secureflagLogo from 'images/vulnerability/secureflag-logo.svg?raw';\nimport { __, s__ } from '~/locale';\nimport { helpPagePath } from '~/helpers/help_page_helper';\n\nimport {\n REPORT_TYPE_SAST,\n REPORT_TYPE_SAST_IAC,\n REPORT_TYPE_SECRET_DETECTION,\n} from '~/vue_shared/security_reports/constants';\n\nimport configureSastMutation from './graphql/configure_sast.mutation.graphql';\nimport configureSastIacMutation from './graphql/configure_iac.mutation.graphql';\nimport configureSecretDetectionMutation from './graphql/configure_secret_detection.mutation.graphql';\n\n/**\n * Translations for Security Configuration Page\n * Make sure to add new scanner translations to the SCANNER_NAMES_MAP below.\n */\nexport const SAST_NAME = __('Static Application Security Testing (SAST)');\nexport const SAST_SHORT_NAME = s__('ciReport|SAST');\n\nexport const ADVANCED_SAST_NAME = s__('ciReport|Advanced SAST Scanning');\n\nexport const SAST_IAC_NAME = __('Infrastructure as Code (IaC) Scanning');\nexport const SAST_IAC_SHORT_NAME = s__('ciReport|SAST IaC');\n\nexport const DAST_NAME = __('Dynamic Application Security Testing (DAST)');\nexport const DAST_SHORT_NAME = s__('ciReport|DAST');\n\nexport const DAST_PROFILES_NAME = __('DAST profiles');\nexport const DAST_HELP_PATH = helpPagePath('user/application_security/dast/index');\n\nexport const SECRET_DETECTION_NAME = __('Secret Detection');\n\nexport const DEPENDENCY_SCANNING_NAME = __('Dependency Scanning');\n\nexport const CONTAINER_SCANNING_NAME = __('Container Scanning');\n\nexport const CONTAINER_SCANNING_FOR_REGISTRY_NAME = __('Container Scanning For Registry');\n\nexport const COVERAGE_FUZZING_NAME = __('Coverage Fuzzing');\n\nexport const CORPUS_MANAGEMENT_NAME = __('Corpus Management');\n\nexport const API_FUZZING_NAME = __('API Fuzzing');\n\nexport const CLUSTER_IMAGE_SCANNING_NAME = s__('ciReport|Cluster Image Scanning');\n\nexport const PRE_RECEIVE_SECRET_DETECTION = 'pre_receive_secret_detection';\n\nexport const PRE_RECEIVE_SECRET_DETECTION_NAME = __('Secret push protection');\n\nexport const SCANNER_NAMES_MAP = {\n SAST: SAST_SHORT_NAME,\n SAST_ADVANCED: ADVANCED_SAST_NAME,\n SAST_IAC: SAST_IAC_NAME,\n DAST: DAST_SHORT_NAME,\n API_FUZZING: API_FUZZING_NAME,\n CONTAINER_SCANNING: CONTAINER_SCANNING_NAME,\n CONTAINER_SCANNING_FOR_REGISTRY: CONTAINER_SCANNING_FOR_REGISTRY_NAME,\n COVERAGE_FUZZING: COVERAGE_FUZZING_NAME,\n SECRET_DETECTION: SECRET_DETECTION_NAME,\n DEPENDENCY_SCANNING: DEPENDENCY_SCANNING_NAME,\n CLUSTER_IMAGE_SCANNING: CLUSTER_IMAGE_SCANNING_NAME,\n PRE_RECEIVE_SECRET_DETECTION: PRE_RECEIVE_SECRET_DETECTION_NAME,\n GENERIC: s__('ciReport|Manually added'),\n};\n\nexport const featureToMutationMap = {\n [REPORT_TYPE_SAST]: {\n mutationId: 'configureSast',\n getMutationPayload: (projectPath) => ({\n mutation: configureSastMutation,\n variables: {\n input: {\n projectPath,\n configuration: { global: [], pipeline: [], analyzers: [] },\n },\n },\n }),\n },\n [REPORT_TYPE_SAST_IAC]: {\n mutationId: 'configureSastIac',\n getMutationPayload: (projectPath) => ({\n mutation: configureSastIacMutation,\n variables: {\n input: {\n projectPath,\n },\n },\n }),\n },\n [REPORT_TYPE_SECRET_DETECTION]: {\n mutationId: 'configureSecretDetection',\n getMutationPayload: (projectPath) => ({\n mutation: configureSecretDetectionMutation,\n variables: {\n input: {\n projectPath,\n },\n },\n }),\n },\n};\n\nexport const AUTO_DEVOPS_ENABLED_ALERT_DISMISSED_STORAGE_KEY =\n 'security_configuration_auto_devops_enabled_dismissed_projects';\n\n// Fetch the svg path from the GraphQL query once this issue is resolved\n// https://gitlab.com/gitlab-org/gitlab/-/issues/346899\nexport const TEMP_PROVIDER_LOGOS = {\n Kontra: {\n svg: kontraLogo,\n },\n [__('Secure Code Warrior')]: {\n svg: scwLogo,\n },\n SecureFlag: {\n svg: secureflagLogo,\n },\n};\n\n// Use the `url` field from the GraphQL query once this issue is resolved\n// https://gitlab.com/gitlab-org/gitlab/-/issues/356129\nexport const TEMP_PROVIDER_URLS = {\n Kontra: 'https://application.security/',\n [__('Secure Code Warrior')]: 'https://www.securecodewarrior.com/',\n SecureFlag: 'https://www.secureflag.com/',\n};\n\nexport const TAB_VULNERABILITY_MANAGEMENT_INDEX = 1;\n\nexport const TRACK_TOGGLE_TRAINING_PROVIDER_ACTION = 'toggle_security_training_provider';\nexport const TRACK_TOGGLE_TRAINING_PROVIDER_LABEL = 'update_security_training_provider';\nexport const TRACK_CLICK_TRAINING_LINK_ACTION = 'click_security_training_link';\nexport const TRACK_PROVIDER_LEARN_MORE_CLICK_ACTION = 'click_link';\nexport const TRACK_PROVIDER_LEARN_MORE_CLICK_LABEL = 'security_training_provider';\nexport const TRACK_TRAINING_LOADED_ACTION = 'security_training_link_loaded';\nexport const TRACK_PROMOTION_BANNER_CTA_CLICK_ACTION = 'click_button';\nexport const TRACK_PROMOTION_BANNER_CTA_CLICK_LABEL = 'security_training_promotion_cta';\n\nexport const i18n = {\n configurationHistory: s__('SecurityConfiguration|Configuration history'),\n securityTesting: s__('SecurityConfiguration|Security testing'),\n latestPipelineDescription: s__(\n `SecurityConfiguration|The status of the tools only applies to the\n default branch and is based on the %{linkStart}latest pipeline%{linkEnd}.`,\n ),\n description: s__(\n `SecurityConfiguration|Once you've enabled a scan for the default branch,\n any subsequent feature branch you create will include the scan. An enabled\n scanner will not be reflected as such until the pipeline has been\n successfully executed and it has generated valid artifacts.`,\n ),\n securityConfiguration: __('Security configuration'),\n vulnerabilityManagement: s__('SecurityConfiguration|Vulnerability Management'),\n securityTraining: s__('SecurityConfiguration|Security training'),\n securityTrainingDescription: s__(\n 'SecurityConfiguration|Enable security training to help your developers learn how to fix vulnerabilities. Developers can view security training from selected educational providers, relevant to the detected vulnerability. Please note that security training is not accessible in an environment that is offline.',\n ),\n securityTrainingDoc: s__('SecurityConfiguration|Learn more about vulnerability training'),\n};\n","export default \"<svg enable-background=\\\"new 0 0 0 0\\\" viewBox=\\\"0 0 800 780\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"m594.4 737.87c-.75-1.93-1.86-3.7-3.34-5.29-1.48-1.6-3.29-2.86-5.44-3.8-2.15-.93-4.62-1.4-7.41-1.4s-5.26.47-7.41 1.4c-2.14.94-3.96 2.21-5.43 3.8-1.48 1.59-2.59 3.36-3.34 5.29s-1.13 3.91-1.13 5.95v.96c0 1.96.36 3.91 1.1 5.86.73 1.96 1.82 3.74 3.28 5.35s3.27 2.91 5.43 3.89c2.17.98 4.67 1.46 7.5 1.46s5.33-.49 7.5-1.46c2.16-.98 3.98-2.28 5.43-3.89 1.46-1.61 2.55-3.4 3.28-5.35s1.1-3.91 1.1-5.86v-.96c.01-2.04-.37-4.02-1.12-5.95zm-4.01 13.45c-1.15 2.1-2.78 3.77-4.86 5.02-2.09 1.25-4.52 1.89-7.32 1.89-2.79 0-5.24-.63-7.32-1.89-2.09-1.25-3.71-2.93-4.86-5.02s-1.73-4.42-1.73-6.97c0-2.63.58-4.99 1.73-7.09 1.15-2.09 2.77-3.74 4.86-4.96 2.08-1.21 4.52-1.82 7.32-1.82 2.79 0 5.23.61 7.32 1.82 2.08 1.22 3.71 2.87 4.86 4.96 1.15 2.1 1.73 4.46 1.73 7.09 0 2.56-.58 4.88-1.73 6.97z\\\" fill=\\\"#f79200\\\"/><path d=\\\"m584.11 746.03c1.42-1.12 2.12-2.73 2.12-4.84s-.71-3.73-2.12-4.85c-1.42-1.11-3.4-1.67-5.95-1.67h-2.55-2.37-2.12v18.66h4.49v-5.62h2.55c.09 0 .17-.01.25-.01l3.81 5.64h5.1l-4.69-6.45c.54-.25 1.04-.52 1.48-.86zm-8.5-7.6h2.85c1.1 0 1.9.23 2.43.69s.79 1.15.79 2.07-.26 1.6-.79 2.06-1.33.68-2.43.68h-2.85z\\\" fill=\\\"#f79200\\\"/><path d=\\\"m333.8 753.41-17.62 7.9v-88.45s76.18-50.47 93.76-64.21c46.25-36.15 101.39-92.54 101.39-155.86v-22.33l40.76-32.62h-235.91v-83.73h280.18v138.69c0 180.72-251.84 295.81-262.56 300.61zm-17.53-638.54c21.22 2.88 121.7 20.25 195.07 97.32v62.85h85.03v-94.02l-10-11.68c-104.42-122.2-259.7-137.72-266.27-138.32l-3.92-.36v84.23c.03-.01.06-.01.09-.02z\\\" fill=\\\"#ffbe12\\\"/><path d=\\\"m316.18 397.85h-280.18v-216.82l9.99-11.68c104.42-122.21 259.7-137.73 266.25-138.33l3.94-.36v84.23c-21.06 2.97-122.24 20.87-195.17 97.32v74.53l-36.5 27.39h231.66v83.72zm-93.77 210.81c-46.27-36.15-101.4-87.26-101.4-143.31l20.24-28.41h-105.25v28.41c0 171.17 251.84 283.27 262.56 288.07l17.63 7.9v-88.45c-.01 0-76.2-50.47-93.78-64.21z\\\" fill=\\\"#f79200\\\"/></svg>\";","export default \"<?xml version=\\\"1.0\\\" encoding=\\\"utf-8\\\"?>\\n<svg viewBox=\\\"0 0 500 500\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:bx=\\\"https://boxy-svg.com\\\">\\n <defs>\\n <linearGradient id=\\\"paint1_linear_117_388\\\" x1=\\\"8.32922\\\" y1=\\\"0.701083\\\" x2=\\\"25.6103\\\" y2=\\\"8.8381\\\"\\n gradientUnits=\\\"userSpaceOnUse\\\"\\n gradientTransform=\\\"matrix(5.965987, 0, 0, 5.965987, -1.949537, -0.014549)\\\">\\n <stop stop-color=\\\"#005AEC\\\" />\\n <stop offset=\\\"1\\\" stop-color=\\\"#12DFE7\\\" />\\n </linearGradient>\\n <linearGradient id=\\\"paint2_linear_117_388\\\" x1=\\\"3.30485\\\" y1=\\\"11.2131\\\" x2=\\\"20.4972\\\" y2=\\\"19.4227\\\"\\n gradientUnits=\\\"userSpaceOnUse\\\"\\n gradientTransform=\\\"matrix(5.965987, 0, 0, 5.965987, -1.949537, -0.014549)\\\">\\n <stop stop-color=\\\"#005AEC\\\" />\\n <stop offset=\\\"1\\\" stop-color=\\\"#12DFE7\\\" />\\n </linearGradient>\\n </defs>\\n <g style=\\\"\\\" transform=\\\"matrix(3.098345, 0, 0, 3.098345, 46.765705, 8.335629)\\\"\\n bx:origin=\\\"0.503455 0.502894\\\">\\n <path d=\\\"M 65.436 0.003 L 65.436 26.662 L 87.144 12.772 L 65.436 0.003 Z\\\"\\n fill=\\\"url(#paint1_linear_117_388)\\\" style=\\\"\\\" />\\n <path\\n d=\\\"M 108.686 77.337 L 87.143 65.001 L 87.143 38.543 L 65.434 51.815 L 43.562 38.543 L 43.809 64.746 L 22.512 77.592 L 0.393 64.321 L 0.393 116.301 L 65.352 155.095 L 129.901 116.301 L 129.901 64.406 L 108.686 77.337 Z M 65.434 103.2 L 43.562 90.609 L 43.562 114.344 L 22.923 102.945 L 43.562 90.609 L 65.434 77.848 C 65.434 77.848 85.663 90.694 86.156 90.609 C 86.65 90.523 65.434 103.2 65.434 103.2 Z M 86.156 114.344 L 86.156 90.609 L 106.795 102.945 L 86.156 114.344 Z\\\"\\n fill=\\\"url(#paint2_linear_117_388)\\\" style=\\\"\\\" />\\n </g>\\n</svg>\";","import { intersection, isNumber, uniqBy, uniqueId, isEmpty } from 'lodash';\nimport { isValidCron } from 'cron-validator';\nimport { safeDump } from 'js-yaml';\nimport { sprintf, s__ } from '~/locale';\nimport { joinPaths, visitUrl } from '~/lib/utils/url_utility';\nimport createPolicyProjectAsync from 'ee/security_orchestration/graphql/mutations/create_policy_project_async.mutation.graphql';\nimport createPolicy from 'ee/security_orchestration/graphql/mutations/create_policy.mutation.graphql';\nimport getFile from 'ee/security_orchestration/graphql/queries/get_file.query.graphql';\nimport { gqClient } from 'ee/security_orchestration/utils';\nimport createMergeRequestMutation from '~/graphql_shared/mutations/create_merge_request.mutation.graphql';\n\nimport {\n ALLOWED,\n DENIED,\n} from 'ee/security_orchestration/components/policy_editor/scan_result/rule/scan_filters/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport {\n BRANCHES_KEY,\n BRANCH_TYPE_KEY,\n DEFAULT_MR_TITLE,\n PRIMARY_POLICY_KEYS,\n RULE_MODE_SCANNERS,\n SECURITY_POLICY_ACTIONS,\n ALL_SELECTED_LABEL,\n SELECTED_ITEMS_LABEL,\n MULTIPLE_SELECTED_LABEL,\n MULTIPLE_SELECTED_LABEL_SINGLE_OPTION,\n MORE_LABEL,\n} from './constants';\n\n/**\n * Checks if an error exists and throws it if it does\n * @param {Object} payload contains the errors if they exist\n */\nconst checkForErrors = ({ errors, validationErrors }) => {\n if (errors?.length) {\n throw new Error(errors.join('\\n'), { cause: validationErrors });\n }\n};\n\n/**\n * Creates a merge request for the changes to the policy file\n * @param {Object} payload contains the path to the parent project, the branch to merge on the project, and the branch to merge into\n * @returns {Object} contains the id of the merge request and any errors\n */\nconst createMergeRequest = async ({\n projectPath,\n sourceBranch,\n targetBranch,\n title = DEFAULT_MR_TITLE,\n description = '',\n}) => {\n const input = {\n projectPath,\n sourceBranch,\n targetBranch,\n title,\n description,\n };\n\n const {\n data: {\n mergeRequestCreate: {\n mergeRequest: { iid: id },\n errors,\n },\n },\n } = await gqClient.mutate({\n mutation: createMergeRequestMutation,\n variables: { input },\n });\n\n return { id, errors };\n};\n\n/**\n * Creates a new security policy on the security policy project's policy file\n * @param {Object} payload contains the path to the project and the policy yaml value\n * @returns {Object} contains the branch containing the updated policy file and any errors\n */\nconst updatePolicy = async ({\n action = SECURITY_POLICY_ACTIONS.APPEND,\n name,\n namespacePath,\n yamlEditorValue,\n}) => {\n const {\n data: {\n scanExecutionPolicyCommit: { branch, errors, validationErrors },\n },\n } = await gqClient.mutate({\n mutation: createPolicy,\n variables: {\n mode: action,\n name,\n fullPath: namespacePath,\n policyYaml: yamlEditorValue,\n },\n });\n\n return { branch, errors, validationErrors };\n};\n\n/**\n * Updates the assigned security policy project's policy file with the new policy yaml or creates one file if one does not exist\n * @param {Object} payload contains the currently assigned security policy project (if one exists), the path to the project, and the policy yaml value\n * @returns {Object} contains the currently assigned security policy project and the created merge request\n */\nexport const modifyPolicy = async ({\n action,\n assignedPolicyProject,\n name,\n namespacePath,\n yamlEditorValue,\n extraMergeRequestInput,\n}) => {\n const newPolicyCommitBranch = await updatePolicy({\n action,\n name,\n namespacePath,\n yamlEditorValue,\n });\n const { title, description } = extraMergeRequestInput ?? {};\n\n checkForErrors(newPolicyCommitBranch);\n\n const mergeRequest = await createMergeRequest({\n projectPath: assignedPolicyProject.fullPath,\n sourceBranch: newPolicyCommitBranch.branch,\n targetBranch: assignedPolicyProject.branch,\n title,\n description,\n });\n\n checkForErrors(mergeRequest);\n\n return mergeRequest;\n};\n\nexport const redirectToMergeRequest = ({ mergeRequestId, assignedPolicyProjectFullPath }) => {\n visitUrl(\n joinPaths(\n gon.relative_url_root || '/',\n assignedPolicyProjectFullPath,\n '/-/merge_requests',\n mergeRequestId,\n ),\n );\n};\n\nexport const goToPolicyMR = async ({\n action,\n assignedPolicyProject,\n name,\n namespacePath,\n yamlEditorValue,\n extraMergeRequestInput,\n}) => {\n const mergeRequest = await modifyPolicy({\n action,\n assignedPolicyProject,\n name,\n namespacePath,\n yamlEditorValue,\n extraMergeRequestInput,\n });\n\n redirectToMergeRequest({\n mergeRequestId: mergeRequest.id,\n assignedPolicyProjectFullPath: assignedPolicyProject.fullPath,\n });\n};\n\n/**\n * Creates a new security policy project via background worker\n * @param {String} fullPath\n */\nexport const assignSecurityPolicyProjectAsync = async (fullPath) => {\n const {\n data: {\n securityPolicyProjectCreateAsync: { errors },\n },\n } = await gqClient.mutate({\n mutation: createPolicyProjectAsync,\n variables: {\n fullPath,\n },\n });\n\n checkForErrors({ errors });\n};\n\n/**\n * Converts scanner strings to title case\n * @param {Array} scanners (e.g. 'container_scanning', `dast`, etcetera)\n * @returns {Array} (e.g. 'Container Scanning', `Dast`, etcetera)\n */\nexport const createHumanizedScanners = (scanners = []) =>\n scanners.map((scanner) => {\n return RULE_MODE_SCANNERS[scanner] || scanner;\n });\n\n/**\n * Rule can not have both keys simultaneously\n * @param rule\n */\nexport const ruleHasConflictingKeys = (rule) => {\n return BRANCH_TYPE_KEY in rule && BRANCHES_KEY in rule;\n};\n\n/**\n * Rule can not have both keys simultaneously\n * @param rules\n */\nexport const hasConflictingKeys = (rules = []) => {\n return rules.some((rule) => BRANCH_TYPE_KEY in rule && BRANCHES_KEY in rule);\n};\n\n/**\n * Check if object has invalid keys in structure\n * @param object\n * @param allowedValues list of allowed values\n * @returns {boolean} true if object is invalid\n */\nexport const hasInvalidKey = (object, allowedValues) => {\n return !Object.keys(object).every((item) => allowedValues.includes(item));\n};\n\n/**\n * Checks for parameters unsupported by the policy \"Rule Mode\"\n * @param {Object} policy policy converted from YAML\n * @param {Array} primaryKeys list of primary policy keys\n * @param {Array} rulesKeys list of allowed keys for policy rule\n * @param {Array} actionsKeys list of allowed keys for policy rule\n * @returns {Boolean} whether the YAML is valid to be parsed into \"Rule Mode\"\n */\nexport const isValidPolicy = ({\n policy = {},\n primaryKeys = PRIMARY_POLICY_KEYS,\n rulesKeys = [],\n actionsKeys = [],\n}) => {\n return !(\n hasInvalidKey(policy, primaryKeys) ||\n policy.rules?.some((rule) => hasInvalidKey(rule, [...rulesKeys, 'id'])) ||\n policy.rules?.some(ruleHasConflictingKeys) ||\n policy.actions?.some((action) => hasInvalidKey(action, [...actionsKeys, 'id']))\n );\n};\n\n/**\n * Replaces whitespace and non-sluggish characters with a given separator\n * @param {String} str - The string to slugify\n * @param {String=} separator - The separator used to separate words (defaults to \"-\")\n * @returns {String}\n */\nexport const slugify = (str, separator = '-') => {\n const slug = str\n .trim()\n .replace(/[^a-zA-Z0-9_.*-/]+/g, separator)\n // Remove any duplicate separators or separator prefixes/suffixes\n .split(separator)\n .filter(Boolean)\n .join(separator);\n\n return slug === separator ? '' : slug;\n};\n\n/**\n * Replaces whitespace and non-sluggish characters with a given separator and returns array of values\n * @param {String} branches - comma-separated branches\n * @param {String=} separator - The separator used to separate words (defaults to \"-\")\n * @returns {String[]}\n */\nexport const slugifyToArray = (branches, separator = '-') =>\n branches\n .split(',')\n .map((branch) => slugify(branch, separator))\n .filter(Boolean);\n\n/**\n * Validate cadence cron string if it exists in rule\n * @param rules policy rules\n * @returns {Boolean}\n */\nexport const hasInvalidCron = (rules = []) => {\n const hasInvalidCronString = (cronString) => (cronString ? !isValidCron(cronString) : false);\n\n return rules.some((rule) => hasInvalidCronString(rule?.cadence));\n};\n\nexport const enforceIntValue = (value) => parseInt(value || '0', 10);\n\nconst NO_ITEM_SELECTED = 0;\nconst ONE_ITEM_SELECTED = 1;\n\n/**\n * Renders either itemA + n items or ItemA, itemB + n pattern\n * @param useSingleOption flag difference what pattern to choose\n * @param commonItems common items between total items and selected items\n * @param items total items from selection\n * @returns {*}\n */\nexport const renderMultiselectLabel = ({\n useSingleOption = false,\n commonItems = [],\n items = {},\n} = {}) => {\n if (commonItems.length === 0) return '';\n\n const TEXT_TEMPLATE = useSingleOption\n ? MULTIPLE_SELECTED_LABEL_SINGLE_OPTION\n : MULTIPLE_SELECTED_LABEL;\n const NUMBER_TO_EXTRACT = useSingleOption ? 1 : 2;\n\n const moreLabel =\n commonItems.length > NUMBER_TO_EXTRACT\n ? sprintf(MORE_LABEL, { numberOfAdditionalLabels: commonItems.length - NUMBER_TO_EXTRACT })\n : undefined;\n\n return sprintf(TEXT_TEMPLATE, {\n firstLabel: items[commonItems[0]],\n ...(useSingleOption ? {} : { secondLabel: items[commonItems[1]] }),\n moreLabel,\n }).trim();\n};\n\n/**\n * This method returns text based on selected items\n * For single selected option it is (itemA +n selected items)\n * For multiple selected options it is (itemA, itemB +n selected items)\n * When all options selected, text would indicate that all items are selected\n * @param selected items\n * @param items items used to render list\n * @param itemTypeName\n * @param useAllSelected all selected option can be disabled\n * @param useSingleOption use format `itemA +n` (Default is `itemA, itemB +n`)\n * @returns {*}\n */\nexport const renderMultiSelectText = ({\n selected,\n items,\n itemTypeName,\n useAllSelected = true,\n useSingleOption = false,\n}) => {\n const itemsKeys = Object.keys(items);\n const itemsKeysLength = itemsKeys.length;\n\n const defaultPlaceholder = sprintf(\n SELECTED_ITEMS_LABEL,\n {\n itemTypeName,\n },\n false,\n );\n\n /**\n * Another edge case\n * number of selected items and items are equal\n * but none of them match\n * without this check it would fall through to\n * ALL_SELECTED_LABEL\n * @type {string[]}\n */\n const commonItems = intersection(itemsKeys, selected);\n const commonItemsLength = commonItems.length;\n /**\n * Edge case for loading states when initial items are empty\n */\n if (itemsKeysLength === 0 || commonItemsLength === 0) {\n return defaultPlaceholder;\n }\n\n const oneItemLabel = items[commonItems[0]] || defaultPlaceholder;\n const multiSelectLabel = renderMultiselectLabel({ useSingleOption, items, commonItems });\n\n if (commonItemsLength === itemsKeysLength && !useAllSelected) {\n return itemsKeysLength === 1 ? oneItemLabel : multiSelectLabel;\n }\n\n switch (commonItemsLength) {\n case itemsKeysLength:\n return sprintf(ALL_SELECTED_LABEL, { itemTypeName }, false);\n case NO_ITEM_SELECTED:\n return defaultPlaceholder;\n case ONE_ITEM_SELECTED:\n return oneItemLabel;\n default:\n return multiSelectLabel;\n }\n};\n\n/**\n * Create project object based on provided properties\n * @param fullPath\n * @returns {{}}\n */\nexport const createProjectWithMinimumValues = ({ fullPath }) => ({\n ...(fullPath && { fullPath }),\n});\n\n/**\n * Parse configuration file path and create state of UI component\n * @param configuration\n * @returns {{project: {}, showLinkedFile: boolean}}\n */\nexport const parseCustomFileConfiguration = (configuration = {}) => {\n const projectPath = configuration?.project;\n const hasFilePath = Boolean(configuration?.file);\n const hasRef = Boolean(configuration?.ref);\n const hasProjectPath = Boolean(projectPath);\n const project = hasProjectPath ? createProjectWithMinimumValues({ fullPath: projectPath }) : null;\n\n return {\n showLinkedFile: hasFilePath || hasRef || hasProjectPath,\n project,\n };\n};\n\n/**\n * Convert branch exceptions from yaml editor\n * to list box format\n * @param item\n * @param index\n * @returns {{fullPath: undefined, name: string, value: string}|{fullPath: *, name, value: string}}\n */\nexport const mapExceptionsListBoxItem = (item, index) => {\n if (!item) return undefined;\n\n if (typeof item === 'string') {\n return {\n value: `${item}_${index}`,\n name: item,\n fullPath: '',\n };\n }\n\n const fullPath = item.fullPath || item.full_path || '';\n\n return {\n value: `${item.name}@${fullPath}`,\n name: item.name,\n fullPath,\n };\n};\n\n/**\n * convert branch and full_path to branch\n * full format branch-name@fullPath\n * @param items\n * @param itemKey select property of an objects that is applied before @\n * @returns {*}\n */\nexport const mapObjectsToString = (items = [], itemKey = 'name') => {\n return items\n .filter(Boolean)\n .map((item) => {\n const { fullPath = '', full_path = '' } = item;\n const prependValue = item[itemKey] || '';\n\n // eslint-disable-next-line camelcase\n const path = fullPath || full_path;\n\n return `${prependValue}${path ? '@' : ''}${path}`;\n })\n .filter(Boolean)\n .join(', ');\n};\n\n/**\n * Validate branch full format branch-name@fullPath\n * @param value string input\n * @returns {boolean}\n */\nexport const validateBranchProjectFormat = (value) => {\n const branchProjectRegexp = /\\S+@\\S/;\n return branchProjectRegexp.test(value);\n};\n\n/**\n * Check if branches have duplicates by value\n * @param branches\n * @returns {boolean}\n */\nexport const hasDuplicates = (branches = []) => {\n if (!branches) return false;\n\n return uniqBy(branches, 'value').length !== branches?.length;\n};\n\n/**\n * Extract branches with wrong format\n * @param items\n * @param key\n * @param mapKey\n * @returns {*[]}\n */\nexport const findItemsWithErrors = (items = [], key = 'value', mapKey = 'name') => {\n if (!items) return [];\n\n return items\n ?.filter((item) => !validateBranchProjectFormat(item[key]))\n ?.map((item) => item[mapKey]);\n};\n\n/**\n * Map selected branches to exception\n * @param branches\n * @returns {*[]}\n */\nexport const mapBranchesToExceptions = (branches = []) => {\n if (!branches) return [];\n\n return branches.map(mapExceptionsListBoxItem).filter(({ name }) => Boolean(name));\n};\n\nexport const addIdsToPolicy = (policy) => {\n const updatedPolicy = { ...policy };\n\n if (updatedPolicy.actions) {\n updatedPolicy.actions = policy.actions?.map((action) => ({\n ...action,\n id: uniqueId('action_'),\n }));\n }\n\n if (updatedPolicy.rules) {\n updatedPolicy.rules = policy.rules?.map((action) => ({ ...action, id: uniqueId('rule_') }));\n }\n\n return updatedPolicy;\n};\n\nexport const removeIdsFromPolicy = (policy) => {\n const updatedPolicy = { ...policy };\n\n if (updatedPolicy.actions) {\n updatedPolicy.actions = policy.actions?.map(({ id, ...action }) => ({ ...action }));\n }\n\n if (updatedPolicy.rules) {\n updatedPolicy.rules = policy.rules?.map(({ id, ...rule }) => ({ ...rule }));\n }\n\n return updatedPolicy;\n};\n\nconst enabledRadioButtonTooltipText = s__(\n \"SecurityOrchestration|You've reached the maximum limit of %{max} %{type} policies allowed. Policies are disabled when added.\",\n);\n\nexport const getPolicyLimitDetails = ({\n type,\n policyLimitReached = false,\n policyLimit = 5,\n initialValue,\n}) => {\n const shouldBeDisabled = policyLimitReached && !initialValue;\n const sprintfParameters = { type, max: policyLimit };\n\n return {\n radioButton: {\n disabled: shouldBeDisabled,\n text: sprintf(enabledRadioButtonTooltipText, sprintfParameters),\n },\n };\n};\n\nconst isEqualOrUndefined = (value1, value2) => !value1 || value1 === value2;\n\n/**\n * Determine if one of the errors is from the given source\n * @param {Array} errorSources array of [primaryKey, index, location]\n * @param {String} primaryKey a primary key in the policy\n * @param {Number} index the index of the action/rule/condition\n * @param {String} location the sub-location inside the primary key\n * @returns {Boolean}\n */\nexport const isCauseOfError = ({ errorSources, primaryKey, index = 0, location }) => {\n return errorSources.some(([sourcePrimaryKey, sourceIndex, sourceLocation]) => {\n return (\n isEqualOrUndefined(primaryKey, sourcePrimaryKey) &&\n isEqualOrUndefined(index, Number(sourceIndex)) &&\n isEqualOrUndefined(location, sourceLocation)\n );\n });\n};\n\n/**\n * Parses error from the backend and returns an array of [primaryKey, index, location]\n * @param {Object} error https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Error with\n * message of form `\"property '/approval_policy/5/rules/0/type' is not one of: [\\\"scan_finding\\\", \\\"license_finding\\\", \\\"any_merge_request\\\"]\"`\n * @returns {Array} e.g. [['rules', 0, 'type']]\n */\nexport const parseError = (error) => {\n if (!error) return [];\n\n try {\n const [, ...messages] = error.message.split('\\n');\n return messages.map((e) => e.split(`'`)[1].split(`/`).splice(3, 3));\n } catch {\n return [];\n }\n};\n\n/**\n * Check if file exist on particular branch in particular project\n * @param fullPath full path to a project\n * @param ref branch name\n * @param filePath full file name\n * @returns {Promise<boolean>}\n */\nexport const doesFileExist = async ({ fullPath = {}, ref = null, filePath = '' } = {}) => {\n try {\n const { data } = await gqClient.query({\n query: getFile,\n variables: {\n fullPath,\n filePath,\n ref,\n },\n });\n\n return data?.project?.repository?.blobs?.nodes?.length > 0;\n } catch {\n return false;\n }\n};\n\n/**\n * Generates custom merge request title and description if compliance framework params present\n * @param params URL params\n * @param context context of generation request, including top level group path\n *\n * @returns {Object | null}\n */\nexport const getMergeRequestConfig = (params = {}, context = {}) => {\n const {\n compliance_framework_name: frameworkName,\n compliance_framework_id: frameworkIdString,\n path,\n } = params;\n const { namespacePath } = context;\n\n if (!frameworkName || !frameworkIdString || !path || !namespacePath) {\n return null;\n }\n const frameworkLink = joinPaths(\n gon.gitlab_url,\n 'groups',\n namespacePath,\n '/-/security/compliance_dashboard/frameworks',\n frameworkIdString,\n );\n\n const title = s__(\n 'SecurityOrchestration|Compliance pipeline migration to pipeline execution policy',\n );\n\n const migrationInfo = sprintf(\n s__(\n 'SecurityOrchestration|This merge request migrates compliance pipeline `%{path}` to a pipeline execution policy scoped to framework [%{framework}](%{link}).',\n ),\n {\n path,\n framework: frameworkName,\n link: frameworkLink,\n },\n );\n\n const continueToOverwriteWarning = s__(\n 'SecurityOrchestration|The compliance pipeline will continue to override the new pipeline execution policy until it is removed from the compliance framework configuration.',\n );\n\n const backLinkMessage = sprintf(\n s__(\n 'SecurityOrchestration|After this merge request is merged, go to [%{framework}](%{link}) and remove the compliance pipeline so that the new pipeline execution policy can take precedence.',\n ),\n {\n framework: frameworkName,\n link: frameworkLink,\n },\n );\n\n return {\n title,\n description: [migrationInfo, continueToOverwriteWarning, backLinkMessage].join('\\n\\n'),\n };\n};\n\nexport const policyBodyToYaml = (policy) => {\n return safeDump(removeIdsFromPolicy(policy));\n};\n\n/**\n * Return yaml representation of a policy.\n * @param policy\n * @param type\n * @returns {string}\n */\nexport const policyToYaml = (policy, type) => {\n const { securityPoliciesNewYamlFormat } = window.gon?.features || {};\n\n if (securityPoliciesNewYamlFormat) {\n const policyWithoutIds = removeIdsFromPolicy(policy);\n const hasLegacyTypeRootProperty = 'type' in policyWithoutIds;\n\n if (hasLegacyTypeRootProperty) {\n delete policyWithoutIds.type;\n }\n\n const payload = { [type]: [policyWithoutIds] };\n return safeDump(payload);\n }\n\n return policyBodyToYaml(policy);\n};\n\n/**\n * Parse licenses from rule\n * @param rule\n * @returns {{licenses: (*|*[]), isDenied: boolean}}\n */\nexport const parseAllowDenyLicenseList = (rule = {}) => {\n const { licenses = {} } = rule || {};\n const isDenied = DENIED in licenses;\n const KEY = isDenied ? DENIED : ALLOWED;\n\n const resultingLicenses = (licenses?.[KEY] || []).map((license) => ({\n license: { value: license.name, text: license.name },\n exceptions: license?.packages?.excluding?.purls || [],\n }));\n\n return {\n licenses: resultingLicenses,\n isDenied,\n };\n};\n\n/**\n * map licenses format from component to yaml\n * @param licenses\n * @returns {{name: *, packages: {excluding: {purls: []}}}[]}\n */\nexport const mapComponentLicenseFormatToYaml = (licenses = []) =>\n (licenses || []).map(({ license = {}, exceptions = [] }) => ({\n name: license.value,\n packages: { excluding: { purls: exceptions } },\n }));\n\n/**\n * find intersection in two collections or return original item\n * @param collectionOne\n * @param collectionTwo\n * @param mapperFn\n * @param type\n * @returns {(*)[]|*[]}\n */\nexport const findItemsIntersection = ({\n collectionOne = [],\n collectionTwo = [],\n mapperFn,\n type,\n}) => {\n if (!mapperFn) {\n return [];\n }\n\n return collectionOne\n .map((approver) => {\n if (isNumber(approver)) {\n const mappedId = type ? convertToGraphQLId(type, approver) : approver;\n\n const item = collectionTwo.find(({ id }) => id === mappedId) || {};\n return mapperFn(item);\n }\n\n return mapperFn(approver);\n })\n .filter((item) => !isEmpty(item));\n};\n\n/**\n * Map yaml format for actions into\n * user group role component format\n * @param actions\n * @returns {{}[]|*[]}\n */\nexport const mapYamlApproversActionsFormatToEditorFormat = (actions = []) => {\n if (!actions) return [];\n\n return actions\n .map(\n ({\n group_approvers_ids: groupApproversIds,\n user_approvers_ids: userApproversIds,\n role_approvers: roleApprovers,\n user_approvers: userApprovers,\n group_approvers: groupApprovers,\n }) => {\n const result = {};\n\n if (groupApproversIds || groupApprovers) {\n result.group = groupApproversIds || groupApprovers;\n }\n\n if (userApproversIds || userApprovers) {\n result.user = userApproversIds || userApprovers;\n }\n\n if (roleApprovers) {\n result.role = roleApprovers;\n }\n\n return result;\n },\n )\n .filter((item) => !isEmpty(item));\n};\n\n/**\n * split string by comma and white space\n * @param source\n * @returns {*|*[]}\n */\nexport const splitItemsByCommaOrSpace = (source) => source?.split(/[\\n ,]+/).filter(Boolean) || [];\n\n/**\n * parse string based on @ and find parsed items with failed validation\n * @param items array of strings in name@path format\n * @returns {{parsedExceptions: {file: string, fullPath: string, value: *}[], parsedWithErrorsExceptions: *[]}}\n */\nexport const parseExceptionsStringToItems = (items = []) => {\n const parsedExceptions = (items || []).map((item) => {\n const [file = '', fullPath = ''] = item.split('@');\n\n return {\n file,\n fullPath,\n value: item,\n };\n });\n\n const parsedWithErrorsExceptions = findItemsWithErrors(parsedExceptions, 'value', 'file');\n\n return {\n parsedExceptions,\n parsedWithErrorsExceptions,\n };\n};\n","import $ from 'jquery';\nimport { difference, intersection, union } from 'lodash';\nimport { createAlert } from '~/alert';\nimport axios from '~/lib/utils/axios_utils';\nimport { __ } from '~/locale';\n\nexport default {\n init({ form, issues, prefixId } = {}) {\n this.prefixId = prefixId || 'issue_';\n this.form = form || this.getElement('.bulk-update');\n this.$labelDropdown = this.form.find('.js-label-select');\n this.issues = issues || this.getElement('.issues-list .issue');\n this.willUpdateLabels = false;\n this.bindEvents();\n },\n\n bindEvents() {\n // eslint-disable-next-line @gitlab/no-global-event-off\n return this.form.off('submit').on('submit', this.onFormSubmit.bind(this));\n },\n\n onFormSubmit(e) {\n e.preventDefault();\n return this.submit();\n },\n\n submit() {\n axios[this.form.attr('method')](this.form.attr('action'), this.getFormDataAsObject())\n .then(() => window.location.reload())\n .catch(() => this.onFormSubmitFailure());\n },\n\n onFormSubmitFailure() {\n this.form.find('[type=\"submit\"]').enable();\n return createAlert({\n message: __('Issue update failed'),\n });\n },\n\n /**\n * Simple form serialization, it will return just what we need\n * Returns key/value pairs from form data\n */\n\n getFormDataAsObject() {\n const assigneeIds = this.form.find('input[name=\"update[assignee_ids][]\"]').val();\n const formData = {\n update: {\n state_event: this.form.find('input[name=\"update[state_event]\"]').val(),\n milestone_id: this.form.find('input[name=\"update[milestone_id]\"]').val(),\n issuable_ids: this.form.find('input[name=\"update[issuable_ids]\"]').val(),\n subscription_event: this.form.find('input[name=\"update[subscription_event]\"]').val(),\n health_status: this.form.find('input[name=\"update[health_status]\"]').val(),\n epic_id: this.form.find('input[name=\"update[epic_id]\"]').val(),\n sprint_id: this.form.find('input[name=\"update[iteration_id]\"]').val(),\n add_label_ids: [],\n remove_label_ids: [],\n confidential: this.form.find('input[name=\"update[confidentiality]\"]').val(),\n },\n };\n if (assigneeIds) {\n formData.update.assignee_ids = [assigneeIds];\n }\n if (this.willUpdateLabels) {\n formData.update.add_label_ids = this.$labelDropdown.data('user-checked');\n formData.update.remove_label_ids = this.$labelDropdown.data('user-unchecked');\n }\n return formData;\n },\n\n setOriginalDropdownData() {\n const $labelSelect = $('.bulk-update .js-label-select');\n const userCheckedIds = $labelSelect.data('user-checked') || [];\n const userUncheckedIds = $labelSelect.data('user-unchecked') || [];\n\n // Common labels plus user checked labels minus user unchecked labels\n const checkedIdsToShow = difference(\n union(this.getOriginalCommonIds(), userCheckedIds),\n userUncheckedIds,\n );\n\n // Indeterminate labels minus user checked labels minus user unchecked labels\n const indeterminateIdsToShow = difference(\n this.getOriginalIndeterminateIds(),\n userCheckedIds,\n userUncheckedIds,\n );\n\n $labelSelect.data('marked', checkedIdsToShow);\n $labelSelect.data('indeterminate', indeterminateIdsToShow);\n },\n\n // From issuable's initial bulk selection\n getOriginalCommonIds() {\n const labelIds = [];\n this.getElement('.issuable-list input[type=\"checkbox\"]:checked').each((i, el) => {\n labelIds.push(this.getElement(`#${this.prefixId}${el.dataset.id}`).data('labels'));\n });\n return intersection.apply(this, labelIds);\n },\n\n // From issuable's initial bulk selection\n getOriginalIndeterminateIds() {\n const uniqueIds = [];\n const labelIds = [];\n let issuableLabels = [];\n\n // Collect unique label IDs for all checked issues\n this.getElement('.issuable-list input[type=\"checkbox\"]:checked').each((i, el) => {\n issuableLabels = this.getElement(`#${this.prefixId}${el.dataset.id}`).data('labels');\n issuableLabels.forEach((labelId) => {\n // Store unique IDs\n if (uniqueIds.indexOf(labelId) === -1) {\n uniqueIds.push(labelId);\n }\n });\n // Store array of IDs per issuable\n labelIds.push(issuableLabels);\n });\n // Add uniqueIds to add it as argument for _.intersection\n labelIds.unshift(uniqueIds);\n // Return IDs that are present but not in all selected issuables\n return uniqueIds.filter((x) => !intersection.apply(this, labelIds).includes(x));\n },\n\n getElement(selector) {\n this.scopeEl = this.scopeEl || $('.content');\n return this.scopeEl.find(selector);\n },\n};\n","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nvar YAML_FLOAT_PATTERN = new RegExp(\n // 2.5e4, 2.5 and integers\n '^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' +\n // .2e4, .2\n // special case, seems not from spec\n '|\\\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' +\n // 20:59\n '|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\\\.[0-9_]*' +\n // .inf\n '|[-+]?\\\\.(?:inf|Inf|INF)' +\n // .nan\n '|\\\\.(?:nan|NaN|NAN))$');\n\nfunction resolveYamlFloat(data) {\n if (data === null) return false;\n\n if (!YAML_FLOAT_PATTERN.test(data) ||\n // Quick hack to not allow integers end with `_`\n // Probably should update regexp & check speed\n data[data.length - 1] === '_') {\n return false;\n }\n\n return true;\n}\n\nfunction constructYamlFloat(data) {\n var value, sign, base, digits;\n\n value = data.replace(/_/g, '').toLowerCase();\n sign = value[0] === '-' ? -1 : 1;\n digits = [];\n\n if ('+-'.indexOf(value[0]) >= 0) {\n value = value.slice(1);\n }\n\n if (value === '.inf') {\n return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY;\n\n } else if (value === '.nan') {\n return NaN;\n\n } else if (value.indexOf(':') >= 0) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseFloat(v, 10));\n });\n\n value = 0.0;\n base = 1;\n\n digits.forEach(function (d) {\n value += d * base;\n base *= 60;\n });\n\n return sign * value;\n\n }\n return sign * parseFloat(value, 10);\n}\n\n\nvar SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/;\n\nfunction representYamlFloat(object, style) {\n var res;\n\n if (isNaN(object)) {\n switch (style) {\n case 'lowercase': return '.nan';\n case 'uppercase': return '.NAN';\n case 'camelcase': return '.NaN';\n }\n } else if (Number.POSITIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '.inf';\n case 'uppercase': return '.INF';\n case 'camelcase': return '.Inf';\n }\n } else if (Number.NEGATIVE_INFINITY === object) {\n switch (style) {\n case 'lowercase': return '-.inf';\n case 'uppercase': return '-.INF';\n case 'camelcase': return '-.Inf';\n }\n } else if (common.isNegativeZero(object)) {\n return '-0.0';\n }\n\n res = object.toString(10);\n\n // JS stringifier can build scientific format without dots: 5e-100,\n // while YAML requres dot: 5.e-100. Fix it with simple hack\n\n return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res;\n}\n\nfunction isFloat(object) {\n return (Object.prototype.toString.call(object) === '[object Number]') &&\n (object % 1 !== 0 || common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:float', {\n kind: 'scalar',\n resolve: resolveYamlFloat,\n construct: constructYamlFloat,\n predicate: isFloat,\n represent: representYamlFloat,\n defaultStyle: 'lowercase'\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isIssuable)?_c('li',{staticClass:\"gl-new-dropdown-item\"},[_c('button',{staticClass:\"gl-new-dropdown-item-content\",attrs:{\"type\":\"button\",\"data-testid\":\"issuable-lock\"},on:{\"click\":_vm.toggleLocked}},[_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[(_vm.isLoading)?[_c('gl-loading-icon',{attrs:{\"inline\":\"\",\"size\":\"sm\"}}),_vm._v(\" \"+_vm._s(_vm.lockToggleInProgressText)+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.lockToggleText)+\"\\n \")]],2)])]):_c('gl-disclosure-dropdown-item',[_c('button',{staticClass:\"gl-new-dropdown-item-content\",attrs:{\"type\":\"button\",\"data-testid\":\"issuable-lock\"},on:{\"click\":_vm.toggleLocked}},[_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[(_vm.isLoading)?[_c('gl-loading-icon',{attrs:{\"inline\":\"\",\"size\":\"sm\"}}),_vm._v(\" \"+_vm._s(_vm.lockToggleInProgressText)+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.lockToggleText)+\"\\n \")]],2)])])\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!./issuable_lock_form.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!./issuable_lock_form.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlLoadingIcon,\n GlDisclosureDropdownItem,\n GlTooltipDirective,\n GlOutsideDirective as Outside,\n} from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions } from 'vuex';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\nimport { createAlert } from '~/alert';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport eventHub from '../../event_hub';\n\nexport default {\n locked: {\n icon: 'lock',\n class: 'value',\n displayText: __('Locked'),\n },\n unlocked: {\n class: ['no-value hide-collapsed'],\n icon: 'lock-open',\n displayText: __('Unlocked'),\n },\n components: {\n GlLoadingIcon,\n GlDisclosureDropdownItem,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n Outside,\n },\n inject: ['fullPath'],\n props: {\n isEditable: {\n required: true,\n type: Boolean,\n },\n },\n i18n: {\n issue: __('issue'),\n issueCapitalized: __('Issue'),\n mergeRequest: __('merge request'),\n mergeRequestCapitalized: __('Merge request'),\n lockingMergeRequest: __('Locking discussion'),\n unlockingMergeRequest: __('Unlocking discussion'),\n lockMergeRequest: __('Lock discussion'),\n unlockMergeRequest: __('Unlock discussion'),\n lockedMessage: __('Discussion locked.'),\n unlockedMessage: __('Discussion unlocked.'),\n },\n data() {\n return {\n isLoading: false,\n isLockDialogOpen: false,\n };\n },\n computed: {\n ...mapGetters(['getNoteableData']),\n isIssuable() {\n return this.getNoteableData.targetType === TYPE_ISSUE;\n },\n issuableDisplayName() {\n return this.isIssuable ? this.$options.i18n.issue : this.$options.i18n.mergeRequest;\n },\n issuableDisplayNameCapitalized() {\n return this.isIssuable\n ? this.$options.i18n.issueCapitalized\n : this.$options.i18n.mergeRequestCapitalized;\n },\n isLocked() {\n return this.getNoteableData.discussion_locked;\n },\n lockStatus() {\n return this.isLocked ? this.$options.locked : this.$options.unlocked;\n },\n lockToggleInProgressText() {\n return this.isLocked ? this.unlockingMergeRequestText : this.lockingMergeRequestText;\n },\n lockToggleText() {\n return this.isLocked ? this.unlockMergeRequestText : this.lockMergeRequestText;\n },\n lockingMergeRequestText() {\n return sprintf(this.$options.i18n.lockingMergeRequest, {\n issuableDisplayName: this.issuableDisplayName,\n });\n },\n unlockingMergeRequestText() {\n return sprintf(this.$options.i18n.unlockingMergeRequest, {\n issuableDisplayName: this.issuableDisplayName,\n });\n },\n lockMergeRequestText() {\n return sprintf(this.$options.i18n.lockMergeRequest, {\n issuableDisplayName: this.issuableDisplayName,\n });\n },\n unlockMergeRequestText() {\n return sprintf(this.$options.i18n.unlockMergeRequest, {\n issuableDisplayName: this.issuableDisplayName,\n });\n },\n lockedMessageText() {\n return sprintf(this.$options.i18n.lockedMessage, {\n issuableDisplayName: this.issuableDisplayNameCapitalized,\n });\n },\n unlockedMessageText() {\n return sprintf(this.$options.i18n.unlockedMessage, {\n issuableDisplayName: this.issuableDisplayNameCapitalized,\n });\n },\n },\n\n created() {\n eventHub.$on('closeLockForm', this.toggleForm);\n },\n\n beforeDestroy() {\n eventHub.$off('closeLockForm', this.toggleForm);\n },\n\n methods: {\n ...mapActions(['updateLockedAttribute']),\n toggleForm() {\n if (this.isEditable) {\n this.isLockDialogOpen = !this.isLockDialogOpen;\n }\n },\n toggleLocked() {\n this.isLoading = true;\n\n this.updateLockedAttribute({\n locked: !this.isLocked,\n fullPath: this.fullPath,\n })\n .then(() => {\n toast(this.isLocked ? this.lockedMessageText : this.unlockedMessageText);\n })\n .catch(() => {\n const alertMessage = __(\n 'Something went wrong trying to change the locked state of the discussion',\n );\n createAlert({\n message: sprintf(alertMessage, { issuableDisplayName: this.issuableDisplayName }),\n });\n })\n .finally(() => {\n this.isLoading = false;\n });\n },\n closeForm() {\n this.isLockDialogOpen = false;\n },\n },\n};\n</script>\n\n<template>\n <li v-if=\"isIssuable\" class=\"gl-new-dropdown-item\">\n <button\n type=\"button\"\n class=\"gl-new-dropdown-item-content\"\n data-testid=\"issuable-lock\"\n @click=\"toggleLocked\"\n >\n <span class=\"gl-new-dropdown-item-text-wrapper\">\n <template v-if=\"isLoading\">\n <gl-loading-icon inline size=\"sm\" /> {{ lockToggleInProgressText }}\n </template>\n <template v-else>\n {{ lockToggleText }}\n </template>\n </span>\n </button>\n </li>\n <gl-disclosure-dropdown-item v-else>\n <button\n type=\"button\"\n class=\"gl-new-dropdown-item-content\"\n data-testid=\"issuable-lock\"\n @click=\"toggleLocked\"\n >\n <span class=\"gl-new-dropdown-item-text-wrapper\">\n <template v-if=\"isLoading\">\n <gl-loading-icon inline size=\"sm\" /> {{ lockToggleInProgressText }}\n </template>\n <template v-else>\n {{ lockToggleText }}\n </template>\n </span>\n </button>\n </gl-disclosure-dropdown-item>\n</template>\n","import { render, staticRenderFns } from \"./issuable_lock_form.vue?vue&type=template&id=3aebf866\"\nimport script from \"./issuable_lock_form.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_lock_form.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const stateToComponentMap = {\n merged: 'mr-widget-merged',\n closed: 'mr-widget-closed',\n merging: 'mr-widget-merging',\n missingBranch: 'mr-widget-missing-branch',\n readyToMerge: 'mr-widget-ready-to-merge',\n nothingToMerge: 'mr-widget-nothing-to-merge',\n archived: 'mr-widget-archived',\n checking: 'mr-widget-checking',\n preparing: 'mr-widget-preparing',\n pipelineFailed: 'mr-widget-pipeline-failed',\n failedToMerge: 'mr-widget-failed-to-merge',\n shaMismatch: 'sha-mismatch',\n mergeChecksFailed: 'mergeChecksFailed',\n};\n\nexport const stateKey = {\n archived: 'archived',\n missingBranch: 'missingBranch',\n nothingToMerge: 'nothingToMerge',\n preparing: 'preparing',\n checking: 'checking',\n pipelineFailed: 'pipelineFailed',\n shaMismatch: 'shaMismatch',\n readyToMerge: 'readyToMerge',\n merging: 'merging',\n merged: 'merged',\n mergeChecksFailed: 'mergeChecksFailed',\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"image-diff-overlay gl-absolute gl-h-full gl-w-full\"},[(_vm.canComment)?_c('button',{staticClass:\"image-diff-overlay-add-comment js-add-image-diff-note-button gl-absolute gl-h-full gl-w-full gl-border-0 gl-bg-transparent\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){return _vm.clickedImage($event.offsetX, $event.offsetY)}}},[_c('span',{staticClass:\"sr-only\"},[_vm._v(\" \"+_vm._s(_vm.__('Add image comment'))+\" \")])]):_vm._e(),_vm._v(\" \"),_vm._l((_vm.allDiscussions),function(discussion,index){return _c('design-note-pin',{key:discussion.id,staticClass:\"js-image-badge\",class:_vm.badgeClass,attrs:{\"label\":_vm.showCommentIcon ? null : _vm.toggleText(discussion, index),\"position\":_vm.getPosition(discussion),\"aria-label\":_vm.__('Show comments'),\"is-draft\":discussion.isDraft,\"is-resolved\":discussion.resolved,\"is-on-image\":\"\",\"disabled\":!_vm.shouldToggleDiscussion},on:{\"click\":function($event){return _vm.clickedToggle(discussion)}}})}),_vm._v(\" \"),(_vm.canComment && _vm.currentCommentForm)?_c('design-note-pin',{attrs:{\"position\":/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ {\n left: `${_vm.currentCommentForm.xPercent}%`,\n top: `${_vm.currentCommentForm.yPercent}%`,\n } /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */}}):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","// eslint-disable-next-line no-restricted-imports\nimport { mapActions } from 'vuex';\n\nexport default {\n computed: {\n diffFileDiscussions() {\n return this.allDiscussions.filter((d) => !d.isDraft);\n },\n },\n methods: {\n ...mapActions(['toggleDiscussion']),\n clickedToggle(discussion) {\n if (!discussion.isDraft) {\n this.toggleDiscussion({ discussionId: discussion.id });\n }\n },\n toggleText(discussion, index) {\n const count = index + 1;\n\n return discussion.isDraft ? count - this.diffFileDiscussions.length : count;\n },\n },\n};\n","<script>\nimport { isArray } from 'lodash';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters } from 'vuex';\nimport imageDiffMixin from 'ee_else_ce/diffs/mixins/image_diff';\nimport DesignNotePin from '~/vue_shared/components/design_management/design_note_pin.vue';\n\nfunction calcPercent(pos, renderedSize) {\n return (100 * pos) / renderedSize;\n}\n\nexport default {\n name: 'ImageDiffOverlay',\n components: {\n DesignNotePin,\n },\n mixins: [imageDiffMixin],\n props: {\n discussions: {\n type: [Array, Object],\n required: true,\n },\n fileHash: {\n type: String,\n required: true,\n },\n canComment: {\n type: Boolean,\n required: false,\n default: false,\n },\n showCommentIcon: {\n type: Boolean,\n required: false,\n default: false,\n },\n badgeClass: {\n type: String,\n required: false,\n default: '',\n },\n shouldToggleDiscussion: {\n type: Boolean,\n required: false,\n default: true,\n },\n renderedWidth: {\n type: Number,\n required: true,\n },\n renderedHeight: {\n type: Number,\n required: true,\n },\n },\n computed: {\n ...mapGetters('diffs', ['getDiffFileByHash', 'getCommentFormForDiffFile']),\n currentCommentForm() {\n return this.getCommentFormForDiffFile(this.fileHash);\n },\n allDiscussions() {\n return isArray(this.discussions) ? this.discussions : [this.discussions];\n },\n },\n methods: {\n ...mapActions('diffs', ['openDiffFileCommentForm']),\n getImageDimensions() {\n return {\n width: Math.round(this.$parent.width),\n height: Math.round(this.$parent.height),\n };\n },\n getPositionForObject(meta) {\n const { x, y, width, height } = meta;\n\n return {\n x: (x / width) * 100,\n y: (y / height) * 100,\n };\n },\n getPosition(discussion) {\n const { x, y } = this.getPositionForObject(discussion.position);\n\n return {\n left: `${x}%`,\n top: `${y}%`,\n };\n },\n clickedImage(x, y) {\n const { width, height } = this.getImageDimensions();\n const xPercent = calcPercent(x, this.renderedWidth);\n const yPercent = calcPercent(y, this.renderedHeight);\n\n this.openDiffFileCommentForm({\n fileHash: this.fileHash,\n width,\n height,\n x: Math.round(width * (xPercent / 100)),\n y: Math.round(height * (yPercent / 100)),\n xPercent,\n yPercent,\n });\n },\n },\n};\n</script>\n\n<template>\n <div class=\"image-diff-overlay gl-absolute gl-h-full gl-w-full\">\n <button\n v-if=\"canComment\"\n type=\"button\"\n class=\"image-diff-overlay-add-comment js-add-image-diff-note-button gl-absolute gl-h-full gl-w-full gl-border-0 gl-bg-transparent\"\n @click=\"clickedImage($event.offsetX, $event.offsetY)\"\n >\n <span class=\"sr-only\"> {{ __('Add image comment') }} </span>\n </button>\n\n <design-note-pin\n v-for=\"(discussion, index) in allDiscussions\"\n :key=\"discussion.id\"\n :label=\"showCommentIcon ? null : toggleText(discussion, index)\"\n :position=\"getPosition(discussion)\"\n :aria-label=\"__('Show comments')\"\n class=\"js-image-badge\"\n :class=\"badgeClass\"\n :is-draft=\"discussion.isDraft\"\n :is-resolved=\"discussion.resolved\"\n is-on-image\n :disabled=\"!shouldToggleDiscussion\"\n @click=\"clickedToggle(discussion)\"\n />\n\n <design-note-pin\n v-if=\"canComment && currentCommentForm\"\n :position=\"/* eslint-disable @gitlab/vue-no-new-non-primitive-in-template */ {\n left: `${currentCommentForm.xPercent}%`,\n top: `${currentCommentForm.yPercent}%`,\n } /* eslint-enable @gitlab/vue-no-new-non-primitive-in-template */\"\n />\n </div>\n</template>\n","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!./image_diff_overlay.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!./image_diff_overlay.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./image_diff_overlay.vue?vue&type=template&id=50229185\"\nimport script from \"./image_diff_overlay.vue?vue&type=script&lang=js\"\nexport * from \"./image_diff_overlay.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\":\"getPipelineStageJobs\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CiStageID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ciPipelineStage\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobs\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detailedStatus\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"action\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confirmationMessage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detailsPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasDetails\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"tooltip\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scheduled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scheduledAt\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":459}};\n doc.loc.source = {\"body\":\"query getPipelineStageJobs($id: CiStageID!) {\\n ciPipelineStage(id: $id) {\\n id\\n jobs {\\n nodes {\\n id\\n detailedStatus {\\n id\\n action {\\n id\\n confirmationMessage\\n icon\\n path\\n title\\n }\\n detailsPath\\n group\\n hasDetails\\n icon\\n tooltip\\n }\\n name\\n scheduled\\n scheduledAt\\n }\\n }\\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[\"getPipelineStageJobs\"] = oneQuery(doc, \"getPipelineStageJobs\");\n \n","import { invert } from 'lodash';\n\nexport const FEEDBACK_TYPE_DISMISSAL = 'dismissal';\nexport const FEEDBACK_TYPE_ISSUE = 'issue';\nexport const FEEDBACK_TYPE_MERGE_REQUEST = 'merge_request';\n\n/**\n * Security artifact file types\n */\nexport const REPORT_FILE_TYPES = {\n ARCHIVE: 'ARCHIVE',\n TRACE: 'TRACE',\n METADATA: 'METADATA',\n};\n\n/**\n * Security scan report types, as provided by the backend.\n */\nexport const REPORT_TYPE_SAST = 'sast';\nexport const REPORT_TYPE_SAST_IAC = 'sast_iac';\nexport const REPORT_TYPE_DAST = 'dast';\nexport const REPORT_TYPE_DAST_PROFILES = 'dast_profiles';\nexport const REPORT_TYPE_SECRET_DETECTION = 'secret_detection';\nexport const REPORT_TYPE_DEPENDENCY_SCANNING = 'dependency_scanning';\nexport const REPORT_TYPE_CONTAINER_SCANNING = 'container_scanning';\nexport const REPORT_TYPE_CONTAINER_SCANNING_FOR_REGISTRY = 'container_scanning_for_registry';\nexport const REPORT_TYPE_CLUSTER_IMAGE_SCANNING = 'cluster_image_scanning';\nexport const REPORT_TYPE_COVERAGE_FUZZING = 'coverage_fuzzing';\nexport const REPORT_TYPE_CORPUS_MANAGEMENT = 'corpus_management';\nexport const REPORT_TYPE_API_FUZZING = 'api_fuzzing';\n\n/**\n * SecurityReportTypeEnum values for use with GraphQL.\n *\n * These should correspond to the lowercase security scan report types.\n */\nexport const SECURITY_REPORT_TYPE_ENUM_SAST = 'SAST';\nexport const SECURITY_REPORT_TYPE_ENUM_SECRET_DETECTION = 'SECRET_DETECTION';\n\n/**\n * A mapping from security scan report types to SecurityReportTypeEnum values.\n */\nexport const reportTypeToSecurityReportTypeEnum = {\n [REPORT_TYPE_SAST]: SECURITY_REPORT_TYPE_ENUM_SAST,\n [REPORT_TYPE_SECRET_DETECTION]: SECURITY_REPORT_TYPE_ENUM_SECRET_DETECTION,\n};\n\n/**\n * A mapping from SecurityReportTypeEnum values to security scan report types.\n */\nexport const securityReportTypeEnumToReportType = invert(reportTypeToSecurityReportTypeEnum);\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('time',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport\",value:({ placement: _vm.tooltipPlacement }),expression:\"{ placement: tooltipPlacement }\",modifiers:{\"viewport\":true}}],class:_vm.cssClass,attrs:{\"title\":_vm.tooltipText,\"datetime\":_vm.time}},[_vm._t(\"default\",function(){return [(_vm.enableTruncation)?[_c('gl-truncate',{attrs:{\"text\":_vm.timeAgo,\"with-tooltip\":\"\"}})]:[_vm._v(_vm._s(_vm.timeAgo))]]},{\"timeAgo\":_vm.timeAgo})],2)\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!./time_ago_tooltip.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!./time_ago_tooltip.vue?vue&type=script&lang=js\"","<script>\nimport { GlTruncate, GlTooltipDirective } from '@gitlab/ui';\n\nimport { DATE_TIME_FORMATS, DEFAULT_DATE_TIME_FORMAT } from '~/lib/utils/datetime_utility';\nimport timeagoMixin from '../mixins/timeago';\n\n/**\n * Port of ruby helper time_ago_with_tooltip\n */\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlTruncate,\n },\n mixins: [timeagoMixin],\n props: {\n time: {\n type: [String, Number, Date],\n required: true,\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'top',\n },\n cssClass: {\n type: String,\n required: false,\n default: '',\n },\n dateTimeFormat: {\n type: String,\n required: false,\n default: DEFAULT_DATE_TIME_FORMAT,\n validator: (timeFormat) => DATE_TIME_FORMATS.includes(timeFormat),\n },\n enableTruncation: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n timeAgo() {\n return this.timeFormatted(this.time, this.dateTimeFormat);\n },\n tooltipText() {\n return this.enableTruncation ? undefined : this.tooltipTitle(this.time);\n },\n },\n};\n</script>\n<template>\n <time\n v-gl-tooltip.viewport=\"{ placement: tooltipPlacement }\"\n :class=\"cssClass\"\n :title=\"tooltipText\"\n :datetime=\"time\"\n ><slot :time-ago=\"timeAgo\"\n ><template v-if=\"enableTruncation\"><gl-truncate :text=\"timeAgo\" with-tooltip /></template\n ><template v-else>{{ timeAgo }}</template></slot\n ></time\n >\n</template>\n","import { render, staticRenderFns } from \"./time_ago_tooltip.vue?vue&type=template&id=26d04390\"\nimport script from \"./time_ago_tooltip.vue?vue&type=script&lang=js\"\nexport * from \"./time_ago_tooltip.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 { s__, __ } from '~/locale';\n\nexport const OPEN_REVERT_MODAL = 'openRevertModal';\nexport const REVERT_MODAL_ID = 'revert-commit-modal';\nexport const OPEN_CHERRY_PICK_MODAL = 'openCherryPickModal';\nexport const CHERRY_PICK_MODAL_ID = 'cherry-pick-commit-modal';\n\nexport const I18N_MODAL = {\n startMergeRequest: s__('ChangeTypeAction|Start a %{newMergeRequest} with these changes'),\n existingBranch: s__(\n 'ChangeTypeAction|Your changes will be committed to %{branchName} because a merge request is open.',\n ),\n branchInFork: s__(\n 'ChangeTypeAction|GitLab will create a branch in your fork and start a merge request.',\n ),\n newMergeRequest: __('new merge request'),\n actionCancelText: __('Cancel'),\n};\n\nexport const I18N_REVERT_MODAL = {\n branchLabel: s__('ChangeTypeAction|Revert in branch'),\n actionPrimaryText: s__('ChangeTypeAction|Revert'),\n};\n\nexport const I18N_CHERRY_PICK_MODAL = {\n branchLabel: s__('ChangeTypeAction|Pick into branch'),\n projectLabel: s__('ChangeTypeAction|Pick into project'),\n actionPrimaryText: s__('ChangeTypeAction|Cherry-pick'),\n};\n\nexport const PREPENDED_MODAL_TEXT = s__(\n 'ChangeTypeAction|This will create a new commit in order to revert the existing changes.',\n);\n\nexport const I18N_NO_RESULTS_MESSAGE = __('No matching results');\n\nexport const I18N_PROJECT_HEADER = s__('ChangeTypeAction|Switch project');\nexport const I18N_PROJECT_SEARCH_PLACEHOLDER = s__('ChangeTypeAction|Search projects');\n\nexport const I18N_BRANCH_HEADER = s__('ChangeTypeAction|Switch branch');\nexport const I18N_BRANCH_SEARCH_PLACEHOLDER = s__('ChangeTypeAction|Search branches');\n\nexport const PROJECT_BRANCHES_ERROR = __('Something went wrong while fetching branches');\n","import { createAlert } from '~/alert';\nimport { __ } from '~/locale';\n\nexport default {\n computed: {\n discussionResolved() {\n if (this.discussion) {\n return Boolean(this.discussion.resolved);\n }\n\n return this.note.resolved;\n },\n resolveButtonTitle() {\n return this.discussionResolved ? __('Unresolve thread') : __('Resolve thread');\n },\n },\n methods: {\n resolveHandler(resolvedState = false) {\n if (this.note && this.note.isDraft) {\n return this.$emit('toggleResolveStatus');\n }\n\n this.isResolving = true;\n const isResolved = this.discussionResolved || resolvedState;\n const discussion = this.resolveAsThread;\n let endpoint =\n discussion && this.discussion ? this.discussion.resolve_path : `${this.note.path}/resolve`;\n\n if (this.discussionResolvePath) {\n endpoint = this.discussionResolvePath;\n }\n\n return this.toggleResolveNote({ endpoint, isResolved, discussion })\n .then(() => {\n this.isResolving = false;\n })\n .catch(() => {\n this.isResolving = false;\n\n const msg = __('Something went wrong while resolving this discussion. Please try again.');\n createAlert({\n message: msg,\n parent: this.$el,\n });\n });\n },\n },\n};\n","import { groupBy } from 'lodash';\nimport {\n RULE_TYPE_REGULAR,\n RULE_TYPE_FALLBACK,\n RULE_TYPE_CODE_OWNER,\n RULE_TYPE_REPORT_APPROVER,\n RULE_TYPE_ANY_APPROVER,\n} from 'ee/approvals/constants';\nimport { __ } from '~/locale';\n\nfunction mapApprovalRule(rule, settings) {\n if (rule.rule_type === RULE_TYPE_FALLBACK) {\n // Show a friendly name for the fallback rule\n return {\n ...rule,\n name: __('All Members'),\n fallback: true,\n };\n }\n if (rule.rule_type === RULE_TYPE_REGULAR && !settings.multiple_approval_rules_available) {\n // Give a friendly name to the single rule\n return {\n ...rule,\n name: __('Merge Request'),\n };\n }\n\n return rule;\n}\n\nexport function getApprovalRuleNamesLeft(multipleApprovalRulesAvailable, rules) {\n if (!multipleApprovalRulesAvailable) {\n return [];\n }\n\n const rulesLeft = groupBy(rules, (x) => x.rule_type || x.type?.toLowerCase());\n\n const anyApprover = rulesLeft[RULE_TYPE_ANY_APPROVER] ? [__('eligible users')] : [];\n\n // Filter out empty names (fallback rule has no name) because the empties would look weird.\n const regularRules = (rulesLeft[RULE_TYPE_REGULAR] || []).map((x) => x.name).filter((x) => x);\n\n // Report Approvals\n const reportApprovalRules = (rulesLeft[RULE_TYPE_REPORT_APPROVER] || []).map((x) => x.name);\n\n // If there are code owners that need to approve, only mention that once.\n // As the names of code owner rules are patterns that don't mean much out of context.\n const codeOwnerRules = rulesLeft[RULE_TYPE_CODE_OWNER] ? [__('Code Owners')] : [];\n\n return [...anyApprover, ...regularRules, ...reportApprovalRules, ...codeOwnerRules];\n}\n\n/**\n * Map the approval rules response for use by the MR widget\n */\nexport function mapApprovalRulesResponse(rules, settings) {\n return rules.map((x) => mapApprovalRule(x, settings));\n}\n\n/**\n * Map the overall approvals response for use by the MR widget\n */\nexport function mapApprovalsResponse(data) {\n return {\n ...data,\n approvalRuleNamesLeft: getApprovalRuleNamesLeft(\n data.multiple_approval_rules_available,\n data.approval_rules_left,\n ),\n };\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-relative gl-mr-3 gl-rounded-full\",class:{\n [_vm.backgroundClass]: !_vm.isLoading && _vm.level === 1,\n 'gl-flex gl-h-6 gl-w-6 gl-items-center gl-justify-center': _vm.level === 1,\n }},[(_vm.isLoading)?_c('gl-loading-icon',{attrs:{\"size\":\"sm\",\"inline\":\"\"}}):[(_vm.level === 1)?[_c('svg',{staticClass:\"gl-absolute\",class:_vm.iconClass,attrs:{\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\"}},[_c('circle',{attrs:{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"8\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"gl-absolute gl-h-3 gl-w-3 gl-rounded-full gl-bg-section\"})]:_vm._e(),_vm._v(\" \"),_c('gl-icon',{staticClass:\"gl-relative gl-z-1\",class:_vm.iconClass,attrs:{\"name\":_vm.$options.EXTENSION_ICON_NAMES[_vm.iconName],\"size\":12,\"aria-label\":_vm.iconAriaLabel,\"data-testid\":`status-${_vm.iconName}-icon`}})]],2)\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!./status_icon.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!./status_icon.vue?vue&type=script&lang=js\"","<script>\nimport { GlLoadingIcon, GlIcon } from '@gitlab/ui';\nimport { capitalizeFirstCharacter } from '~/lib/utils/text_utility';\nimport { EXTENSION_ICON_CLASS, EXTENSION_ICON_NAMES } from '../../constants';\n\nexport default {\n components: {\n GlLoadingIcon,\n GlIcon,\n },\n props: {\n level: {\n type: Number,\n required: false,\n default: 1,\n },\n name: {\n type: String,\n required: false,\n default: '',\n },\n isLoading: {\n type: Boolean,\n required: false,\n default: false,\n },\n iconName: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n iconAriaLabel() {\n return `${capitalizeFirstCharacter(this.iconName)} ${this.name}`;\n },\n backgroundClass() {\n return this.$options.EXTENSION_ICON_CLASS[this.iconName]?.backgroundClass;\n },\n iconClass() {\n return this.$options.EXTENSION_ICON_CLASS[this.iconName]?.iconClass;\n },\n },\n EXTENSION_ICON_NAMES,\n EXTENSION_ICON_CLASS,\n};\n</script>\n\n<template>\n <div\n :class=\"{\n [backgroundClass]: !isLoading && level === 1,\n 'gl-flex gl-h-6 gl-w-6 gl-items-center gl-justify-center': level === 1,\n }\"\n class=\"gl-relative gl-mr-3 gl-rounded-full\"\n >\n <gl-loading-icon v-if=\"isLoading\" size=\"sm\" inline />\n <template v-else>\n <template v-if=\"level === 1\">\n <svg class=\"gl-absolute\" :class=\"iconClass\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\">\n <circle cx=\"8\" cy=\"8\" r=\"8\" />\n </svg>\n <div class=\"gl-absolute gl-h-3 gl-w-3 gl-rounded-full gl-bg-section\"></div>\n </template>\n <gl-icon\n :name=\"$options.EXTENSION_ICON_NAMES[iconName]\"\n :size=\"12\"\n :aria-label=\"iconAriaLabel\"\n :data-testid=\"`status-${iconName}-icon`\"\n class=\"gl-relative gl-z-1\"\n :class=\"iconClass\"\n />\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./status_icon.vue?vue&type=template&id=3883cc8c\"\nimport script from \"./status_icon.vue?vue&type=script&lang=js\"\nexport * from \"./status_icon.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 baseOrderBy = require('./_baseOrderBy'),\n isArray = require('./isArray');\n\n/**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\nfunction orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n}\n\nmodule.exports = orderBy;\n","/**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\nfunction arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n}\n\nmodule.exports = arrayIncludesWith;\n","import { mountSidebar, getSidebarOptions } from 'ee_else_ce/sidebar/mount_sidebar';\nimport Mediator from './sidebar_mediator';\n\nexport default (store) => {\n const mediator = new Mediator(getSidebarOptions());\n mediator.fetch();\n\n mountSidebar(mediator, store);\n};\n","export const DEFAULT_ASSIGNED_POLICY_PROJECT = { fullPath: '', branch: '' };\n\nexport const PAGE_SIZE = 20;\n\nexport const NAMESPACE_TYPES = {\n PROJECT: 'project',\n GROUP: 'group',\n};\n\nexport const GROUP_TYPE = 'group';\n\nexport const ROLE_TYPE = 'role';\n\nexport const USER_TYPE = 'user';\n\nexport const MAX_SCAN_EXECUTION_ACTION_COUNT = 10;\n","import { diffViewerModes as viewerModes } from '~/ide/constants';\nimport { changeInPercent, numberToHumanSize } from '~/lib/utils/number_utils';\nimport { truncateSha } from '~/lib/utils/text_utility';\nimport { uuids } from '~/lib/utils/uuids';\n\nimport {\n DIFF_FILE_SYMLINK_MODE,\n DIFF_FILE_DELETED_MODE,\n DIFF_FILE_MANUAL_COLLAPSE,\n DIFF_FILE_AUTOMATIC_COLLAPSE,\n} from '../constants';\nimport { getDerivedMergeRequestInformation } from './merge_request';\n\nfunction fileSymlinkInformation(file, fileList) {\n const duplicates = fileList.filter((iteratedFile) => iteratedFile.file_hash === file.file_hash);\n const includesSymlink = duplicates.some((iteratedFile) => {\n return [iteratedFile.a_mode, iteratedFile.b_mode].includes(DIFF_FILE_SYMLINK_MODE);\n });\n const brokenSymlinkScenario = duplicates.length > 1 && includesSymlink;\n\n return (\n brokenSymlinkScenario && {\n replaced: file.b_mode === DIFF_FILE_DELETED_MODE,\n wasSymbolic: file.a_mode === DIFF_FILE_SYMLINK_MODE,\n isSymbolic: file.b_mode === DIFF_FILE_SYMLINK_MODE,\n wasReal: ![DIFF_FILE_SYMLINK_MODE, DIFF_FILE_DELETED_MODE].includes(file.a_mode),\n isReal: ![DIFF_FILE_SYMLINK_MODE, DIFF_FILE_DELETED_MODE].includes(file.b_mode),\n }\n );\n}\n\nfunction collapsed(file) {\n const viewer = file.viewer || {};\n\n return {\n automaticallyCollapsed: viewer.automaticallyCollapsed || viewer.collapsed || false,\n manuallyCollapsed: null,\n forceOpen: false,\n };\n}\n\nfunction identifier(file) {\n const { namespace, project, id } = getDerivedMergeRequestInformation({\n endpoint: file.load_collapsed_diff_url,\n });\n\n return uuids({\n seeds: [namespace, project, id, file.file_identifier_hash, file.blob?.id],\n })[0];\n}\n\nexport function isNotDiffable(file) {\n return file?.viewer?.name === viewerModes.not_diffable;\n}\n\nexport function prepareRawDiffFile({ file, allFiles, meta = false, index = -1 }) {\n const additionalProperties = {\n brokenSymlink: fileSymlinkInformation(file, allFiles),\n hasCommentForm: false,\n discussions: file.discussions || [],\n drafts: [],\n viewer: {\n ...file.viewer,\n ...collapsed(file),\n },\n };\n\n // It's possible, but not confirmed, that `blob.id` isn't available sometimes\n // See: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/49506#note_464692057\n // We don't want duplicate IDs if that's the case, so we just don't assign an ID\n if (!meta && file.blob?.id && file.load_collapsed_diff_url) {\n additionalProperties.id = identifier(file);\n }\n\n if (index >= 0 && Number(index) === index) {\n additionalProperties.order = index;\n }\n\n return Object.assign(file, additionalProperties);\n}\n\nexport function collapsedType(file) {\n const isManual = typeof file?.viewer?.manuallyCollapsed === 'boolean';\n\n return isManual ? DIFF_FILE_MANUAL_COLLAPSE : DIFF_FILE_AUTOMATIC_COLLAPSE;\n}\n\nexport function isCollapsed(file) {\n const type = collapsedType(file);\n const collapsedStates = {\n [DIFF_FILE_AUTOMATIC_COLLAPSE]: file?.viewer?.automaticallyCollapsed || false,\n [DIFF_FILE_MANUAL_COLLAPSE]: file?.viewer?.manuallyCollapsed,\n };\n\n return collapsedStates[type];\n}\n\nexport function getShortShaFromFile(file) {\n return file.content_sha ? truncateSha(String(file.content_sha)) : null;\n}\n\nexport function match({ fileA, fileB, mode = 'universal' } = {}) {\n const matching = {\n universal: (a, b) => (a?.id && b?.id ? a.id === b.id : false),\n /*\n * MR mode can be wildly incorrect if there is ever the possibility of files from multiple MRs\n * (e.g. a browser-local merge request/file cache).\n * That's why the default here is \"universal\" mode: UUIDs can't conflict, but you can opt into\n * the dangerous one.\n *\n * For reference:\n * file_identifier_hash === sha1( `${filePath}-${Boolean(isNew)}-${Boolean(isDeleted)}-${Boolean(isRenamed)}` )\n */\n mr: (a, b) =>\n a?.file_identifier_hash && b?.file_identifier_hash\n ? a.file_identifier_hash === b.file_identifier_hash\n : false,\n };\n\n return (matching[mode] || (() => false))(fileA, fileB);\n}\n\nexport function stats(file) {\n let valid = false;\n let classes = '';\n let sign = '';\n let text = '';\n let percent = 0;\n let diff = 0;\n\n if (file) {\n percent = changeInPercent(file.old_size, file.new_size);\n diff = file.new_size - file.old_size;\n sign = diff >= 0 ? '+' : '';\n text = `${sign}${numberToHumanSize(diff)} (${sign}${percent}%)`;\n valid = true;\n\n if (diff > 0) {\n classes = 'gl-text-success';\n } else if (diff < 0) {\n classes = 'gl-text-danger';\n }\n }\n\n return {\n changed: diff,\n text,\n percent,\n classes,\n sign,\n valid,\n };\n}\n\nexport function countLinesInBetween(lines, index) {\n if (index === 0 || !lines[index + 1]) {\n return -1;\n }\n\n const prev = lines[index - 1];\n const next = lines[index + 1];\n return Number((next.left || next).new_line) - Number((prev.left || prev).new_line);\n}\n\nexport function findClosestMatchLine(lines, target) {\n return (\n lines.find((line, index) => {\n if (!line.meta_data) return false;\n const prevLine = lines[index - 1];\n if (prevLine) {\n return prevLine.new_line < target && target <= line.meta_data.new_pos;\n }\n return target <= line.meta_data.new_pos;\n }) || lines[lines.length - 1]\n );\n}\n\nexport function lineExists(lines, oldLineNumber, newLineNumber) {\n return lines.some((line) => line.old_line === oldLineNumber && line.new_line === newLineNumber);\n}\n","import { __, sprintf } from '~/locale';\nimport { TYPE_EPIC, TYPE_INCIDENT, TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\n\nexport const linkedIssueTypesMap = {\n BLOCKS: 'blocks',\n IS_BLOCKED_BY: 'is_blocked_by',\n RELATES_TO: 'relates_to',\n};\n\nexport const linkedIssueTypesTextMap = {\n [linkedIssueTypesMap.RELATES_TO]: __('Relates to'),\n [linkedIssueTypesMap.BLOCKS]: __('Blocks'),\n [linkedIssueTypesMap.IS_BLOCKED_BY]: __('Is blocked by'),\n};\n\nexport const autoCompleteTextMap = {\n true: {\n [TYPE_ISSUE]: sprintf(\n __(' or %{emphasisStart}#issue ID%{emphasisEnd}'),\n { emphasisStart: '<', emphasisEnd: '>' },\n false,\n ),\n [TYPE_INCIDENT]: sprintf(\n __(' or %{emphasisStart}#ID%{emphasisEnd}'),\n { emphasisStart: '<', emphasisEnd: '>' },\n false,\n ),\n [TYPE_EPIC]: sprintf(\n __(' or %{emphasisStart}&epic ID%{emphasisEnd}'),\n { emphasisStart: '<', emphasisEnd: '>' },\n false,\n ),\n [TYPE_MERGE_REQUEST]: sprintf(\n __(' or %{emphasisStart}!merge request ID%{emphasisEnd}'),\n { emphasisStart: '<', emphasisEnd: '>' },\n false,\n ),\n },\n false: {\n [TYPE_ISSUE]: '',\n [TYPE_EPIC]: '',\n [TYPE_MERGE_REQUEST]: __(' or references'),\n },\n};\n\nexport const inputPlaceholderTextMap = {\n [TYPE_ISSUE]: __('Enter issue URL'),\n [TYPE_INCIDENT]: __('Enter URL'),\n [TYPE_EPIC]: __('Enter epic URL'),\n [TYPE_MERGE_REQUEST]: __('Enter merge request URLs'),\n};\n\nexport const inputPlaceholderConfidentialTextMap = {\n [TYPE_ISSUE]: __('Enter confidential issue URL'),\n [TYPE_EPIC]: __('Enter confidential epic URL'),\n [TYPE_MERGE_REQUEST]: __('Enter merge request URLs'),\n};\n\nexport const relatedIssuesRemoveErrorMap = {\n [TYPE_ISSUE]: __('An error occurred while removing issues.'),\n [TYPE_EPIC]: __('An error occurred while removing epics.'),\n};\n\nexport const pathIndeterminateErrorMap = {\n [TYPE_ISSUE]: __('We could not determine the path to remove the issue'),\n [TYPE_EPIC]: __('We could not determine the path to remove the epic'),\n};\n\nexport const itemAddFailureTypesMap = {\n NOT_FOUND: 'not_found',\n MAX_NUMBER_OF_CHILD_EPICS: 'conflict',\n};\n\nexport const addRelatedIssueErrorMap = {\n [TYPE_ISSUE]: __('Issue cannot be found.'),\n [TYPE_EPIC]: __('Epic cannot be found.'),\n};\n\nexport const addRelatedItemErrorMap = {\n [itemAddFailureTypesMap.MAX_NUMBER_OF_CHILD_EPICS]: __(\n 'This epic already has the maximum number of child epics.',\n ),\n};\n\n/**\n * These are used to map issuableType to the correct icon.\n * Since these are never used for any display purposes, don't wrap\n * them inside i18n functions.\n */\nexport const issuableIconMap = {\n [TYPE_ISSUE]: 'issues',\n [TYPE_INCIDENT]: 'issues',\n [TYPE_EPIC]: 'epic',\n};\n\nexport const PathIdSeparator = {\n Epic: '&',\n Issue: '#',\n};\n\nexport const issuablesBlockHeaderTextMap = {\n [TYPE_ISSUE]: __('Linked items'),\n [TYPE_INCIDENT]: __('Linked incidents or issues'),\n [TYPE_EPIC]: __('Linked epics'),\n};\n\nexport const issuablesBlockHelpTextMap = {\n [TYPE_ISSUE]: __('Learn more about linking issues'),\n [TYPE_INCIDENT]: __('Learn more about linking issues and incidents'),\n [TYPE_EPIC]: __('Learn more about linking epics'),\n};\n\nexport const issuablesBlockAddButtonTextMap = {\n [TYPE_ISSUE]: __('Add a related issue'),\n [TYPE_EPIC]: __('Add a related epic'),\n};\n\nexport const issuablesFormCategoryHeaderTextMap = {\n [TYPE_ISSUE]: __('The current issue'),\n [TYPE_INCIDENT]: __('The current incident'),\n [TYPE_EPIC]: __('The current epic'),\n};\n\nexport const issuablesFormInputTextMap = {\n [TYPE_ISSUE]: __('the following issues'),\n [TYPE_INCIDENT]: __('the following incidents or issues'),\n [TYPE_EPIC]: __('the following epics'),\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getMergeRequestState\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":190}};\n doc.loc.source = {\"body\":\"query getMergeRequestState($projectPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $projectPath) {\\n id\\n issuable: mergeRequest(iid: $iid) {\\n id\\n state\\n }\\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[\"getMergeRequestState\"] = oneQuery(doc, \"getMergeRequestState\");\n \n","var baseFlatten = require('./_baseFlatten');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\nfunction flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n}\n\nmodule.exports = flattenDeep;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"pipeline-mini-graph\"}},[(_vm.hasUpstreamPipeline)?_c('ci-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"gl-align-middle\",attrs:{\"title\":_vm.upstreamTooltipText,\"aria-label\":_vm.upstreamTooltipText,\"status\":_vm.upstreamPipelineStatus,\"show-tooltip\":false,\"data-testid\":\"pipeline-mini-graph-upstream\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasUpstreamPipeline)?_c('gl-icon',{class:_vm.$options.arrowStyles,attrs:{\"name\":\"arrow-right\",\"data-testid\":\"upstream-arrow-icon\",\"variant\":\"subtle\"}}):_vm._e(),_vm._v(\" \"),_c('pipeline-stages',{attrs:{\"is-merge-train\":_vm.isMergeTrain,\"stages\":_vm.formattedStages},on:{\"jobActionExecuted\":function($event){return _vm.$emit('jobActionExecuted')},\"miniGraphStageClick\":function($event){return _vm.$emit('miniGraphStageClick')}}}),_vm._v(\" \"),(_vm.hasDownstreamPipelines)?_c('gl-icon',{class:_vm.$options.arrowStyles,attrs:{\"name\":\"arrow-right\",\"data-testid\":\"downstream-arrow-icon\",\"variant\":\"subtle\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasDownstreamPipelines)?_c('downstream-pipelines',{attrs:{\"pipelines\":_vm.latestDownstreamPipelines,\"pipeline-path\":_vm.pipelinePath,\"data-testid\":\"pipeline-mini-graph-downstream\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_CI_PIPELINE, TYPENAME_CI_STAGE } from '~/graphql_shared/constants';\n\nconst hasDetailedStatus = (item) => {\n return Boolean(item.detailedStatus);\n};\n\n/**\n * Converts REST shaped downstreams to GraphQL shape\n *\n * @param {Array} pipelines - The downstream pipelines passed into legacy pipeline mini graph\n * @returns {Array} - GraphQL shaped downstream pipelines\n */\nexport const normalizeDownstreamPipelines = (pipelines) => {\n return pipelines.map((p) => {\n if (hasDetailedStatus(p)) {\n return p;\n }\n\n const { id, details, path, project } = p;\n return {\n id: convertToGraphQLId(TYPENAME_CI_PIPELINE, id),\n detailedStatus: details?.status,\n path,\n project: {\n name: project.name,\n },\n };\n });\n};\n\n/**\n * Converts REST shaped pipeline stages to GraphQL shape\n *\n * @param {Array} stages - The pipeline stages passed into legacy pipeline mini graph\n * @returns {Array} - GraphQL shaped pipeline stages\n */\nexport const normalizeStages = (stages) => {\n return stages.map((s) => {\n if (hasDetailedStatus(s)) {\n return s;\n }\n\n const { id, name, status } = s;\n return {\n id: convertToGraphQLId(TYPENAME_CI_STAGE, id),\n detailedStatus: {\n icon: status.icon,\n label: status.label,\n tooltip: status.tooltip,\n },\n name,\n };\n });\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.pipelines)?_c('span',{staticClass:\"gl-inline-flex gl-gap-2 gl-align-middle\"},[_vm._l((_vm.pipelinesTrimmed),function(pipeline){return _c('ci-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],key:pipeline.id,attrs:{\"title\":_vm.pipelineTooltipText(pipeline),\"status\":pipeline.detailedStatus,\"show-tooltip\":false,\"data-testid\":\"downstream-pipelines\"}})}),_vm._v(\" \"),(_vm.shouldRenderCounter)?_c('a',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:({ title: _vm.counterTooltipText }),expression:\"{ title: counterTooltipText }\"}],staticClass:\"gl-inline-flex gl-h-6 gl-w-7 gl-items-center gl-justify-center gl-rounded-pill gl-bg-gray-50 gl-text-sm gl-text-subtle gl-no-underline\",attrs:{\"title\":_vm.counterTooltipText,\"href\":_vm.pipelinePath,\"data-testid\":\"downstream-pipeline-counter\"}},[_vm._v(\"\\n \"+_vm._s(_vm.counterLabel)+\"\\n \")]):_vm._e()],2):_vm._e()\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!./downstream_pipelines.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!./downstream_pipelines.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\nimport { sprintf, s__ } from '~/locale';\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\n/**\n * Renders the downstream portion of the pipeline mini graph.\n */\nexport default {\n name: 'DownstreamPipelines',\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n CiIcon,\n },\n props: {\n pipelines: {\n type: Array,\n required: false,\n default: () => [],\n },\n pipelinePath: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n maxRenderedPipelines: 3,\n };\n },\n computed: {\n totalPipelineCount() {\n return this.pipelines.length;\n },\n pipelinesTrimmed() {\n return this.totalPipelineCount > this.maxRenderedPipelines\n ? this.pipelines.slice(0, this.maxRenderedPipelines)\n : this.pipelines;\n },\n shouldRenderCounter() {\n return this.pipelines.length > this.maxRenderedPipelines;\n },\n counterLabel() {\n return `+${this.pipelines.length - this.maxRenderedPipelines}`;\n },\n counterTooltipText() {\n return sprintf(s__('Pipelines|%{counterLabel} more downstream pipelines'), {\n counterLabel: this.counterLabel,\n });\n },\n },\n methods: {\n pipelineTooltipText(pipeline) {\n return `${pipeline?.project?.name} - ${pipeline?.detailedStatus?.label}`;\n },\n },\n};\n</script>\n\n<template>\n <span v-if=\"pipelines\" class=\"gl-inline-flex gl-gap-2 gl-align-middle\">\n <ci-icon\n v-for=\"pipeline in pipelinesTrimmed\"\n :key=\"pipeline.id\"\n v-gl-tooltip.hover\n :title=\"pipelineTooltipText(pipeline)\"\n :status=\"pipeline.detailedStatus\"\n :show-tooltip=\"false\"\n data-testid=\"downstream-pipelines\"\n />\n\n <a\n v-if=\"shouldRenderCounter\"\n v-gl-tooltip=\"{ title: counterTooltipText }\"\n :title=\"counterTooltipText\"\n :href=\"pipelinePath\"\n class=\"gl-inline-flex gl-h-6 gl-w-7 gl-items-center gl-justify-center gl-rounded-pill gl-bg-gray-50 gl-text-sm gl-text-subtle gl-no-underline\"\n data-testid=\"downstream-pipeline-counter\"\n >\n {{ counterLabel }}\n </a>\n </span>\n</template>\n","import { render, staticRenderFns } from \"./downstream_pipelines.vue?vue&type=template&id=f55fafbe\"\nimport script from \"./downstream_pipelines.vue?vue&type=script&lang=js\"\nexport * from \"./downstream_pipelines.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--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipeline_stage_dropdown.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!./pipeline_stage_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlDisclosureDropdown, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { s__, __, sprintf } from '~/locale';\nimport { reportToSentry } from '~/ci/utils';\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\nimport { getQueryHeaders, toggleQueryPollingByVisibility } from '~/ci/pipeline_details/graph/utils';\nimport { graphqlEtagStagePath } from '~/ci/pipeline_details/utils';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { PIPELINE_POLL_INTERVAL_DEFAULT } from '~/ci/constants';\nimport JobDropdownItem from '~/ci/common/private/job_dropdown_item.vue';\nimport getPipelineStageJobsQuery from './graphql/queries/get_pipeline_stage_jobs.query.graphql';\n\nexport default {\n name: 'PipelineStageDropdown',\n i18n: {\n loadingText: __('Loading...'),\n mergeTrainMessage: s__('Pipeline|Merge train pipeline jobs can not be retried'),\n stage: __('Stage'),\n stageJobsFetchError: __('There was a problem fetching the pipeline stage jobs.'),\n viewStageLabel: __('View Stage: %{title}'),\n },\n components: {\n CiIcon,\n GlButton,\n GlDisclosureDropdown,\n GlLoadingIcon,\n JobDropdownItem,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n isMergeTrain: {\n type: Boolean,\n required: false,\n default: false,\n },\n stage: {\n type: Object,\n required: true,\n },\n },\n emits: ['jobActionExecuted', 'miniGraphStageClick'],\n data() {\n return {\n isDropdownOpen: false,\n stageJobs: [],\n };\n },\n apollo: {\n stageJobs: {\n context() {\n return getQueryHeaders(this.graphqlEtag);\n },\n query: getPipelineStageJobsQuery,\n variables() {\n return {\n id: this.stage.id,\n };\n },\n skip() {\n return !this.isDropdownOpen;\n },\n pollInterval: PIPELINE_POLL_INTERVAL_DEFAULT,\n update(data) {\n return data?.ciPipelineStage?.jobs?.nodes || [];\n },\n error(error) {\n createAlert({ message: this.$options.i18n.stageJobsFetchError });\n reportToSentry(this.$options.name, error);\n },\n },\n },\n computed: {\n dropdownHeaderText() {\n return `${this.$options.i18n.stage}: ${this.stage.name}`;\n },\n dropdownTooltipTitle() {\n return this.isDropdownOpen ? '' : `${this.stage.name}: ${this.stage.detailedStatus.tooltip}`;\n },\n graphqlEtag() {\n return graphqlEtagStagePath('/api/graphql', getIdFromGraphQLId(this.stage.id));\n },\n isLoading() {\n return this.$apollo.queries.stageJobs.loading;\n },\n },\n mounted() {\n toggleQueryPollingByVisibility(this.$apollo.queries.stageJobs);\n },\n methods: {\n onHideDropdown() {\n this.isDropdownOpen = false;\n this.$apollo.queries.stageJobs.stopPolling();\n },\n onShowDropdown() {\n this.isDropdownOpen = true;\n this.$apollo.queries.stageJobs.startPolling(PIPELINE_POLL_INTERVAL_DEFAULT);\n\n // used for tracking in the pipeline table\n this.$emit('miniGraphStageClick');\n },\n stageAriaLabel(title) {\n return sprintf(this.$options.i18n.viewStageLabel, { title });\n },\n },\n};\n</script>\n\n<template>\n <gl-disclosure-dropdown\n data-testid=\"pipeline-mini-graph-dropdown\"\n :aria-label=\"stageAriaLabel(stage.name)\"\n fluid-width\n @hidden=\"onHideDropdown\"\n @shown=\"onShowDropdown\"\n >\n <template #toggle>\n <gl-button\n v-gl-tooltip.hover=\"dropdownTooltipTitle\"\n data-testid=\"pipeline-mini-graph-dropdown-toggle\"\n :title=\"dropdownTooltipTitle\"\n class=\"!gl-rounded-full\"\n variant=\"link\"\n >\n <ci-icon :status=\"stage.detailedStatus\" :show-tooltip=\"false\" :use-link=\"false\" />\n </gl-button>\n </template>\n\n <template #header>\n <div\n data-testid=\"pipeline-stage-dropdown-menu-title\"\n class=\"gl-flex gl-min-h-8 gl-items-center gl-border-b-1 gl-border-b-dropdown !gl-p-4 gl-text-sm gl-font-bold gl-leading-1 gl-border-b-solid\"\n >\n <span>{{ dropdownHeaderText }}</span>\n </div>\n </template>\n\n <div v-if=\"isLoading\" class=\"gl-flex gl-gap-3 gl-px-4 gl-py-3\">\n <gl-loading-icon size=\"sm\" />\n <span class=\"gl-leading-normal\">{{ $options.i18n.loadingText }}</span>\n </div>\n <ul\n v-else\n class=\"gl-m-0 gl-w-34 gl-overflow-y-auto gl-p-0\"\n data-testid=\"pipeline-mini-graph-dropdown-menu-list\"\n @click.stop\n >\n <job-dropdown-item\n v-for=\"job in stageJobs\"\n :key=\"job.id\"\n :dropdown-length=\"stageJobs.length\"\n :job=\"job\"\n @jobActionExecuted=\"$emit('jobActionExecuted')\"\n />\n </ul>\n\n <template #footer>\n <div\n v-if=\"!isLoading && isMergeTrain\"\n class=\"gl-border-t gl-px-4 gl-py-3 gl-text-sm gl-text-subtle\"\n data-testid=\"merge-train-message\"\n >\n {{ $options.i18n.mergeTrainMessage }}\n </div>\n </template>\n </gl-disclosure-dropdown>\n</template>\n","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!./pipeline_stages.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!./pipeline_stages.vue?vue&type=script&lang=js\"","<script>\nimport PipelineStageDropdown from './pipeline_stage_dropdown.vue';\n/**\n * Renders the pipeline stages portion of the pipeline mini graph.\n */\nexport default {\n name: 'PipelineStages',\n components: {\n PipelineStageDropdown,\n },\n props: {\n isMergeTrain: {\n type: Boolean,\n required: false,\n default: false,\n },\n stages: {\n type: Array,\n required: true,\n },\n },\n emits: ['jobActionExecuted', 'miniGraphStageClick'],\n};\n</script>\n<template>\n <div class=\"gl-inline gl-align-middle\">\n <div\n v-for=\"stage in stages\"\n :key=\"stage.id\"\n class=\"pipeline-mini-graph-stage-container dropdown gl-my-1 gl-mr-2 gl-inline-flex gl-align-middle\"\n >\n <pipeline-stage-dropdown\n :stage=\"stage\"\n :is-merge-train=\"isMergeTrain\"\n @jobActionExecuted=\"$emit('jobActionExecuted')\"\n @miniGraphStageClick=\"$emit('miniGraphStageClick')\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./pipeline_stage_dropdown.vue?vue&type=template&id=438e18a5\"\nimport script from \"./pipeline_stage_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_stage_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-disclosure-dropdown',{attrs:{\"data-testid\":\"pipeline-mini-graph-dropdown\",\"aria-label\":_vm.stageAriaLabel(_vm.stage.name),\"fluid-width\":\"\"},on:{\"hidden\":_vm.onHideDropdown,\"shown\":_vm.onShowDropdown},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",value:(_vm.dropdownTooltipTitle),expression:\"dropdownTooltipTitle\",modifiers:{\"hover\":true}}],staticClass:\"!gl-rounded-full\",attrs:{\"data-testid\":\"pipeline-mini-graph-dropdown-toggle\",\"title\":_vm.dropdownTooltipTitle,\"variant\":\"link\"}},[_c('ci-icon',{attrs:{\"status\":_vm.stage.detailedStatus,\"show-tooltip\":false,\"use-link\":false}})],1)]},proxy:true},{key:\"header\",fn:function(){return [_c('div',{staticClass:\"gl-flex gl-min-h-8 gl-items-center gl-border-b-1 gl-border-b-dropdown !gl-p-4 gl-text-sm gl-font-bold gl-leading-1 gl-border-b-solid\",attrs:{\"data-testid\":\"pipeline-stage-dropdown-menu-title\"}},[_c('span',[_vm._v(_vm._s(_vm.dropdownHeaderText))])])]},proxy:true},{key:\"footer\",fn:function(){return [(!_vm.isLoading && _vm.isMergeTrain)?_c('div',{staticClass:\"gl-border-t gl-px-4 gl-py-3 gl-text-sm gl-text-subtle\",attrs:{\"data-testid\":\"merge-train-message\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.mergeTrainMessage)+\"\\n \")]):_vm._e()]},proxy:true}])},[_vm._v(\" \"),_vm._v(\" \"),(_vm.isLoading)?_c('div',{staticClass:\"gl-flex gl-gap-3 gl-px-4 gl-py-3\"},[_c('gl-loading-icon',{attrs:{\"size\":\"sm\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-leading-normal\"},[_vm._v(_vm._s(_vm.$options.i18n.loadingText))])],1):_c('ul',{staticClass:\"gl-m-0 gl-w-34 gl-overflow-y-auto gl-p-0\",attrs:{\"data-testid\":\"pipeline-mini-graph-dropdown-menu-list\"},on:{\"click\":function($event){$event.stopPropagation();}}},_vm._l((_vm.stageJobs),function(job){return _c('job-dropdown-item',{key:job.id,attrs:{\"dropdown-length\":_vm.stageJobs.length,\"job\":job},on:{\"jobActionExecuted\":function($event){return _vm.$emit('jobActionExecuted')}}})}),1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./pipeline_stages.vue?vue&type=template&id=6672dfcb\"\nimport script from \"./pipeline_stages.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_stages.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('div',{staticClass:\"gl-inline gl-align-middle\"},_vm._l((_vm.stages),function(stage){return _c('div',{key:stage.id,staticClass:\"pipeline-mini-graph-stage-container dropdown gl-my-1 gl-mr-2 gl-inline-flex gl-align-middle\"},[_c('pipeline-stage-dropdown',{attrs:{\"stage\":stage,\"is-merge-train\":_vm.isMergeTrain},on:{\"jobActionExecuted\":function($event){return _vm.$emit('jobActionExecuted')},\"miniGraphStageClick\":function($event){return _vm.$emit('miniGraphStageClick')}}})],1)}),0)\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!./pipeline_mini_graph.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!./pipeline_mini_graph.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { keepLatestDownstreamPipelines } from '~/ci/pipeline_details/utils/parsing_utils';\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\nimport { normalizeDownstreamPipelines, normalizeStages } from './utils/data_utils';\nimport DownstreamPipelines from './downstream_pipelines.vue';\nimport PipelineStages from './pipeline_stages.vue';\n/**\n * Renders the pipeline mini graph.\n * All REST data passed in is formatted to GraphQL.\n */\nexport default {\n name: 'PipelineMiniGraph',\n arrowStyles: ['arrow-icon gl-inline-block gl-mx-1 gl-text-subtle !gl-align-middle'],\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n CiIcon,\n DownstreamPipelines,\n GlIcon,\n PipelineStages,\n },\n props: {\n downstreamPipelines: {\n type: Array,\n required: false,\n default: () => [],\n },\n isMergeTrain: {\n type: Boolean,\n required: false,\n default: false,\n },\n pipelinePath: {\n type: String,\n required: false,\n default: '',\n },\n pipelineStages: {\n type: Array,\n required: true,\n },\n upstreamPipeline: {\n type: Object,\n required: false,\n default: () => {},\n },\n },\n emits: ['jobActionExecuted', 'miniGraphStageClick'],\n computed: {\n formattedDownstreamPipelines() {\n return normalizeDownstreamPipelines(this.downstreamPipelines);\n },\n formattedStages() {\n return normalizeStages(this.pipelineStages);\n },\n hasDownstreamPipelines() {\n return Boolean(this.latestDownstreamPipelines.length);\n },\n hasUpstreamPipeline() {\n return this.upstreamPipeline?.id;\n },\n latestDownstreamPipelines() {\n return keepLatestDownstreamPipelines(this.formattedDownstreamPipelines);\n },\n upstreamPipelineStatus() {\n return this.upstreamPipeline?.detailedStatus || this.upstreamPipeline?.details?.status;\n },\n upstreamTooltipText() {\n return `${this.upstreamPipeline?.project?.name} - ${this.upstreamPipelineStatus?.label}`;\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"pipeline-mini-graph\">\n <ci-icon\n v-if=\"hasUpstreamPipeline\"\n v-gl-tooltip.hover\n :title=\"upstreamTooltipText\"\n :aria-label=\"upstreamTooltipText\"\n :status=\"upstreamPipelineStatus\"\n :show-tooltip=\"false\"\n class=\"gl-align-middle\"\n data-testid=\"pipeline-mini-graph-upstream\"\n />\n <gl-icon\n v-if=\"hasUpstreamPipeline\"\n :class=\"$options.arrowStyles\"\n name=\"arrow-right\"\n data-testid=\"upstream-arrow-icon\"\n variant=\"subtle\"\n />\n <pipeline-stages\n :is-merge-train=\"isMergeTrain\"\n :stages=\"formattedStages\"\n @jobActionExecuted=\"$emit('jobActionExecuted')\"\n @miniGraphStageClick=\"$emit('miniGraphStageClick')\"\n />\n <gl-icon\n v-if=\"hasDownstreamPipelines\"\n :class=\"$options.arrowStyles\"\n name=\"arrow-right\"\n data-testid=\"downstream-arrow-icon\"\n variant=\"subtle\"\n />\n <downstream-pipelines\n v-if=\"hasDownstreamPipelines\"\n :pipelines=\"latestDownstreamPipelines\"\n :pipeline-path=\"pipelinePath\"\n data-testid=\"pipeline-mini-graph-downstream\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./pipeline_mini_graph.vue?vue&type=template&id=e9abb0ce\"\nimport script from \"./pipeline_mini_graph.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_mini_graph.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\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableLabelsUpdatedEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableLabelsUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Epic\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"labels\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Label\"},\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":495}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/label.fragment.graphql\\\"\\n\\nsubscription issuableLabelsUpdatedEE($issuableId: IssuableID!) {\\n issuableLabelsUpdated(issuableId: $issuableId) {\\n ... on Issue {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n ... on MergeRequest {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\n ... on Epic {\\n id\\n labels {\\n nodes {\\n ...Label\\n }\\n }\\n }\\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(\"~/graphql_shared/fragments/label.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[\"issuableLabelsUpdatedEE\"] = oneQuery(doc, \"issuableLabelsUpdatedEE\");\n \n","var baseDifference = require('./_baseDifference'),\n baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\nvar difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n});\n\nmodule.exports = difference;\n","import { s__ } from '~/locale';\nimport { mapToListboxItems } from 'ee/security_orchestration/utils';\n\nexport const SEVERITY = 'severity';\nexport const STATUS = 'status';\nexport const TYPE = 'type';\nexport const ATTRIBUTE = 'attribute';\nexport const AGE = 'age';\nexport const ALLOW_DENY = 'allow_deny';\nexport const DENIED = 'denied';\nexport const ALLOWED = 'allowed';\n\nexport const UNKNOWN_LICENSE = {\n value: 'unknown',\n text: s__('ScanResultPolicy|Unknown'),\n};\n\nexport const AGE_TOOLTIP_MAXIMUM_REACHED = 'maximumReached';\nexport const AGE_TOOLTIP_NO_PREVIOUSLY_EXISTING_VULNERABILITY = 'noPreviouslyExistingVulnerability';\n\nconst AGE_TOOLTIPS = {\n [AGE_TOOLTIP_MAXIMUM_REACHED]: s__('ScanResultPolicy|Only 1 age criteria is allowed'),\n [AGE_TOOLTIP_NO_PREVIOUSLY_EXISTING_VULNERABILITY]: s__(\n 'ScanResultPolicy|Age criteria can only be added for pre-existing vulnerabilities',\n ),\n};\n\nexport const FILTERS = [\n {\n text: s__('ScanResultPolicy|New status'),\n value: STATUS,\n tooltip: s__('ScanResultPolicy|Maximum of two status criteria allowed'),\n },\n {\n text: s__('ScanResultPolicy|New age'),\n value: AGE,\n tooltip: AGE_TOOLTIPS,\n },\n {\n text: s__('ScanResultPolicy|New attribute'),\n value: ATTRIBUTE,\n tooltip: s__('ScanResultPolicy|Maximum of two attribute criteria allowed'),\n },\n];\n\nexport const LICENCE_FILTERS = [\n {\n text: s__('ScanResultPolicy|License status'),\n value: STATUS,\n tooltip: s__('ScanResultPolicy|Maximum of one license status criteria allowed'),\n },\n {\n text: s__('ScanResultPolicy|License type'),\n value: TYPE,\n tooltip: s__('ScanResultPolicy|Maximum of one license type criteria allowed'),\n },\n {\n text: s__('ScanResultPolicy|Allowlist or Denylist'),\n value: ALLOW_DENY,\n tooltip: s__('ScanResultPolicy|You can specify either a denylist or an allowlist, not both.'),\n },\n];\n\nexport const ALLOWED_DENIED_OPTIONS = {\n [ALLOWED]: s__('ScanResultPolicy|Allowed'),\n [DENIED]: s__('ScanResultPolicy|Denied'),\n};\n\nexport const ALLOWED_DENIED_LISTBOX_ITEMS = mapToListboxItems(ALLOWED_DENIED_OPTIONS);\n\nexport const AGE_DAY = 'day';\nexport const AGE_WEEK = 'week';\nexport const AGE_MONTH = 'month';\nexport const AGE_YEAR = 'year';\n\nexport const AGE_INTERVALS = [\n { value: AGE_DAY, text: s__('ApprovalRule|day(s)') },\n { value: 'week', text: s__('ApprovalRule|week(s)') },\n { value: 'month', text: s__('ApprovalRule|month(s)') },\n { value: 'year', text: s__('ApprovalRule||year(s)') },\n];\n\nexport const VULNERABILITY_AGE_ALLOWED_KEYS = ['value', 'interval', 'operator'];\n\nexport const FILTERS_STATUS_INDEX = LICENCE_FILTERS.findIndex(({ value }) => value === STATUS);\n\nexport const FIX_AVAILABLE = 'fix_available';\nexport const FALSE_POSITIVE = 'false_positive';\n\nexport const VULNERABILITY_ATTRIBUTES = [\n { value: FIX_AVAILABLE, text: s__('ScanResultPolicy|Fix available') },\n { value: FALSE_POSITIVE, text: s__('ScanResultPolicy|False positive') },\n];\nexport const VULNERABILITY_ATTRIBUTE_OPERATORS = [\n { text: s__('ScanResultPolicy|Is'), value: 'true' },\n { text: s__('ScanResultPolicy|Is not'), value: 'false' },\n];\n\nexport const NEWLY_DETECTED = 'newly_detected';\nexport const PREVIOUSLY_EXISTING = 'previously_existing';\n\nexport const NEEDS_TRIAGE_PLURAL = s__('ApprovalRule|Need triage');\nexport const NEEDS_TRIAGE_SINGULAR = s__('ApprovalRule|Needs triage');\n\nexport const APPROVAL_VULNERABILITY_STATE_GROUPS = {\n [NEWLY_DETECTED]: s__('ApprovalRule|New'),\n [PREVIOUSLY_EXISTING]: s__('ApprovalRule|Previously existing'),\n};\n\nexport const APPROVAL_VULNERABILITY_STATES = {\n [NEWLY_DETECTED]: {\n new_needs_triage: NEEDS_TRIAGE_SINGULAR,\n new_dismissed: s__('ApprovalRule|Dismissed'),\n },\n [PREVIOUSLY_EXISTING]: {\n detected: s__('ApprovalRule|Needs triage'),\n confirmed: s__('ApprovalRule|Confirmed'),\n dismissed: s__('ApprovalRule|Dismissed'),\n resolved: s__('ApprovalRule|Resolved'),\n },\n};\n\nexport const DEFAULT_VULNERABILITY_STATES = Object.keys(\n APPROVAL_VULNERABILITY_STATES[NEWLY_DETECTED],\n);\n\nexport const APPROVAL_VULNERABILITY_STATES_FLAT = Object.values(\n APPROVAL_VULNERABILITY_STATES,\n).reduce((acc, states) => ({ ...acc, ...states }), {});\n","import GlBaseAnimatedIcon from './base_animated_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlAnimatedNotificationIcon',\n extends: GlBaseAnimatedIcon\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('svg',{class:_vm.iconStateClass,attrs:{\"aria-label\":_vm.ariaLabel,\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{staticClass:\"gl-animated-notifications-bottom-part\",attrs:{\"d\":\"M3.72 11.25L2.35519 12.837C2.21579 12.9991 2.33095 13.25 2.54473 13.25H13.4428C13.6586 13.25 13.773 12.995 13.6296 12.8338L12.22 11.25V7C12.22 6.06556 11.9184 5.20155 11.4073 4.5\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-notifications-top-part\",attrs:{\"d\":\"M3.72 11.75V7C3.72 4.65279 5.62279 2.75 7.97 2.75C9.38277 2.75 10.6345 3.43933 11.4073 4.5\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-notifications-line\",attrs:{\"d\":\"M1.75 14.25L14.2461 1.75391\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M6 13H10V13C10 14.1046 9.10457 15 8 15V15C6.89543 15 6 14.1046 6 13V13Z\",\"fill\":\"currentColor\"}}),_vm._v(\" \"),_c('path',{attrs:{\"d\":\"M7 2C7 1.44772 7.44772 1 8 1V1C8.55228 1 9 1.44772 9 2V2C9 2.55228 8.55228 3 8 3V3C7.44772 3 7 2.55228 7 2V2Z\",\"fill\":\"currentColor\"}})])};\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 render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',[_c('gl-button',{ref:\"popoverTrigger\",class:_vm.triggerClass,attrs:{\"variant\":\"link\",\"icon\":_vm.icon,\"aria-label\":_vm.ariaLabel}}),_vm._v(\" \"),_c('gl-popover',_vm._b({attrs:{\"target\":_vm.targetFn},scopedSlots:_vm._u([(_vm.options.title)?{key:\"title\",fn:function(){return [_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.options.title),expression:\"options.title\"}]})]},proxy:true}:null,{key:\"default\",fn:function(){return [_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.options.content),expression:\"options.content\"}]})]},proxy:true},_vm._l((Object.keys(_vm.$slots)),function(slot){return {key:slot,fn:function(){return [_vm._t(slot)]},proxy:true}})],null,true)},'gl-popover',_vm.options,false))],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!./help_popover.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!./help_popover.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlPopover } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\n\n/**\n * Render a button with a question mark icon\n * On hover shows a popover. The popover will be dismissed on mouseleave\n */\nexport default {\n name: 'HelpPopover',\n components: {\n GlButton,\n GlPopover,\n },\n directives: {\n SafeHtml,\n },\n props: {\n options: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n icon: {\n type: String,\n required: false,\n default: 'question-o',\n },\n triggerClass: {\n type: [String, Array, Object],\n required: false,\n default: '',\n },\n ariaLabel: {\n type: String,\n required: false,\n default: __('Help'),\n },\n },\n methods: {\n targetFn() {\n return this.$refs.popoverTrigger?.$el;\n },\n },\n};\n</script>\n<template>\n <span>\n <gl-button\n ref=\"popoverTrigger\"\n :class=\"triggerClass\"\n variant=\"link\"\n :icon=\"icon\"\n :aria-label=\"ariaLabel\"\n />\n <gl-popover :target=\"targetFn\" v-bind=\"options\">\n <template v-if=\"options.title\" #title>\n <span v-safe-html=\"options.title\"></span>\n </template>\n <template #default>\n <div v-safe-html=\"options.content\"></div>\n </template>\n <!-- eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots -->\n <template v-for=\"slot in Object.keys($slots)\" #[slot]>\n <slot :name=\"slot\"></slot>\n </template>\n </gl-popover>\n </span>\n</template>\n","import { render, staticRenderFns } from \"./help_popover.vue?vue&type=template&id=7a170f82\"\nimport script from \"./help_popover.vue?vue&type=script&lang=js\"\nexport * from \"./help_popover.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 { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';\nimport { __, s__ } from '~/locale';\n\nexport const TYPE_ACTIVITY = 'activity';\nexport const TYPE_COMMENT = 'comment';\nexport const TYPE_DESIGN = 'design';\nexport const TYPE_SNIPPET = 'snippet';\n\nexport const BULK_IMPORT_STATIC_ITEMS = {\n badges: __('Badge'),\n boards: s__('Boards|Board'),\n epics: __('Epic'),\n issues: __('Issue'),\n labels: __('Label'),\n iterations: __('Iteration'),\n iterations_cadences: s__('Iterations|Iteration cadence'),\n members: __('Member'),\n merge_requests: __('Merge request'),\n milestones: __('Milestone'),\n namespace_settings: s__('GroupSettings|Namespace setting'),\n project: __('Project'),\n self: __('Group'),\n auto_devops: __('Auto DevOps'),\n ci_pipelines: __('CI pipeline'),\n container_expiration_policy: __('Container expiration policy'),\n design: __('Design'),\n project_feature: __('Project feature'),\n protected_branches: __('Protected Branch'),\n push_rule: __('Push rule'),\n repository: __('Repository'),\n service_desk_setting: __('Service Desk'),\n vulnerabilities: __('Vulnerabilities'),\n commit_notes: __('Commit notes'),\n};\n\nconst STATISTIC_ITEMS = {\n diff_note: __('Diff notes'),\n issue: __('Issues'),\n issue_attachment: s__('GithubImporter|Issue attachments'),\n issue_event: __('Issue events'),\n label: __('Labels'),\n lfs_object: __('LFS objects'),\n merge_request_attachment: s__('GithubImporter|PR attachments'),\n milestone: __('Milestones'),\n note: __('Notes'),\n note_attachment: s__('GithubImporter|Note attachments'),\n protected_branch: __('Protected branches'),\n collaborator: s__('GithubImporter|Collaborators'),\n pull_request: s__('GithubImporter|Pull requests'),\n pull_request_merged_by: s__('GithubImporter|PR mergers'),\n pull_request_review: s__('GithubImporter|PR reviews'),\n pull_request_review_request: s__('GithubImporter|PR reviewers'),\n release: __('Releases'),\n release_attachment: s__('GithubImporter|Release attachments'),\n};\n\n// support both camel case and snake case versions\nObject.assign(STATISTIC_ITEMS, convertObjectPropsToCamelCase(STATISTIC_ITEMS));\n\nexport { STATISTIC_ITEMS };\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"autoMergeEnabledEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"autoMergeEnabled\"},\"directives\":[]}]}},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeTrainCarCount\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":338}};\n doc.loc.source = {\"body\":\"#import \\\"~/vue_merge_request_widget/queries/states/auto_merge_enabled.fragment.graphql\\\"\\n#import \\\"./merge_train_car_count.fragment.graphql\\\"\\n\\nquery autoMergeEnabledEE($projectPath: ID!, $iid: String!) {\\n project(fullPath: $projectPath) {\\n id\\n mergeRequest(iid: $iid) {\\n ...autoMergeEnabled\\n }\\n ...MergeTrainCarCount\\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(\"~/vue_merge_request_widget/queries/states/auto_merge_enabled.fragment.graphql\").definitions));\ndoc.definitions = doc.definitions.concat(unique(require(\"./merge_train_car_count.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[\"autoMergeEnabledEE\"] = oneQuery(doc, \"autoMergeEnabledEE\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestEventTypeQuery\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"pipelines\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"first\"},\"value\":{\"kind\":\"IntValue\",\"value\":\"1\"}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestEventType\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":270}};\n doc.loc.source = {\"body\":\"query mergeRequestEventTypeQuery($projectPath: ID!, $iid: String!) {\\n project(fullPath: $projectPath) {\\n id\\n mergeRequest(iid: $iid) {\\n id\\n pipelines(first: 1) {\\n nodes {\\n id\\n mergeRequestEventType\\n }\\n }\\n }\\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[\"mergeRequestEventTypeQuery\"] = oneQuery(doc, \"mergeRequestEventTypeQuery\");\n \n","// These utility methods come from the Gitlab repo; app/assets/javascripts/lib/utils/datetime_utility.js\n\n/**\n * This method allows you to create new Date instance from existing\n * date instance without keeping the reference.\n *\n * @param {Date} date\n */\nconst newDate = date => date instanceof Date ? new Date(date.getTime()) : new Date();\n\n/**\n * Computes the difference between 2 date objects.\n *\n * @param {Date} a the start date\n * @param {Date} b the end date\n * @example\n * // returns 5\n * getDayDifference(new Date('2020-08-10'), new Date('2020-08-15'));\n * @returns {Number} Number of days between the 2 dates\n */\nconst getDayDifference = (a, b) => {\n const millisecondsPerDay = 1000 * 60 * 60 * 24;\n const date1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());\n const date2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());\n return Math.floor((date2 - date1) / millisecondsPerDay);\n};\n\n/**\n * Subtracts a given number of days from a given date and returns the new date.\n *\n * @param {Date} date the date that we will substract days from\n * @param {Number} daysInPast number of days that are subtracted from a given date\n * @example\n * // returns Mon Aug 10 2020 00:00:00\n * getDateInPast(new Date('2020-08-15'), 5);\n * @returns {Date} Date in past as Date object\n */\nconst getDateInPast = (date, daysInPast) => new Date(newDate(date).setDate(date.getDate() - daysInPast));\n\n/**\n * Adds a given number of days to a given date and returns the new date.\n *\n * @param {Date} date the date that we will add days to\n * @param {Number} daysInFuture number of days that are added to a given date\n * @example\n * // returns Mon Aug 15 2020 00:00:00\n * getDateInFuture(new Date('2020-08-10'), 5);\n * @returns {Date} Date in future as Date object\n */\nconst getDateInFuture = (date, daysInFuture) => new Date(newDate(date).setDate(date.getDate() + daysInFuture));\n\n/**\n * Are the given two dates equal\n *\n * @param {Date} date1\n * @param {Date} date2\n * @returns {Boolean}\n */\nconst areDatesEqual = (date1, date2) => Boolean(date1 && date2 && new Date(date1).getTime() === new Date(date2).getTime());\n\nexport { areDatesEqual, getDateInFuture, getDateInPast, getDayDifference, newDate };\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"configureSecretDetection\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ConfigureSecretDetectionInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"configureSecretDetection\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"successPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":153}};\n doc.loc.source = {\"body\":\"mutation configureSecretDetection($input: ConfigureSecretDetectionInput!) {\\n configureSecretDetection(input: $input) {\\n successPath\\n errors\\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[\"configureSecretDetection\"] = oneQuery(doc, \"configureSecretDetection\");\n \n","import GlBaseAnimatedIcon from './base_animated_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlAnimatedTodoIcon',\n extends: GlBaseAnimatedIcon\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('svg',{class:_vm.iconStateClass,attrs:{\"aria-label\":_vm.ariaLabel,\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('path',{staticClass:\"gl-animated-todo-box\",attrs:{\"d\":\"M14.25 6.75L14.25 13C14.25 13.6904 13.6904 14.25 13 14.25L3 14.25C2.30964 14.25 1.75 13.6904 1.75 13L1.75 3C1.75 2.30964 2.30964 1.75 3 1.75L13.25 1.75\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-todo-plus-line\",attrs:{\"d\":\"M10.75 3L15.25 3\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-todo-plus-line\",attrs:{\"d\":\"M13 5.25L13 0.75\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-todo-check\",attrs:{\"d\":\"M6.75 7.76299L9.15312 10.2469L15.25 4.15\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\",\"stroke-linejoin\":\"round\"}})])};\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","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateIssueLocked\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueSetLockedInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issueSetLocked\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussionLocked\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":160}};\n doc.loc.source = {\"body\":\"mutation updateIssueLocked($input: IssueSetLockedInput!) {\\n issueSetLocked(input: $input) {\\n issue {\\n id\\n discussionLocked\\n }\\n errors\\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[\"updateIssueLocked\"] = oneQuery(doc, \"updateIssueLocked\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.displayAsText)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:({ disabled: _vm.disableTooltip }),expression:\"{ disabled: disableTooltip }\"}],staticClass:\"gl-inline-flex gl-items-center\",class:[_vm.statusColor, _vm.textSizeClass, !_vm.disableTooltip ? 'gl-cursor-help' : undefined],attrs:{\"data-testid\":\"status-text\",\"title\":_vm.__('Health status')}},[_c('gl-icon',{staticClass:\"gl-mr-2\",attrs:{\"size\":16,\"name\":_vm.statusIcon}}),_vm._v(_vm._s(_vm.statusText))],1):_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-font-bold\",attrs:{\"title\":_vm.__('Health status'),\"variant\":_vm.statusClass}},[_vm._v(\"\\n \"+_vm._s(_vm.statusText)+\"\\n\")])\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!./issue_health_status.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!./issue_health_status.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport {\n healthStatusTextMap,\n healthStatusVariantMap,\n healthStatusIconMap,\n healthStatusColorMap,\n} from 'ee/sidebar/constants';\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlBadge,\n GlIcon,\n },\n props: {\n healthStatus: {\n type: String,\n required: true,\n validator: (value) => Object.keys(healthStatusTextMap).includes(value),\n },\n displayAsText: {\n type: Boolean,\n required: false,\n },\n textSize: {\n type: String,\n required: false,\n default: 'base',\n validator: (value) => ['base', 'sm'].includes(value),\n },\n disableTooltip: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n statusText() {\n return healthStatusTextMap[this.healthStatus];\n },\n statusClass() {\n return healthStatusVariantMap[this.healthStatus];\n },\n statusIcon() {\n return healthStatusIconMap[this.healthStatus];\n },\n statusColor() {\n return healthStatusColorMap[this.healthStatus];\n },\n textSizeClass() {\n switch (this.textSize) {\n case 'sm':\n return 'gl-text-sm';\n case 'base':\n default:\n return 'gl-text-base';\n }\n },\n },\n};\n</script>\n\n<template>\n <span\n v-if=\"displayAsText\"\n v-gl-tooltip=\"{ disabled: disableTooltip }\"\n data-testid=\"status-text\"\n :title=\"__('Health status')\"\n class=\"gl-inline-flex gl-items-center\"\n :class=\"[statusColor, textSizeClass, !disableTooltip ? 'gl-cursor-help' : undefined]\"\n ><gl-icon class=\"gl-mr-2\" :size=\"16\" :name=\"statusIcon\" />{{ statusText }}</span\n >\n <gl-badge\n v-else\n v-gl-tooltip\n class=\"gl-font-bold\"\n :title=\"__('Health status')\"\n :variant=\"statusClass\"\n >\n {{ statusText }}\n </gl-badge>\n</template>\n","import { render, staticRenderFns } from \"./issue_health_status.vue?vue&type=template&id=a58aa410\"\nimport script from \"./issue_health_status.vue?vue&type=script&lang=js\"\nexport * from \"./issue_health_status.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 basePropertyOf = require('./_basePropertyOf');\n\n/** Used to map Latin Unicode letters to basic Latin letters. */\nvar deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n};\n\n/**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\nvar deburrLetter = basePropertyOf(deburredLetters);\n\nmodule.exports = deburrLetter;\n","'use strict';\n\nvar Type = require('../type');\n\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlPairs(data) {\n if (data === null) return true;\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n keys = Object.keys(pair);\n\n if (keys.length !== 1) return false;\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return true;\n}\n\nfunction constructYamlPairs(data) {\n if (data === null) return [];\n\n var index, length, pair, keys, result,\n object = data;\n\n result = new Array(object.length);\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n\n keys = Object.keys(pair);\n\n result[index] = [ keys[0], pair[keys[0]] ];\n }\n\n return result;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:pairs', {\n kind: 'sequence',\n resolve: resolveYamlPairs,\n construct: constructYamlPairs\n});\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueEpicMutation\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAttribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetEpic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasParent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":345}};\n doc.loc.source = {\"body\":\"mutation projectIssueEpicMutation($fullPath: ID!, $iid: String!, $attributeId: EpicID) {\\n issuableSetAttribute: issueSetEpic(\\n input: { projectPath: $fullPath, iid: $iid, epicId: $attributeId }\\n ) {\\n errors\\n issuable: issue {\\n id\\n hasParent\\n attribute: epic {\\n title\\n id\\n state\\n }\\n }\\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[\"projectIssueEpicMutation\"] = oneQuery(doc, \"projectIssueEpicMutation\");\n \n","import truncate from 'lodash/truncate';\nimport get from 'lodash/get';\nimport { avatarsInlineSizeOptions } from '../../../utils/constants';\nimport GlAvatar from '../avatar/avatar';\nimport GlTooltip from '../tooltip/tooltip';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'AvatarsInline',\n components: {\n GlAvatar,\n GlTooltip\n },\n props: {\n avatars: {\n type: Array,\n required: true\n },\n maxVisible: {\n type: Number,\n required: true\n },\n avatarSize: {\n type: Number,\n required: true,\n validator: value => avatarsInlineSizeOptions.includes(value)\n },\n collapsed: {\n type: Boolean,\n required: false,\n default: false\n },\n badgeSrOnlyText: {\n type: String,\n required: true\n },\n badgeTooltipProp: {\n type: String,\n required: false,\n default: ''\n },\n badgeTooltipMaxChars: {\n type: Number,\n required: false,\n default: null\n }\n },\n computed: {\n hiddenAvatars() {\n return this.avatars.slice(this.maxVisible);\n },\n collapsable() {\n return this.hiddenAvatars.length > 0;\n },\n visibleAvatars() {\n return this.collapsed ? this.avatars.slice(0, this.maxVisible) : this.avatars;\n },\n badgeSize() {\n return {\n 16: 'sm',\n 24: 'md',\n 32: 'lg'\n }[this.avatarSize] || 'lg';\n },\n badgeLabel() {\n return `+${this.hiddenAvatars.length}`;\n },\n badgeTooltipTitle() {\n if (!this.badgeTooltipProp) {\n return '';\n }\n const tooltipTitle = this.hiddenAvatars.map(avatar => get(avatar, this.badgeTooltipProp, '').trim()).join(', ');\n\n // truncate will append '...'\n // we need to take these extra 3 characters into account in badgeTooltipMaxChars\n return this.badgeTooltipMaxChars ? truncate(tooltipTitle, {\n length: this.badgeTooltipMaxChars\n }) : tooltipTitle;\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('div',{staticClass:\"gl-avatars-inline\",class:(\"gl-avatars-inline-\" + _vm.badgeSize)},[_vm._l((_vm.visibleAvatars),function(avatar,index){return _c('div',{key:index,staticClass:\"gl-avatars-inline-child\"},[_vm._t(\"avatar\",function(){return [_c('gl-avatar',_vm._b({attrs:{\"size\":_vm.avatarSize}},'gl-avatar',avatar,false))]},{\"avatar\":avatar})],2)}),_vm._v(\" \"),(_vm.collapsed && _vm.collapsable)?_c('div',{staticClass:\"gl-avatars-inline-child\"},[(_vm.badgeTooltipProp)?_c('gl-tooltip',{attrs:{\"target\":function () { return _vm.$refs.badge; }}},[_vm._v(\"\\n \"+_vm._s(_vm.badgeTooltipTitle)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('span',{ref:\"badge\",class:['gl-avatars-inline-badge', _vm.badgeSize],attrs:{\"data-testid\":\"collapsed-avatars-badge\",\"aria-hidden\":\"true\"}},[_vm._v(\"\\n \"+_vm._s(_vm.badgeLabel)+\"\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"gl-sr-only\",attrs:{\"data-testid\":\"badge-sr-only-text\"}},[_vm._v(_vm._s(_vm.badgeSrOnlyText))])],1):_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","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueIterationsAliased\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationState\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attributes\"},\"name\":{\"kind\":\"Name\",\"value\":\"iterations\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"EnumValue\",\"value\":\"TITLE\"},{\"kind\":\"EnumValue\",\"value\":\"CADENCE_TITLE\"}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationFragment\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":341}};\n doc.loc.source = {\"body\":\"#import \\\"./iteration.fragment.graphql\\\"\\n\\nquery issueIterationsAliased($fullPath: ID!, $title: String, $state: IterationState) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n attributes: iterations(search: $title, in: [TITLE, CADENCE_TITLE], state: $state) {\\n nodes {\\n ...IterationFragment\\n state\\n }\\n }\\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(\"./iteration.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[\"issueIterationsAliased\"] = oneQuery(doc, \"issueIterationsAliased\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestPrepared\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestMergeStatusUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"preparedAt\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":186}};\n doc.loc.source = {\"body\":\"subscription mergeRequestPrepared($issuableId: IssuableID!) {\\n mergeRequestMergeStatusUpdated(issuableId: $issuableId) {\\n ... on MergeRequest {\\n id\\n preparedAt\\n }\\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[\"mergeRequestPrepared\"] = oneQuery(doc, \"mergeRequestPrepared\");\n \n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEsAAABLCAAAAAAdJSU2AAACNElEQVR4AdXYBa7jMBCA4b3/JZahzIkjp2qt+BWUWnG5ln2XxaJJb2b5F2ukL4wvzK/rP7bUcbf92u6oftLSe1ldk8efsfaVeEjusZZeC6e1RllaCk/yG6ag1lZ4WwPX69uyD6tAe/g2ipAlNMRS37awDLaFrpcMWxXQOi0jnWCWjFkSZomYJWDWKmatYNZyEWkJsvQimoZYah5NgdaLxagCtF6GRy0DshZPkeYwS/KIJWGWYjwYUzDLxCwDtJ54OKglimBLqHWahii2g1pmHLLGBmwVoRjcKlmgOdw65H5qKuGWCVi5Qlhs6m1sENZi4q3AWNvca5UYy2RjT/SAsiZey6CsIvc0wVlV5lJ0ibPMyLUGCmlxQq0IM0hLdWyro7CWEc3sXsqaK4O2zLxOsmtpfW5Q1u68ZrVmepaaNXEewawtI9X5Xl3U3n1qND6+rfPzvqoIWz/fklNCSLY153YV53J/XUxGCJnKZ1lajsn3/Ffegf6Y5pV2LUsSNL2UHzxUfh3TlYpZqqTpXZm0KZk9zJcqaEmaWPHDw0pxe05K7bWOLHFLWXVetqpYmrjle4+1y0aBaF4UOQ1NU+lYezJClkjLUnSEjqhH6zjAW4OjtY39Ibq+sawUb6W2RQfoqG0VeKuwrRJvlba17faRdbe2pTtYq6Nty/S7yAbGsQjWIq41wVoT1+IdZNy1djUcVdu5lklQWC0xHkt1X31qNEE1Pr3qKv/9XiSNj6Aaifj3/69+AYujsR/MvkpZAAAAAElFTkSuQmCC\"","var baseFlatten = require('./_baseFlatten'),\n baseRest = require('./_baseRest'),\n baseUniq = require('./_baseUniq'),\n isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\nvar union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n});\n\nmodule.exports = union;\n","// eslint-disable-next-line no-restricted-imports\nimport { mapGetters } from 'vuex';\n\nexport default {\n computed: {\n ...mapGetters(['getNoteableDataByProp']),\n isProjectArchived() {\n return this.getNoteableDataByProp('is_project_archived');\n },\n archivedProjectDocsPath() {\n return this.getNoteableDataByProp('archived_project_docs_path');\n },\n lockedIssueDocsPath() {\n return this.getNoteableDataByProp('locked_discussion_docs_path');\n },\n },\n methods: {\n isLocked(issue) {\n return Boolean(issue.discussion_locked);\n },\n },\n};\n","// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport { getDraftReplyFormData, getDraftFormData } from '~/batch_comments/utils';\nimport {\n TEXT_DIFF_POSITION_TYPE,\n IMAGE_DIFF_POSITION_TYPE,\n FILE_DIFF_POSITION_TYPE,\n} from '~/diffs/constants';\nimport { createAlert } from '~/alert';\nimport { clearDraft } from '~/lib/utils/autosave';\nimport { sprintf } from '~/locale';\nimport { formatLineRange } from '~/notes/components/multiline_comment_utils';\nimport { SAVING_THE_COMMENT_FAILED, SOMETHING_WENT_WRONG } from '~/diffs/i18n';\n\nexport default {\n computed: {\n ...mapState({\n noteableData: (state) => state.notes.noteableData,\n notesData: (state) => state.notes.notesData,\n withBatchComments: (state) => state.batchComments?.withBatchComments,\n }),\n ...mapGetters('diffs', ['getDiffFileByHash']),\n ...mapGetters('batchComments', ['shouldRenderDraftRowInDiscussion', 'draftForDiscussion']),\n ...mapState('diffs', ['commit', 'showWhitespace']),\n },\n methods: {\n ...mapActions('diffs', ['cancelCommentForm', 'toggleFileCommentForm']),\n ...mapActions('batchComments', ['addDraftToReview', 'saveDraft', 'insertDraftIntoDrafts']),\n // eslint-disable-next-line max-params\n addReplyToReview(noteText, isResolving, parentElement, errorCallback) {\n const postData = getDraftReplyFormData({\n in_reply_to_discussion_id: this.discussion.reply_id,\n target_type: this.getNoteableData.targetType,\n notesData: this.notesData,\n draft_note: {\n note: noteText,\n resolve_discussion: isResolving,\n },\n });\n\n if (this.discussion.for_commit) {\n postData.note_project_id = this.discussion.project_id;\n }\n\n this.saveDraft(postData)\n .then(() => {\n this.isReplying = false;\n this.handleClearForm(this.discussion.line_code);\n })\n .catch((response) => {\n const reason = response?.data?.errors;\n const errorMessage = reason\n ? sprintf(SAVING_THE_COMMENT_FAILED, { reason })\n : SOMETHING_WENT_WRONG;\n\n createAlert({\n message: errorMessage,\n parent: parentElement,\n });\n\n errorCallback();\n });\n },\n // eslint-disable-next-line max-params\n addToReview(note, positionType = null, parentElement, errorCallback) {\n const lineRange =\n (this.line && this.commentLineStart && formatLineRange(this.commentLineStart, this.line)) ||\n {};\n const position =\n positionType ||\n (this.diffFileCommentForm ? IMAGE_DIFF_POSITION_TYPE : TEXT_DIFF_POSITION_TYPE);\n const diffFile = this.diffFile || this.file;\n const postData = getDraftFormData({\n note,\n notesData: this.notesData,\n noteableData: this.noteableData,\n noteableType: this.noteableType,\n noteTargetLine: this.noteTargetLine,\n diffViewType: this.diffViewType,\n diffFile,\n linePosition: this.position,\n positionType: position,\n ...this.diffFileCommentForm,\n lineRange,\n showWhitespace: this.showWhitespace,\n });\n\n const diffFileHeadSha = this.commit && diffFile?.diff_refs?.head_sha;\n\n postData.data.note.commit_id = diffFileHeadSha || null;\n\n return this.saveDraft(postData)\n .then(() => {\n if (position === IMAGE_DIFF_POSITION_TYPE) {\n this.closeDiffFileCommentForm(this.diffFileHash);\n } else if (this.line?.line_code) {\n this.handleClearForm(this.line.line_code);\n } else if (position === FILE_DIFF_POSITION_TYPE) {\n this.toggleFileCommentForm(diffFile.file_path);\n }\n })\n .catch((response) => {\n const reason = response?.data?.errors;\n const errorMessage = reason\n ? sprintf(SAVING_THE_COMMENT_FAILED, { reason })\n : SOMETHING_WENT_WRONG;\n\n createAlert({\n message: errorMessage,\n parent: parentElement,\n });\n\n errorCallback();\n });\n },\n handleClearForm(lineCode) {\n this.cancelCommentForm({\n lineCode,\n fileHash: this.diffFileHash,\n });\n this.$nextTick(() => {\n if (this.autosaveKey) {\n clearDraft(this.autosaveKey);\n } else {\n // TODO: remove the following after replacing the autosave mixin\n // https://gitlab.com/gitlab-org/gitlab-foss/issues/60587\n this.resetAutoSave();\n }\n });\n },\n showDraft(replyId) {\n return this.withBatchComments && this.shouldRenderDraftRowInDiscussion(replyId);\n },\n },\n};\n","var asciiWords = require('./_asciiWords'),\n hasUnicodeWord = require('./_hasUnicodeWord'),\n toString = require('./toString'),\n unicodeWords = require('./_unicodeWords');\n\n/**\n * Splits `string` into an array of its words.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {RegExp|string} [pattern] The pattern to match words.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the words of `string`.\n * @example\n *\n * _.words('fred, barney, & pebbles');\n * // => ['fred', 'barney', 'pebbles']\n *\n * _.words('fred, barney, & pebbles', /[^, ]+/g);\n * // => ['fred', 'barney', '&', 'pebbles']\n */\nfunction words(string, pattern, guard) {\n string = toString(string);\n pattern = guard ? undefined : pattern;\n\n if (pattern === undefined) {\n return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);\n }\n return string.match(pattern) || [];\n}\n\nmodule.exports = words;\n","import { translate } from '../../../utils/i18n';\nimport { progressBarVariantOptions } from '../../../utils/constants';\nimport { toFloat } from '../../../utils/number_utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst backgroundClasses = {\n [progressBarVariantOptions.primary]: 'gl-progress-bar-primary',\n [progressBarVariantOptions.success]: 'gl-progress-bar-success',\n [progressBarVariantOptions.danger]: 'gl-progress-bar-danger',\n [progressBarVariantOptions.warning]: 'gl-progress-bar-warning'\n};\nvar script = {\n name: 'GlProgressBar',\n props: {\n ariaLabel: {\n type: String,\n required: false,\n default: translate('GlProgressBar.ariaLabel', 'Progress bar')\n },\n value: {\n type: [Number, String],\n required: false,\n default: 0\n },\n variant: {\n type: String,\n required: false,\n default: 'primary',\n validator: value => Object.keys(progressBarVariantOptions).includes(value)\n },\n max: {\n type: [Number, String],\n required: false,\n default: 100\n },\n height: {\n type: String,\n required: false,\n default: null\n }\n },\n computed: {\n progressHeight() {\n return {\n height: this.height\n };\n },\n computedValue() {\n return toFloat(this.value, 0);\n },\n computedMax() {\n const max = toFloat(this.max, 100);\n return max > 0 ? max : 100;\n },\n progressBarStyles() {\n return {\n transform: `scaleX(${this.computedValue / this.computedMax})`\n };\n },\n classes() {\n return ['gl-progress', backgroundClasses[this.variant]];\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('div',{staticClass:\"gl-progress-bar progress\",style:(_vm.progressHeight)},[_c('div',{class:_vm.classes,style:(_vm.progressBarStyles),attrs:{\"role\":\"progressbar\",\"aria-label\":_vm.ariaLabel,\"aria-valuemin\":\"0\",\"aria-valuemax\":String(_vm.computedMax),\"aria-valuenow\":_vm.computedValue}})])};\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 createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"image-viewer\"}},[_c('div',{staticClass:\"position-relative\",class:_vm.innerCssClasses},[_c('img',{ref:\"contentImg\",attrs:{\"src\":_vm.safePath},on:{\"load\":_vm.onImgLoad}}),_vm._v(\" \"),_vm._t(\"image-overlay\",null,{\"renderedWidth\":_vm.renderedWidth,\"renderedHeight\":_vm.renderedHeight})],2),_vm._v(\" \"),(_vm.renderInfo)?_c('p',{staticClass:\"image-info\"},[(_vm.hasFileSize)?[_vm._v(\"\\n \"+_vm._s(_vm.fileSizeReadable)+\"\\n \")]:_vm._e(),_vm._v(\" \"),(_vm.hasFileSize && _vm.hasDimensions)?[_vm._v(\" | \")]:_vm._e(),_vm._v(\" \"),(_vm.hasDimensions)?[_c('strong',[_vm._v(_vm._s(_vm.s__('ImageViewerDimensions|W')))]),_vm._v(\": \"+_vm._s(_vm.width)+\" | \"),_c('strong',[_vm._v(_vm._s(_vm.s__('ImageViewerDimensions|H')))]),_vm._v(\": \"+_vm._s(_vm.height)+\"\\n \")]:_vm._e()],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { throttle } from 'lodash';\nimport { numberToHumanSize } from '~/lib/utils/number_utils';\nimport { encodeSaferUrl } from '~/lib/utils/url_utility';\n\nconst BLOB_PREFIX = 'blob:';\n\nexport default {\n props: {\n path: {\n type: String,\n required: true,\n },\n fileSize: {\n type: Number,\n required: false,\n default: 0,\n },\n renderInfo: {\n type: Boolean,\n default: true,\n required: false,\n },\n innerCssClasses: {\n type: [Array, Object, String],\n required: false,\n default: '',\n },\n },\n data() {\n return {\n width: 0,\n height: 0,\n renderedWidth: 0,\n renderedHeight: 0,\n };\n },\n computed: {\n fileSizeReadable() {\n return numberToHumanSize(this.fileSize);\n },\n\n hasFileSize() {\n return this.fileSize > 0;\n },\n hasDimensions() {\n return this.width && this.height;\n },\n safePath() {\n return this.path.startsWith(BLOB_PREFIX) ? this.path : encodeSaferUrl(this.path);\n },\n },\n beforeDestroy() {\n window.removeEventListener('resize', this.resizeThrottled, false);\n },\n mounted() {\n // The onImgLoad may have happened before the control was actually mounted\n this.onImgLoad();\n this.resizeThrottled = throttle(this.onImgLoad, 400);\n window.addEventListener('resize', this.resizeThrottled, false);\n },\n methods: {\n onImgLoad() {\n requestIdleCallback(this.calculateImgSize, { timeout: 1000 });\n },\n calculateImgSize() {\n const { contentImg } = this.$refs;\n\n if (contentImg) {\n this.width = contentImg.naturalWidth;\n this.height = contentImg.naturalHeight;\n\n this.$nextTick(() => {\n this.renderedWidth = contentImg.clientWidth;\n this.renderedHeight = contentImg.clientHeight;\n\n this.$emit('imgLoaded', {\n width: this.width,\n height: this.height,\n renderedWidth: this.renderedWidth,\n renderedHeight: this.renderedHeight,\n });\n });\n }\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"image-viewer\">\n <div :class=\"innerCssClasses\" class=\"position-relative\">\n <img ref=\"contentImg\" :src=\"safePath\" @load=\"onImgLoad\" />\n <slot\n name=\"image-overlay\"\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n ></slot>\n </div>\n <p v-if=\"renderInfo\" class=\"image-info\">\n <template v-if=\"hasFileSize\">\n {{ fileSizeReadable }}\n </template>\n <template v-if=\"hasFileSize && hasDimensions\"> | </template>\n <template v-if=\"hasDimensions\">\n <strong>{{ s__('ImageViewerDimensions|W') }}</strong\n >: {{ width }} | <strong>{{ s__('ImageViewerDimensions|H') }}</strong\n >: {{ height }}\n </template>\n </p>\n </div>\n</template>\n","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!./image_viewer.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!./image_viewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./image_viewer.vue?vue&type=template&id=bc7de830\"\nimport script from \"./image_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./image_viewer.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","/** Used to match words composed of alphanumeric characters. */\nvar reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n/**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction asciiWords(string) {\n return string.match(reAsciiWord) || [];\n}\n\nmodule.exports = asciiWords;\n","import defaultView from \"../window\";\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, value, priority) {\n return function() {\n this.style.setProperty(name, value, priority);\n };\n}\n\nfunction styleFunction(name, value, priority) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.style.removeProperty(name);\n else this.style.setProperty(name, v, priority);\n };\n}\n\nexport default function(name, value, priority) {\n return arguments.length > 1\n ? this.each((value == null\n ? styleRemove : typeof value === \"function\"\n ? styleFunction\n : styleConstant)(name, value, priority == null ? \"\" : priority))\n : styleValue(this.node(), name);\n}\n\nexport function styleValue(node, name) {\n return node.style.getPropertyValue(name)\n || defaultView(node).getComputedStyle(node, null).getPropertyValue(name);\n}\n","exports = module.exports = require(\"../../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\n/* TODO: Use max-height prop when gitlab-ui got updated.\\nSee https://gitlab.com/gitlab-org/gitlab-ui/-/issues/2374 */\\n[data-v-c3da8bce] .gl-new-dropdown-inner {\\n max-height: 310px !important;\\n}\\n\", \"\"]);\n\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"md-area-wrapper gl-rounded-lg !gl-px-0\"},[(!_vm.isDefaultEditorEnabled)?_c('local-storage-sync',{attrs:{\"value\":_vm.editingMode,\"as-string\":\"\",\"storage-key\":_vm.$options.EDITING_MODE_KEY},on:{\"input\":_vm.onEditingModeRestored}}):_vm._e(),_vm._v(\" \"),(_vm.alert)?_c('gl-alert',{staticClass:\"gl-mb-4\",attrs:{\"variant\":_vm.alert.variant,\"primary-button-text\":_vm.alert.primaryButtonText,\"secondary-button-text\":_vm.alert.secondaryButtonText},on:{\"primaryAction\":_vm.alert.primaryAction,\"secondaryAction\":_vm.alert.secondaryAction,\"dismiss\":_vm.alert.dismiss}},[_vm._v(\"\\n \"+_vm._s(_vm.alert.message)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(!_vm.isContentEditorActive)?_c('markdown-field',_vm._b({ref:\"markdownField\",attrs:{\"data-testid\":\"markdown-field\",\"markdown-preview-path\":_vm.renderMarkdownPath,\"can-attach-file\":!_vm.disableAttachments,\"can-suggest\":_vm.codeSuggestionsConfig.canSuggest,\"line\":_vm.codeSuggestionsConfig.line,\"lines\":_vm.codeSuggestionsConfig.lines,\"show-suggest-popover\":_vm.codeSuggestionsConfig.showPopover,\"textarea-value\":_vm.markdown,\"uploads-path\":_vm.uploadsPath,\"enable-autocomplete\":_vm.enableAutocomplete,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"markdown-docs-path\":_vm.markdownDocsPath,\"supports-quick-actions\":_vm.supportsQuickActions,\"show-content-editor-switcher\":_vm.enableContentEditor,\"drawio-enabled\":_vm.drawioEnabled,\"restricted-tool-bar-items\":_vm.markdownFieldRestrictedToolBarItems,\"remove-border\":true},on:{\"enableContentEditor\":function($event){return _vm.onEditingModeChange('contentEditor')},\"handleSuggestDismissed\":() => _vm.$emit('handleSuggestDismissed')},scopedSlots:_vm._u([{key:\"header-buttons\",fn:function(){return [_vm._t(\"header-buttons\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true},{key:\"textarea\",fn:function(){return [_c('textarea',_vm._b({ref:\"textarea\",staticClass:\"note-textarea js-gfm-input markdown-area\",attrs:{\"dir\":\"auto\",\"data-can-suggest\":_vm.codeSuggestionsConfig.canSuggest,\"data-noteable-type\":_vm.noteableType,\"data-supports-quick-actions\":_vm.supportsQuickActions,\"data-testid\":_vm.formFieldProps['data-testid'] || 'markdown-editor-form-field',\"disabled\":_vm.disabled},domProps:{\"value\":_vm.markdown},on:{\"input\":_vm.updateMarkdownFromMarkdownField,\"keydown\":function($event){return _vm.$emit('keydown', $event)}}},'textarea',_vm.formFieldProps,false))]},proxy:true}],null,true)},'markdown-field',_vm.$attrs,false)):_c('div',[_c('content-editor',{ref:\"contentEditor\",attrs:{\"render-markdown\":_vm.renderMarkdown,\"markdown-docs-path\":_vm.markdownDocsPath,\"uploads-path\":_vm.uploadsPath,\"markdown\":_vm.markdown,\"supports-quick-actions\":_vm.supportsQuickActions,\"autofocus\":_vm.contentEditorAutofocused,\"placeholder\":_vm.formFieldProps.placeholder,\"drawio-enabled\":_vm.drawioEnabled,\"enable-autocomplete\":_vm.enableAutocomplete,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"editable\":!_vm.disabled,\"disable-attachments\":_vm.disableAttachments,\"code-suggestions-config\":_vm.codeSuggestionsConfig,\"data-testid\":_vm.formFieldProps['data-testid'] || 'markdown-editor-form-field'},on:{\"initialized\":_vm.setEditorAsAutofocused,\"change\":_vm.updateMarkdownFromContentEditor,\"keydown\":_vm.onKeydown,\"enableMarkdownEditor\":function($event){return _vm.onEditingModeChange('markdownField')}},scopedSlots:_vm._u([{key:\"header-buttons\",fn:function(){return [_vm._t(\"header-buttons\")]},proxy:true},{key:\"toolbar\",fn:function(){return [_vm._t(\"toolbar\")]},proxy:true}],null,true)}),_vm._v(\" \"),_c('input',_vm._b({attrs:{\"type\":\"hidden\"},domProps:{\"value\":_vm.markdown}},'input',_vm.formFieldProps,false))],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlAlert } from '@gitlab/ui';\nimport Autosize from 'autosize';\nimport { __ } from '~/locale';\nimport axios from '~/lib/utils/axios_utils';\nimport { updateDraft, clearDraft, getDraft } from '~/lib/utils/autosave';\nimport { setUrlParams, joinPaths } from '~/lib/utils/url_utility';\nimport LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';\nimport {\n EDITING_MODE_KEY,\n EDITING_MODE_MARKDOWN_FIELD,\n EDITING_MODE_CONTENT_EDITOR,\n CLEAR_AUTOSAVE_ENTRY_EVENT,\n} from '../../constants';\nimport MarkdownField from './field.vue';\nimport eventHub from './eventhub';\n\nasync function sleep(t = 10) {\n return new Promise((resolve) => {\n setTimeout(resolve, t);\n });\n}\n\nasync function waitFor(getEl, interval = 10, timeout = 2000) {\n if (timeout <= 0) return null;\n\n const el = getEl();\n if (el) return el;\n\n await sleep(interval);\n return waitFor(getEl, timeout - interval);\n}\n\nexport default {\n components: {\n GlAlert,\n MarkdownField,\n LocalStorageSync,\n ContentEditor: () =>\n import(\n /* webpackChunkName: 'content_editor' */ '~/content_editor/components/content_editor.vue'\n ),\n },\n props: {\n value: {\n type: String,\n required: true,\n },\n setFacade: {\n type: Function,\n required: false,\n default: null,\n },\n renderMarkdownPath: {\n type: String,\n required: true,\n },\n uploadsPath: {\n type: String,\n required: false,\n default: () => window.uploads_path || '',\n },\n enableContentEditor: {\n type: Boolean,\n required: false,\n default: true,\n },\n formFieldProps: {\n type: Object,\n required: true,\n },\n autofocus: {\n type: Boolean,\n required: false,\n default: false,\n },\n enableAutocomplete: {\n type: Boolean,\n required: false,\n default: true,\n },\n autocompleteDataSources: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n supportsQuickActions: {\n type: Boolean,\n required: false,\n default: false,\n },\n autosaveKey: {\n type: String,\n required: false,\n default: null,\n },\n markdownDocsPath: {\n type: String,\n required: false,\n default: '',\n },\n drawioEnabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n disableAttachments: {\n type: Boolean,\n required: false,\n default: false,\n },\n codeSuggestionsConfig: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n noteableType: {\n type: String,\n required: false,\n default: '',\n },\n restrictedToolBarItems: {\n type: Array,\n required: false,\n default: () => [],\n },\n restoreFromAutosave: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n let editingMode;\n switch (window.gon?.text_editor) {\n case 'rich_text_editor':\n editingMode = EDITING_MODE_CONTENT_EDITOR;\n break;\n case 'plain_text_editor':\n editingMode = EDITING_MODE_MARKDOWN_FIELD;\n break;\n default:\n editingMode =\n localStorage.getItem(this.$options.EDITING_MODE_KEY) || EDITING_MODE_MARKDOWN_FIELD;\n }\n\n const autosaveValue = this.autosaveKey ? getDraft(this.autosaveKey) : '';\n const initialValue = this.restoreFromAutosave ? autosaveValue : this.value;\n\n return {\n alert: null,\n markdown: initialValue || autosaveValue || '',\n editingMode,\n autofocused: false,\n };\n },\n computed: {\n isContentEditorActive() {\n return this.enableContentEditor && this.editingMode === EDITING_MODE_CONTENT_EDITOR;\n },\n contentEditorAutofocused() {\n // Match textarea focus behavior\n return this.autofocus && !this.autofocused ? 'end' : false;\n },\n markdownFieldRestrictedToolBarItems() {\n const restrictAttachments = this.disableAttachments ? ['attach-file'] : [];\n\n return [...this.restrictedToolBarItems, ...restrictAttachments];\n },\n isDefaultEditorEnabled() {\n return ['plain_text_editor', 'rich_text_editor'].includes(window.gon?.text_editor);\n },\n },\n watch: {\n value: 'updateValue',\n },\n mounted() {\n this.autofocusTextarea();\n\n this.$emit('input', this.markdown);\n this.saveDraft();\n\n this.setFacade?.({\n getValue: () => this.getValue(),\n setValue: (val) => this.setValue(val),\n });\n\n eventHub.$on(CLEAR_AUTOSAVE_ENTRY_EVENT, this.clearDraft);\n },\n beforeDestroy() {\n eventHub.$off(CLEAR_AUTOSAVE_ENTRY_EVENT, this.clearDraft);\n },\n methods: {\n getValue() {\n return this.markdown;\n },\n setValue(value) {\n this.$emit('input', value);\n this.updateValue(value);\n },\n updateValue(value) {\n this.markdown = value;\n this.saveDraft();\n this.autosizeTextarea();\n },\n append(value) {\n if (!value) {\n this.focus();\n return;\n }\n const newValue = [this.markdown.trim(), value].filter(Boolean).join('\\n\\n');\n this.updateValue(`${newValue}\\n\\n`);\n this.$nextTick(() => {\n this.focus();\n });\n },\n setTemplate(template, force = false) {\n if (!this.markdown || force) {\n this.setValue(template);\n } else {\n const dismiss = () => {\n this.alert = null;\n };\n this.alert = {\n message: this.$options.i18n.applyTemplateAlert.message,\n variant: 'warning',\n primaryButtonText: this.$options.i18n.applyTemplateAlert.primaryButtonText,\n secondaryButtonText: this.$options.i18n.applyTemplateAlert.secondaryButtonText,\n primaryAction: () => {\n this.setValue(template, true);\n dismiss();\n },\n secondaryAction: dismiss,\n dismiss,\n };\n }\n },\n updateMarkdownFromContentEditor({ markdown }) {\n this.markdown = markdown;\n this.$emit('input', markdown);\n\n this.saveDraft();\n },\n updateMarkdownFromMarkdownField({ target }) {\n this.markdown = target.value;\n this.$emit('input', target.value);\n\n this.saveDraft();\n },\n renderMarkdown(markdown) {\n const url = setUrlParams(\n { render_quick_actions: this.supportsQuickActions },\n joinPaths(window.location.origin, this.renderMarkdownPath),\n );\n return axios\n .post(url, { text: markdown })\n .then(({ data: { html, body, ...otherData } = {} } = {}) => ({\n body: body || html,\n ...otherData,\n }));\n },\n onEditingModeChange(editingMode) {\n this.editingMode = editingMode;\n this.notifyEditingModeChange(editingMode);\n },\n onEditingModeRestored(editingMode) {\n if (!this.isDefaultEditorEnabled) return;\n if (editingMode === EDITING_MODE_CONTENT_EDITOR && !this.enableContentEditor) {\n this.editingMode = EDITING_MODE_MARKDOWN_FIELD;\n return;\n }\n\n this.editingMode = editingMode;\n this.$emit(editingMode);\n this.notifyEditingModeChange(editingMode);\n },\n async notifyEditingModeChange(editingMode) {\n this.$emit(editingMode);\n\n const componentToFocus =\n editingMode === EDITING_MODE_CONTENT_EDITOR\n ? () => this.$refs.contentEditor\n : () => this.$refs.textarea;\n\n (await waitFor(componentToFocus)).focus();\n },\n autofocusTextarea() {\n if (this.autofocus && this.editingMode === EDITING_MODE_MARKDOWN_FIELD) {\n this.$refs.textarea.focus();\n this.setEditorAsAutofocused();\n }\n },\n focus() {\n if (this.editingMode === EDITING_MODE_MARKDOWN_FIELD) {\n this.$refs.textarea.focus();\n } else {\n this.$refs.contentEditor.focus();\n }\n },\n setEditorAsAutofocused() {\n this.autofocused = true;\n },\n saveDraft() {\n if (!this.autosaveKey) return;\n if (this.markdown) updateDraft(this.autosaveKey, this.markdown);\n else clearDraft(this.autosaveKey);\n },\n clearDraft(key) {\n if (!this.autosaveKey || key !== this.autosaveKey) return;\n clearDraft(this.autosaveKey);\n },\n togglePreview(value) {\n if (this.editingMode === EDITING_MODE_MARKDOWN_FIELD) {\n this.$refs.markdownField.previewMarkdown = value;\n }\n },\n autosizeTextarea() {\n if (this.editingMode === EDITING_MODE_MARKDOWN_FIELD) {\n this.$nextTick(() => {\n Autosize.update(this.$refs.textarea);\n });\n }\n },\n onKeydown(event) {\n const isModifierKey = event.ctrlKey || event.metaKey;\n if (isModifierKey && event.key === 'k') {\n event.preventDefault();\n }\n this.$emit('keydown', event);\n },\n },\n EDITING_MODE_KEY,\n i18n: {\n applyTemplateAlert: {\n message: __(\n 'Applying a template will replace the existing content. Any changes you have made will be lost.',\n ),\n primaryButtonText: __('Apply template'),\n secondaryButtonText: __('Cancel'),\n },\n },\n};\n</script>\n<template>\n <div class=\"md-area-wrapper gl-rounded-lg !gl-px-0\">\n <local-storage-sync\n v-if=\"!isDefaultEditorEnabled\"\n :value=\"editingMode\"\n as-string\n :storage-key=\"$options.EDITING_MODE_KEY\"\n @input=\"onEditingModeRestored\"\n />\n <gl-alert\n v-if=\"alert\"\n class=\"gl-mb-4\"\n :variant=\"alert.variant\"\n :primary-button-text=\"alert.primaryButtonText\"\n :secondary-button-text=\"alert.secondaryButtonText\"\n @primaryAction=\"alert.primaryAction\"\n @secondaryAction=\"alert.secondaryAction\"\n @dismiss=\"alert.dismiss\"\n >\n {{ alert.message }}\n </gl-alert>\n <markdown-field\n v-if=\"!isContentEditorActive\"\n ref=\"markdownField\"\n v-bind=\"$attrs\"\n data-testid=\"markdown-field\"\n :markdown-preview-path=\"renderMarkdownPath\"\n :can-attach-file=\"!disableAttachments\"\n :can-suggest=\"codeSuggestionsConfig.canSuggest\"\n :line=\"codeSuggestionsConfig.line\"\n :lines=\"codeSuggestionsConfig.lines\"\n :show-suggest-popover=\"codeSuggestionsConfig.showPopover\"\n :textarea-value=\"markdown\"\n :uploads-path=\"uploadsPath\"\n :enable-autocomplete=\"enableAutocomplete\"\n :autocomplete-data-sources=\"autocompleteDataSources\"\n :markdown-docs-path=\"markdownDocsPath\"\n :supports-quick-actions=\"supportsQuickActions\"\n :show-content-editor-switcher=\"enableContentEditor\"\n :drawio-enabled=\"drawioEnabled\"\n :restricted-tool-bar-items=\"markdownFieldRestrictedToolBarItems\"\n :remove-border=\"true\"\n @enableContentEditor=\"onEditingModeChange('contentEditor')\"\n @handleSuggestDismissed=\"() => $emit('handleSuggestDismissed')\"\n >\n <template #header-buttons><slot name=\"header-buttons\"></slot></template>\n <template #toolbar><slot name=\"toolbar\"></slot></template>\n <template #textarea>\n <textarea\n v-bind=\"formFieldProps\"\n ref=\"textarea\"\n :value=\"markdown\"\n class=\"note-textarea js-gfm-input markdown-area\"\n dir=\"auto\"\n :data-can-suggest=\"codeSuggestionsConfig.canSuggest\"\n :data-noteable-type=\"noteableType\"\n :data-supports-quick-actions=\"supportsQuickActions\"\n :data-testid=\"formFieldProps['data-testid'] || 'markdown-editor-form-field'\"\n :disabled=\"disabled\"\n @input=\"updateMarkdownFromMarkdownField\"\n @keydown=\"$emit('keydown', $event)\"\n ></textarea>\n </template>\n </markdown-field>\n <div v-else>\n <content-editor\n ref=\"contentEditor\"\n :render-markdown=\"renderMarkdown\"\n :markdown-docs-path=\"markdownDocsPath\"\n :uploads-path=\"uploadsPath\"\n :markdown=\"markdown\"\n :supports-quick-actions=\"supportsQuickActions\"\n :autofocus=\"contentEditorAutofocused\"\n :placeholder=\"formFieldProps.placeholder\"\n :drawio-enabled=\"drawioEnabled\"\n :enable-autocomplete=\"enableAutocomplete\"\n :autocomplete-data-sources=\"autocompleteDataSources\"\n :editable=\"!disabled\"\n :disable-attachments=\"disableAttachments\"\n :code-suggestions-config=\"codeSuggestionsConfig\"\n :data-testid=\"formFieldProps['data-testid'] || 'markdown-editor-form-field'\"\n @initialized=\"setEditorAsAutofocused\"\n @change=\"updateMarkdownFromContentEditor\"\n @keydown=\"onKeydown\"\n @enableMarkdownEditor=\"onEditingModeChange('markdownField')\"\n >\n <template #header-buttons><slot name=\"header-buttons\"></slot></template>\n <template #toolbar><slot name=\"toolbar\"></slot></template>\n </content-editor>\n <input v-bind=\"formFieldProps\" :value=\"markdown\" type=\"hidden\" />\n </div>\n </div>\n</template>\n","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!./markdown_editor.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!./markdown_editor.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./markdown_editor.vue?vue&type=template&id=27f649d3\"\nimport script from \"./markdown_editor.vue?vue&type=script&lang=js\"\nexport * from \"./markdown_editor.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","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isValidCron = void 0;\n// This comes from the fact that parseInt trims characters coming\n// after digits and consider it a valid int, so `1*` becomes `1`.\nvar safeParseInt = function (value) {\n if (/^\\d+$/.test(value)) {\n return Number(value);\n }\n else {\n return NaN;\n }\n};\nvar isWildcard = function (value) {\n return value === '*';\n};\nvar isQuestionMark = function (value) {\n return value === '?';\n};\nvar isInRange = function (value, start, stop) {\n return value >= start && value <= stop;\n};\nvar isValidRange = function (value, start, stop) {\n var sides = value.split('-');\n switch (sides.length) {\n case 1:\n return isWildcard(value) || isInRange(safeParseInt(value), start, stop);\n case 2:\n var _a = sides.map(function (side) { return safeParseInt(side); }), small = _a[0], big = _a[1];\n return small <= big && isInRange(small, start, stop) && isInRange(big, start, stop);\n default:\n return false;\n }\n};\nvar isValidStep = function (value) {\n return value === undefined || (value.search(/[^\\d]/) === -1 && safeParseInt(value) > 0);\n};\nvar validateForRange = function (value, start, stop) {\n if (value.search(/[^\\d-,\\/*]/) !== -1) {\n return false;\n }\n var list = value.split(',');\n return list.every(function (condition) {\n var splits = condition.split('/');\n // Prevents `*/ * * * *` from being accepted.\n if (condition.trim().endsWith('/')) {\n return false;\n }\n // Prevents `*/*/* * * * *` from being accepted\n if (splits.length > 2) {\n return false;\n }\n // If we don't have a `/`, right will be undefined which is considered a valid step if we don't a `/`.\n var left = splits[0], right = splits[1];\n return isValidRange(left, start, stop) && isValidStep(right);\n });\n};\nvar hasValidSeconds = function (seconds) {\n return validateForRange(seconds, 0, 59);\n};\nvar hasValidMinutes = function (minutes) {\n return validateForRange(minutes, 0, 59);\n};\nvar hasValidHours = function (hours) {\n return validateForRange(hours, 0, 23);\n};\nvar hasValidDays = function (days, allowBlankDay) {\n return (allowBlankDay && isQuestionMark(days)) || validateForRange(days, 1, 31);\n};\nvar monthAlias = {\n jan: '1',\n feb: '2',\n mar: '3',\n apr: '4',\n may: '5',\n jun: '6',\n jul: '7',\n aug: '8',\n sep: '9',\n oct: '10',\n nov: '11',\n dec: '12'\n};\nvar hasValidMonths = function (months, alias) {\n // Prevents alias to be used as steps\n if (months.search(/\\/[a-zA-Z]/) !== -1) {\n return false;\n }\n if (alias) {\n var remappedMonths = months.toLowerCase().replace(/[a-z]{3}/g, function (match) {\n return monthAlias[match] === undefined ? match : monthAlias[match];\n });\n // If any invalid alias was used, it won't pass the other checks as there will be non-numeric values in the months\n return validateForRange(remappedMonths, 1, 12);\n }\n return validateForRange(months, 1, 12);\n};\nvar weekdaysAlias = {\n sun: '0',\n mon: '1',\n tue: '2',\n wed: '3',\n thu: '4',\n fri: '5',\n sat: '6'\n};\nvar hasValidWeekdays = function (weekdays, alias, allowBlankDay, allowSevenAsSunday) {\n // If there is a question mark, checks if the allowBlankDay flag is set\n if (allowBlankDay && isQuestionMark(weekdays)) {\n return true;\n }\n else if (!allowBlankDay && isQuestionMark(weekdays)) {\n return false;\n }\n // Prevents alias to be used as steps\n if (weekdays.search(/\\/[a-zA-Z]/) !== -1) {\n return false;\n }\n if (alias) {\n var remappedWeekdays = weekdays.toLowerCase().replace(/[a-z]{3}/g, function (match) {\n return weekdaysAlias[match] === undefined ? match : weekdaysAlias[match];\n });\n // If any invalid alias was used, it won't pass the other checks as there will be non-numeric values in the weekdays\n return validateForRange(remappedWeekdays, 0, allowSevenAsSunday ? 7 : 6);\n }\n return validateForRange(weekdays, 0, allowSevenAsSunday ? 7 : 6);\n};\nvar hasCompatibleDayFormat = function (days, weekdays, allowBlankDay) {\n return !(allowBlankDay && isQuestionMark(days) && isQuestionMark(weekdays));\n};\nvar split = function (cron) {\n return cron.trim().split(/\\s+/);\n};\nvar defaultOptions = {\n alias: false,\n seconds: false,\n allowBlankDay: false,\n allowSevenAsSunday: false\n};\nexports.isValidCron = function (cron, options) {\n options = __assign(__assign({}, defaultOptions), options);\n var splits = split(cron);\n if (splits.length > (options.seconds ? 6 : 5) || splits.length < 5) {\n return false;\n }\n var checks = [];\n if (splits.length === 6) {\n var seconds = splits.shift();\n if (seconds) {\n checks.push(hasValidSeconds(seconds));\n }\n }\n // We could only check the steps gradually and return false on the first invalid block,\n // However, this won't have any performance impact so why bother for now.\n var minutes = splits[0], hours = splits[1], days = splits[2], months = splits[3], weekdays = splits[4];\n checks.push(hasValidMinutes(minutes));\n checks.push(hasValidHours(hours));\n checks.push(hasValidDays(days, options.allowBlankDay));\n checks.push(hasValidMonths(months, options.alias));\n checks.push(hasValidWeekdays(weekdays, options.alias, options.allowBlankDay, options.allowSevenAsSunday));\n checks.push(hasCompatibleDayFormat(days, weekdays, options.allowBlankDay));\n return checks.every(Boolean);\n};\n//# sourceMappingURL=index.js.map","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-dropdown',{ref:\"dropdown\",attrs:{\"text\":_vm.text},on:{\"toggle\":function($event){return _vm.$emit('toggle')},\"shown\":_vm.focusSearch},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('p',{staticClass:\"gl-mb-4 gl-mt-2 gl-text-center gl-font-bold\"},[_vm._v(_vm._s(_vm.headerText))]),_vm._v(\" \"),_c('gl-dropdown-divider'),_vm._v(\" \"),_c('gl-search-box-by-type',{ref:\"search\",attrs:{\"value\":_vm.search,\"data-testid\":\"user-search-input\"},on:{\"input\":_vm.debouncedSearchKeyUpdate}})]},proxy:true},{key:\"footer\",fn:function(){return [_vm._t(\"footer\")]},proxy:true}],null,true)},[_vm._v(\" \"),_c('gl-dropdown-form',{staticClass:\"gl-relative gl-min-h-7\"},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"gl-absolute gl-left-0 gl-right-0 gl-top-0\",attrs:{\"data-testid\":\"loading-participants\",\"size\":\"md\"}}):[(_vm.shouldShowParticipants)?[(_vm.isSearchEmpty)?_c('gl-dropdown-item',{attrs:{\"is-checked\":_vm.selectedIsEmpty,\"is-check-centered\":\"\",\"data-testid\":\"unassign\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.unassign.apply(null, arguments)}}},[_c('span',{staticClass:\"gl-font-bold\",class:_vm.selectedIsEmpty ? 'gl-pl-0' : 'gl-pl-6'},[_vm._v(_vm._s(_vm.$options.i18n.unassigned))])]):_vm._e()]:_vm._e(),_vm._v(\" \"),(_vm.showDivider(_vm.selectedFiltered))?_c('gl-dropdown-divider'):_vm._e(),_vm._v(\" \"),_vm._l((_vm.selectedFiltered),function(item){return _c('gl-dropdown-item',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],key:item.id,attrs:{\"title\":_vm.tooltipText(item),\"boundary\":\"viewport\",\"is-checked\":\"\",\"is-check-centered\":\"\",\"data-testid\":\"selected-participant\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.unselect(item.username)}}},[_c('sidebar-participant',{attrs:{\"user\":item,\"issuable-type\":_vm.issuableType,\"selected\":\"\"}})],1)}),_vm._v(\" \"),(_vm.showCurrentUser)?[_c('gl-dropdown-divider'),_vm._v(\" \"),_c('gl-dropdown-item',{attrs:{\"data-testid\":\"current-user\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.selectAssignee(_vm.currentUser)}}},[_c('sidebar-participant',{staticClass:\"!gl-pl-6\",attrs:{\"user\":_vm.currentUser,\"issuable-type\":_vm.issuableType}})],1)]:_vm._e(),_vm._v(\" \"),(_vm.showAuthor)?_c('gl-dropdown-item',{attrs:{\"data-testid\":\"issuable-author\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.selectAssignee(_vm.issuableAuthor)}}},[_c('sidebar-participant',{staticClass:\"!gl-pl-6\",attrs:{\"user\":_vm.issuableAuthor,\"issuable-type\":_vm.issuableType}})],1):_vm._e(),_vm._v(\" \"),_vm._l((_vm.unselectedFiltered),function(unselectedUser){return _c('gl-dropdown-item',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],key:unselectedUser.id,attrs:{\"title\":_vm.tooltipText(unselectedUser),\"boundary\":\"viewport\",\"data-testid\":\"unselected-participant\"},nativeOn:{\"!click\":function($event){$event.stopPropagation();return _vm.selectAssignee(unselectedUser)}}},[_c('sidebar-participant',{staticClass:\"!gl-pl-6\",attrs:{\"user\":unselectedUser,\"issuable-type\":_vm.issuableType}})],1)}),_vm._v(\" \"),(_vm.noUsersFound)?_c('gl-dropdown-item',{staticClass:\"!gl-pl-6\",attrs:{\"data-testid\":\"empty-results\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('No matching results'))+\"\\n \")]):_vm._e()]],2)],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!./user_select.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!./user_select.vue?vue&type=script&lang=js\"","<script>\nimport { debounce } from 'lodash';\nimport {\n GlDropdown,\n GlDropdownDivider,\n GlDropdownForm,\n GlDropdownItem,\n GlLoadingIcon,\n GlSearchBoxByType,\n GlTooltipDirective,\n} from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport SidebarParticipant from '~/sidebar/components/assignees/sidebar_participant.vue';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport { participantsQueries, userSearchQueries } from '~/sidebar/queries/constants';\nimport { TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\n\nexport default {\n i18n: {\n unassigned: __('Unassigned'),\n },\n components: {\n GlDropdownForm,\n GlDropdown,\n GlDropdownDivider,\n GlDropdownItem,\n GlSearchBoxByType,\n SidebarParticipant,\n GlLoadingIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n headerText: {\n type: String,\n required: true,\n },\n text: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n iid: {\n type: String,\n required: false,\n default: null,\n },\n value: {\n type: Array,\n required: true,\n },\n allowMultipleAssignees: {\n type: Boolean,\n required: false,\n default: false,\n },\n currentUser: {\n type: Object,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n isEditing: {\n type: Boolean,\n required: false,\n default: true,\n },\n issuableId: {\n type: Number,\n required: false,\n default: null,\n },\n issuableAuthor: {\n type: Object,\n required: false,\n default: null,\n },\n },\n data() {\n return {\n search: '',\n participants: [],\n searchUsers: [],\n isSearching: false,\n };\n },\n apollo: {\n participants: {\n query() {\n return participantsQueries[this.issuableType].query;\n },\n skip() {\n return (\n Boolean(participantsQueries[this.issuableType].skipQuery) || !this.isEditing || !this.iid\n );\n },\n variables() {\n return {\n iid: this.iid,\n fullPath: this.fullPath,\n getStatus: true,\n };\n },\n update(data) {\n return data.workspace?.issuable?.participants.nodes.map((node) => ({\n ...node,\n canMerge: false,\n }));\n },\n error() {\n this.$emit('error');\n },\n },\n searchUsers: {\n query() {\n return userSearchQueries[this.issuableType].query;\n },\n variables() {\n return this.searchUsersVariables;\n },\n skip() {\n return !this.isEditing;\n },\n update(data) {\n return (\n data.workspace?.users\n .filter((user) => user)\n .map((user) => ({\n ...user,\n canMerge: user.mergeRequestInteraction?.canMerge || false,\n })) || []\n );\n },\n error() {\n this.$emit('error');\n this.isSearching = false;\n },\n result() {\n this.isSearching = false;\n },\n },\n },\n computed: {\n isMergeRequest() {\n return this.issuableType === TYPE_MERGE_REQUEST;\n },\n searchUsersVariables() {\n const variables = {\n fullPath: this.fullPath,\n search: this.search,\n first: 20,\n };\n if (!this.isMergeRequest) {\n return variables;\n }\n return {\n ...variables,\n mergeRequestId: convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.issuableId),\n };\n },\n isLoading() {\n return this.$apollo.queries.searchUsers.loading || this.$apollo.queries.participants.loading;\n },\n users() {\n const filteredParticipants =\n this.participants?.filter(\n (user) => user.name.includes(this.search) || user.username.includes(this.search),\n ) || [];\n\n // TODO this de-duplication is temporary (BE fix required)\n // https://gitlab.com/gitlab-org/gitlab/-/issues/327822\n const mergedSearchResults = this.searchUsers\n .concat(filteredParticipants)\n .reduce(\n (acc, current) => (acc.some((user) => current.id === user.id) ? acc : [...acc, current]),\n [],\n );\n\n return this.moveCurrentUserAndAuthorToStart(mergedSearchResults);\n },\n isSearchEmpty() {\n return this.search === '';\n },\n shouldShowParticipants() {\n return this.isSearchEmpty || this.isSearching;\n },\n isCurrentUserInList() {\n const isCurrentUser = (user) => user.username === this.currentUser.username;\n return this.users.some(isCurrentUser);\n },\n noUsersFound() {\n return !this.isSearchEmpty && this.users.length === 0;\n },\n showCurrentUser() {\n return this.currentUser.username && !this.isCurrentUserInList && this.isSearchEmpty;\n },\n showAuthor() {\n return (\n this.issuableAuthor &&\n !this.users.some((user) => user.id === this.issuableAuthor.id) &&\n this.isSearchEmpty\n );\n },\n selectedFiltered() {\n if (this.shouldShowParticipants) {\n return this.moveCurrentUserAndAuthorToStart(this.value);\n }\n\n const foundUsernames = this.users.map(({ username }) => username);\n const filtered = this.value.filter(({ username }) => foundUsernames.includes(username));\n return this.moveCurrentUserAndAuthorToStart(filtered);\n },\n selectedUserNames() {\n return this.value.map(({ username }) => username);\n },\n unselectedFiltered() {\n return this.users?.filter(({ username }) => !this.selectedUserNames.includes(username)) || [];\n },\n selectedIsEmpty() {\n return this.selectedFiltered.length === 0;\n },\n },\n\n watch: {\n // We need to add this watcher to track the moment when user is alredy typing\n // but query is still not started due to debounce\n search(newVal) {\n if (newVal) {\n this.isSearching = true;\n }\n },\n },\n created() {\n this.debouncedSearchKeyUpdate = debounce(this.setSearchKey, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);\n },\n methods: {\n selectAssignee(user) {\n let selected = [...this.value];\n if (!this.allowMultipleAssignees) {\n selected = [user];\n this.$emit('input', selected);\n this.$refs.dropdown.hide();\n this.$emit('toggle');\n } else {\n selected.push(user);\n this.$emit('input', selected);\n }\n this.clearAndFocusSearch();\n },\n unassign() {\n this.$emit('input', []);\n this.$refs.dropdown.hide();\n },\n unselect(name) {\n const selected = this.value.filter((user) => user.username !== name);\n this.$emit('input', selected);\n this.clearAndFocusSearch();\n },\n focusSearch() {\n this.$refs.search.focusInput();\n },\n showDropdown() {\n this.$refs.dropdown.show();\n },\n showDivider(list) {\n return list.length > 0 && this.isSearchEmpty;\n },\n moveCurrentUserAndAuthorToStart(users = []) {\n let sortedUsers = [...users];\n\n const author = sortedUsers.find((user) => user.id === this.issuableAuthor?.id);\n if (author) {\n sortedUsers = [author, ...sortedUsers.filter((user) => user.id !== author.id)];\n }\n\n const currentUser = sortedUsers.find((user) => user.username === this.currentUser.username);\n\n if (currentUser) {\n currentUser.canMerge = this.currentUser.canMerge;\n sortedUsers = [currentUser, ...sortedUsers.filter((user) => user.id !== currentUser.id)];\n }\n\n return sortedUsers;\n },\n setSearchKey(value) {\n this.search = value.trim();\n },\n tooltipText(user) {\n if (!this.isMergeRequest) {\n return '';\n }\n return user.canMerge ? '' : __('Cannot merge');\n },\n clearAndFocusSearch() {\n this.search = '';\n this.focusSearch();\n },\n },\n};\n</script>\n\n<template>\n <gl-dropdown ref=\"dropdown\" :text=\"text\" @toggle=\"$emit('toggle')\" @shown=\"focusSearch\">\n <template #header>\n <p class=\"gl-mb-4 gl-mt-2 gl-text-center gl-font-bold\">{{ headerText }}</p>\n <gl-dropdown-divider />\n <gl-search-box-by-type\n ref=\"search\"\n :value=\"search\"\n data-testid=\"user-search-input\"\n @input=\"debouncedSearchKeyUpdate\"\n />\n </template>\n <gl-dropdown-form class=\"gl-relative gl-min-h-7\">\n <gl-loading-icon\n v-if=\"isLoading\"\n data-testid=\"loading-participants\"\n size=\"md\"\n class=\"gl-absolute gl-left-0 gl-right-0 gl-top-0\"\n />\n <template v-else>\n <template v-if=\"shouldShowParticipants\">\n <gl-dropdown-item\n v-if=\"isSearchEmpty\"\n :is-checked=\"selectedIsEmpty\"\n is-check-centered\n data-testid=\"unassign\"\n @click.capture.native.stop=\"unassign\"\n >\n <span :class=\"selectedIsEmpty ? 'gl-pl-0' : 'gl-pl-6'\" class=\"gl-font-bold\">{{\n $options.i18n.unassigned\n }}</span>\n </gl-dropdown-item>\n </template>\n <gl-dropdown-divider v-if=\"showDivider(selectedFiltered)\" />\n <gl-dropdown-item\n v-for=\"item in selectedFiltered\"\n :key=\"item.id\"\n v-gl-tooltip.left.viewport\n :title=\"tooltipText(item)\"\n boundary=\"viewport\"\n is-checked\n is-check-centered\n data-testid=\"selected-participant\"\n @click.capture.native.stop=\"unselect(item.username)\"\n >\n <sidebar-participant :user=\"item\" :issuable-type=\"issuableType\" selected />\n </gl-dropdown-item>\n <template v-if=\"showCurrentUser\">\n <gl-dropdown-divider />\n <gl-dropdown-item\n data-testid=\"current-user\"\n @click.capture.native.stop=\"selectAssignee(currentUser)\"\n >\n <sidebar-participant\n :user=\"currentUser\"\n :issuable-type=\"issuableType\"\n class=\"!gl-pl-6\"\n />\n </gl-dropdown-item>\n </template>\n <gl-dropdown-item\n v-if=\"showAuthor\"\n data-testid=\"issuable-author\"\n @click.capture.native.stop=\"selectAssignee(issuableAuthor)\"\n >\n <sidebar-participant\n :user=\"issuableAuthor\"\n :issuable-type=\"issuableType\"\n class=\"!gl-pl-6\"\n />\n </gl-dropdown-item>\n <gl-dropdown-item\n v-for=\"unselectedUser in unselectedFiltered\"\n :key=\"unselectedUser.id\"\n v-gl-tooltip.left.viewport\n :title=\"tooltipText(unselectedUser)\"\n boundary=\"viewport\"\n data-testid=\"unselected-participant\"\n @click.capture.native.stop=\"selectAssignee(unselectedUser)\"\n >\n <sidebar-participant\n :user=\"unselectedUser\"\n :issuable-type=\"issuableType\"\n class=\"!gl-pl-6\"\n />\n </gl-dropdown-item>\n <gl-dropdown-item v-if=\"noUsersFound\" data-testid=\"empty-results\" class=\"!gl-pl-6\">\n {{ __('No matching results') }}\n </gl-dropdown-item>\n </template>\n </gl-dropdown-form>\n <template #footer>\n <slot name=\"footer\"></slot>\n </template>\n </gl-dropdown>\n</template>\n","import { render, staticRenderFns } from \"./user_select.vue?vue&type=template&id=64c3c52b\"\nimport script from \"./user_select.vue?vue&type=script&lang=js\"\nexport * from \"./user_select.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 (_vm.resolvableDiscussionsCount > 0)?_c('div',{ref:\"discussionCounter\",staticClass:\"discussions-counter gl-flex\",attrs:{\"id\":\"discussionCounter\"}},[_c('div',{staticClass:\"gl-flex gl-min-h-7 gl-items-center gl-rounded-base gl-pl-4\",class:{\n 'gl-bg-orange-50': _vm.blocksMerge && !_vm.allResolved,\n 'gl-bg-gray-50': !_vm.blocksMerge || _vm.allResolved,\n 'gl-mr-3': !_vm.isNotificationsTodosButtons,\n 'gl-mr-5': _vm.isNotificationsTodosButtons,\n },attrs:{\"data-testid\":\"discussions-counter-text\"}},[(_vm.allResolved)?[_vm._v(\"\\n \"+_vm._s(_vm.__('All threads resolved!'))+\"\\n \"),_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-ml-3 gl-h-full !gl-rounded-base !gl-pt-0\",attrs:{\"icon\":\"ellipsis_v\",\"size\":\"small\",\"category\":\"tertiary\",\"placement\":\"bottom-end\",\"no-caret\":\"\",\"title\":_vm.__('Thread options'),\"aria-label\":_vm.__('Thread options'),\"toggle-class\":\"btn-icon\",\"items\":_vm.threadOptions}})]:[_vm._v(\"\\n \"+_vm._s(_vm.n__('%d unresolved thread', '%d unresolved threads', _vm.unresolvedDiscussionsCount))+\"\\n \"),_c('gl-button-group',{staticClass:\"gl-ml-3\"},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.html\",value:(_vm.previousUnresolvedDiscussionTooltip),expression:\"previousUnresolvedDiscussionTooltip\",modifiers:{\"html\":true}}],staticClass:\"discussion-previous-btn !gl-rounded-base !gl-px-2\",attrs:{\"aria-label\":_vm.previousUnresolvedDiscussionTitle,\"aria-keyshortcuts\":_vm.previousUnresolvedDiscussionShortcutKey,\"data-track-action\":\"click_button\",\"data-track-label\":\"mr_previous_unresolved_thread\",\"data-track-property\":\"click_previous_unresolved_thread_top\",\"icon\":\"chevron-lg-up\",\"category\":\"tertiary\"},on:{\"click\":_vm.jumpPrevious}}),_vm._v(\" \"),_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.html\",value:(_vm.nextUnresolvedDiscussionTooltip),expression:\"nextUnresolvedDiscussionTooltip\",modifiers:{\"html\":true}}],staticClass:\"discussion-next-btn !gl-rounded-base !gl-px-2\",attrs:{\"aria-label\":_vm.nextUnresolvedDiscussionTitle,\"aria-keyshortcuts\":_vm.nextUnresolvedDiscussionShortcutKey,\"data-track-action\":\"click_button\",\"data-track-label\":\"mr_next_unresolved_thread\",\"data-track-property\":\"click_next_unresolved_thread_top\",\"icon\":\"chevron-lg-down\",\"category\":\"tertiary\"},on:{\"click\":_vm.jumpNext}}),_vm._v(\" \"),_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"!gl-rounded-base !gl-pt-0\",attrs:{\"icon\":\"ellipsis_v\",\"size\":\"small\",\"category\":\"tertiary\",\"placement\":\"bottom-end\",\"no-caret\":\"\",\"title\":_vm.__('Thread options'),\"aria-label\":_vm.__('Thread options'),\"toggle-class\":\"btn-icon\",\"items\":_vm.threadOptions}})],1)]],2)]):_vm._e()\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!./discussion_counter.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!./discussion_counter.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlButtonGroup, GlDisclosureDropdown, GlTooltipDirective } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters } from 'vuex';\nimport { throttle } from 'lodash';\nimport { __ } from '~/locale';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport {\n keysFor,\n MR_NEXT_UNRESOLVED_DISCUSSION,\n MR_PREVIOUS_UNRESOLVED_DISCUSSION,\n} from '~/behaviors/shortcuts/keybindings';\nimport { shouldDisableShortcuts } from '~/behaviors/shortcuts/shortcuts_toggle';\nimport { sanitize } from '~/lib/dompurify';\nimport discussionNavigation from '../mixins/discussion_navigation';\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlDisclosureDropdown,\n GlButton,\n GlButtonGroup,\n },\n mixins: [glFeatureFlagsMixin(), discussionNavigation],\n props: {\n blocksMerge: {\n type: Boolean,\n required: true,\n },\n },\n data() {\n return {\n jumpNext: throttle(this.jumpToNextDiscussion, 500),\n jumpPrevious: throttle(this.jumpToPreviousDiscussion, 500),\n };\n },\n computed: {\n ...mapGetters([\n 'getNoteableData',\n 'resolvableDiscussionsCount',\n 'unresolvedDiscussionsCount',\n 'allResolvableDiscussions',\n 'allVisibleDiscussionsExpanded',\n ]),\n allResolved() {\n return this.unresolvedDiscussionsCount === 0;\n },\n toggleThreadsLabel() {\n return !this.allVisibleDiscussionsExpanded\n ? __('Show all comments')\n : __('Hide all comments');\n },\n nextUnresolvedDiscussionShortcutKey() {\n return shouldDisableShortcuts() ? null : keysFor(MR_NEXT_UNRESOLVED_DISCUSSION)[0];\n },\n nextUnresolvedDiscussionTitle() {\n return MR_NEXT_UNRESOLVED_DISCUSSION.description;\n },\n nextUnresolvedDiscussionTooltip() {\n const description = this.nextUnresolvedDiscussionTitle;\n const key = this.nextUnresolvedDiscussionShortcutKey;\n return shouldDisableShortcuts()\n ? description\n : sanitize(`${description} <kbd class=\"flat gl-ml-1\" aria-hidden=true>${key}</kbd>`);\n },\n previousUnresolvedDiscussionShortcutKey() {\n return shouldDisableShortcuts() ? null : keysFor(MR_PREVIOUS_UNRESOLVED_DISCUSSION)[0];\n },\n previousUnresolvedDiscussionTitle() {\n return MR_PREVIOUS_UNRESOLVED_DISCUSSION.description;\n },\n previousUnresolvedDiscussionTooltip() {\n const description = this.previousUnresolvedDiscussionTitle;\n const key = this.previousUnresolvedDiscussionShortcutKey;\n return shouldDisableShortcuts()\n ? description\n : sanitize(`${description} <kbd class=\"flat gl-ml-1\" aria-hidden=true>${key}</kbd>`);\n },\n resolveAllDiscussionsIssuePath() {\n return this.getNoteableData.create_issue_to_resolve_discussions_path;\n },\n threadOptions() {\n const options = [\n {\n text: this.toggleThreadsLabel,\n action: this.toggleAllVisibleDiscussions,\n extraAttrs: {\n 'data-testid': 'toggle-all-discussions-btn',\n },\n },\n ];\n\n if (this.resolveAllDiscussionsIssuePath && !this.allResolved) {\n options.push({\n text: __('Resolve all with new issue'),\n href: this.resolveAllDiscussionsIssuePath,\n extraAttrs: {\n 'data-testid': 'resolve-all-with-issue-link',\n },\n });\n }\n\n return options;\n },\n isNotificationsTodosButtons() {\n return this.glFeatures.notificationsTodosButtons;\n },\n },\n methods: {\n ...mapActions(['toggleAllVisibleDiscussions']),\n },\n};\n</script>\n\n<template>\n <div\n v-if=\"resolvableDiscussionsCount > 0\"\n id=\"discussionCounter\"\n ref=\"discussionCounter\"\n class=\"discussions-counter gl-flex\"\n >\n <div\n class=\"gl-flex gl-min-h-7 gl-items-center gl-rounded-base gl-pl-4\"\n :class=\"{\n 'gl-bg-orange-50': blocksMerge && !allResolved,\n 'gl-bg-gray-50': !blocksMerge || allResolved,\n 'gl-mr-3': !isNotificationsTodosButtons,\n 'gl-mr-5': isNotificationsTodosButtons,\n }\"\n data-testid=\"discussions-counter-text\"\n >\n <template v-if=\"allResolved\">\n {{ __('All threads resolved!') }}\n <gl-disclosure-dropdown\n v-gl-tooltip\n icon=\"ellipsis_v\"\n size=\"small\"\n category=\"tertiary\"\n placement=\"bottom-end\"\n no-caret\n :title=\"__('Thread options')\"\n :aria-label=\"__('Thread options')\"\n toggle-class=\"btn-icon\"\n class=\"gl-ml-3 gl-h-full !gl-rounded-base !gl-pt-0\"\n :items=\"threadOptions\"\n />\n </template>\n <template v-else>\n {{ n__('%d unresolved thread', '%d unresolved threads', unresolvedDiscussionsCount) }}\n <gl-button-group class=\"gl-ml-3\">\n <gl-button\n v-gl-tooltip.html=\"previousUnresolvedDiscussionTooltip\"\n :aria-label=\"previousUnresolvedDiscussionTitle\"\n :aria-keyshortcuts=\"previousUnresolvedDiscussionShortcutKey\"\n class=\"discussion-previous-btn !gl-rounded-base !gl-px-2\"\n data-track-action=\"click_button\"\n data-track-label=\"mr_previous_unresolved_thread\"\n data-track-property=\"click_previous_unresolved_thread_top\"\n icon=\"chevron-lg-up\"\n category=\"tertiary\"\n @click=\"jumpPrevious\"\n />\n <gl-button\n v-gl-tooltip.html=\"nextUnresolvedDiscussionTooltip\"\n :aria-label=\"nextUnresolvedDiscussionTitle\"\n :aria-keyshortcuts=\"nextUnresolvedDiscussionShortcutKey\"\n class=\"discussion-next-btn !gl-rounded-base !gl-px-2\"\n data-track-action=\"click_button\"\n data-track-label=\"mr_next_unresolved_thread\"\n data-track-property=\"click_next_unresolved_thread_top\"\n icon=\"chevron-lg-down\"\n category=\"tertiary\"\n @click=\"jumpNext\"\n />\n <gl-disclosure-dropdown\n v-gl-tooltip\n icon=\"ellipsis_v\"\n size=\"small\"\n category=\"tertiary\"\n placement=\"bottom-end\"\n no-caret\n :title=\"__('Thread options')\"\n :aria-label=\"__('Thread options')\"\n toggle-class=\"btn-icon\"\n class=\"!gl-rounded-base !gl-pt-0\"\n :items=\"threadOptions\"\n />\n </gl-button-group>\n </template>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./discussion_counter.vue?vue&type=template&id=648c7cb8\"\nimport script from \"./discussion_counter.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_counter.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 { parseBoolean, getCookie } from '~/lib/utils/common_utils';\nimport mrNotes from '~/mr_notes/stores';\nimport { getLocationHash, getParameterValues } from '~/lib/utils/url_utility';\nimport eventHub from '~/notes/event_hub';\nimport { initReviewBar } from '~/batch_comments';\nimport { initDiscussionCounter } from '~/mr_notes/discussion_counter';\nimport { initOverviewTabCounter } from '~/mr_notes/init_count';\nimport { getDerivedMergeRequestInformation } from '~/diffs/utils/merge_request';\nimport { getReviewsForMergeRequest } from '~/diffs/utils/file_reviews';\nimport { DIFF_VIEW_COOKIE_NAME, INLINE_DIFF_VIEW_TYPE } from '~/diffs/constants';\n\nfunction setupMrNotesState(store, notesDataset, diffsDataset) {\n const noteableData = JSON.parse(notesDataset.noteableData);\n noteableData.noteableType = notesDataset.noteableType;\n noteableData.targetType = notesDataset.targetType;\n noteableData.discussion_locked = parseBoolean(notesDataset.isLocked);\n const notesData = JSON.parse(notesDataset.notesData);\n const currentUserData = JSON.parse(notesDataset.currentUserData);\n const endpoints = { metadata: notesDataset.endpointMetadata };\n\n const { mrPath } = getDerivedMergeRequestInformation({ endpoint: diffsDataset.endpoint });\n\n store.dispatch('setNotesData', notesData);\n store.dispatch('setNoteableData', noteableData);\n store.dispatch('setUserData', currentUserData);\n store.dispatch('setTargetNoteHash', getLocationHash());\n store.dispatch('setEndpoints', endpoints);\n store.dispatch('diffs/setBaseConfig', {\n endpoint: diffsDataset.endpoint,\n endpointMetadata: diffsDataset.endpointMetadata,\n endpointBatch: diffsDataset.endpointBatch,\n endpointDiffForPath: diffsDataset.endpointDiffForPath,\n endpointCoverage: diffsDataset.endpointCoverage,\n endpointUpdateUser: diffsDataset.updateCurrentUserPath,\n projectPath: diffsDataset.projectPath,\n dismissEndpoint: diffsDataset.dismissEndpoint,\n showSuggestPopover: parseBoolean(diffsDataset.showSuggestPopover),\n viewDiffsFileByFile: parseBoolean(diffsDataset.fileByFileDefault),\n defaultSuggestionCommitMessage: diffsDataset.defaultSuggestionCommitMessage,\n mrReviews: getReviewsForMergeRequest(mrPath),\n diffViewType:\n getParameterValues('view')[0] || getCookie(DIFF_VIEW_COOKIE_NAME) || INLINE_DIFF_VIEW_TYPE,\n perPage: Number(diffsDataset.perPage),\n });\n}\n\nexport function initMrStateLazyLoad(store = mrNotes, { reviewBarParams } = {}) {\n store.dispatch('setActiveTab', window.mrTabs.getCurrentAction());\n window.mrTabs.eventHub.$on('MergeRequestTabChange', (value) =>\n store.dispatch('setActiveTab', value),\n );\n\n const discussionsEl = document.getElementById('js-vue-mr-discussions');\n const diffsEl = document.getElementById('js-diffs-app');\n\n let stop = () => {};\n stop = store.watch(\n (state) => state.page.activeTab,\n (activeTab) => {\n setupMrNotesState(store, discussionsEl.dataset, diffsEl.dataset);\n\n // prevent loading MR state on commits and pipelines pages\n // this is due to them having a shared controller with the Overview page\n if (['diffs', 'show'].includes(activeTab)) {\n eventHub.$once('fetchNotesData', () => store.dispatch('fetchNotes'));\n\n requestIdleCallback(() => {\n initReviewBar(reviewBarParams);\n initOverviewTabCounter();\n initDiscussionCounter();\n });\n stop();\n }\n },\n { immediate: true },\n );\n}\n","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters } from 'vuex';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport store from '~/mr_notes/stores';\n\nexport const initReviewBar = () => {\n const el = document.getElementById('js-review-bar');\n\n if (!el) return;\n\n Vue.use(VueApollo);\n\n // eslint-disable-next-line no-new\n new Vue({\n el,\n store,\n apolloProvider,\n components: {\n ReviewBar: () => import('./components/review_bar.vue'),\n },\n provide: {\n newCommentTemplatePaths: JSON.parse(el.dataset.newCommentTemplatePaths),\n canSummarize: parseBoolean(el.dataset.canSummarize),\n },\n computed: {\n ...mapGetters('batchComments', ['draftsCount']),\n },\n mounted() {\n this.fetchDrafts();\n },\n methods: {\n ...mapActions('batchComments', ['fetchDrafts']),\n },\n render(createElement) {\n if (this.draftsCount === 0) return null;\n\n return createElement('review-bar');\n },\n });\n};\n","import store from '~/mr_notes/stores';\n\nexport function initOverviewTabCounter() {\n const discussionsCount = document.querySelector('.js-discussions-count');\n store.watch(\n (state, getters) => getters.discussionTabCounter,\n (val) => {\n if (typeof val !== 'undefined') {\n discussionsCount.textContent = val;\n }\n },\n );\n}\n","import Vue from 'vue';\nimport DiscussionCounter from '~/notes/components/discussion_counter.vue';\nimport store from '~/mr_notes/stores';\n\nexport function initDiscussionCounter() {\n const el = document.getElementById('js-vue-discussion-counter');\n\n if (el) {\n const { blocksMerge } = el.dataset;\n\n // eslint-disable-next-line no-new\n new Vue({\n el,\n name: 'DiscussionCounter',\n components: {\n DiscussionCounter,\n },\n store,\n render(createElement) {\n return createElement('discussion-counter', {\n props: {\n blocksMerge: blocksMerge === 'true',\n },\n });\n },\n });\n }\n}\n","import initMrNotes from '~/mr_notes/init_mr_notes';\n\nexport default () => {\n initMrNotes();\n};\n","import initCherryPickCommitModal from '~/projects/commit/init_cherry_pick_commit_modal';\nimport initRevertCommitModal from '~/projects/commit/init_revert_commit_modal';\nimport { initMrStateLazyLoad } from '~/mr_notes/init';\nimport MergeRequest from '../merge_request';\nimport { resetServiceWorkersPublicPath } from '../lib/utils/webpack';\n\nexport default function initMrNotes(lazyLoadParams) {\n resetServiceWorkersPublicPath();\n\n const mrShowNode = document.querySelector('.merge-request');\n // eslint-disable-next-line no-new\n new MergeRequest({\n action: mrShowNode.dataset.mrAction,\n });\n\n initMrStateLazyLoad(undefined, lazyLoadParams);\n\n document.addEventListener('merged:UpdateActions', () => {\n initRevertCommitModal('i_code_review_post_merge_submit_revert_modal');\n initCherryPickCommitModal('i_code_review_post_merge_submit_cherry_pick_modal');\n });\n}\n","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!./sticky_header.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!./sticky_header.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlIntersectionObserver,\n GlLink,\n GlSprintf,\n GlBadge,\n GlIcon,\n GlTooltipDirective,\n} from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapState } from 'vuex';\nimport { __ } from '~/locale';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { shouldDisableShortcuts } from '~/behaviors/shortcuts/shortcuts_toggle';\nimport { sanitize } from '~/lib/dompurify';\nimport { TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport StatusBadge from '~/issuable/components/status_badge.vue';\nimport ImportedBadge from '~/vue_shared/components/imported_badge.vue';\nimport { TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport DiscussionCounter from '~/notes/components/discussion_counter.vue';\nimport TodoWidget from '~/sidebar/components/todo_toggle/sidebar_todo_widget.vue';\nimport SubscriptionsWidget from '~/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue';\nimport ClipboardButton from '~/vue_shared/components/clipboard_button.vue';\nimport titleSubscription from '../queries/title.subscription.graphql';\nimport { badgeState } from './merge_request_header.vue';\n\nexport default {\n TYPE_MERGE_REQUEST,\n apollo: {\n $subscribe: {\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n title: {\n query() {\n return titleSubscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return !this.issuableId;\n },\n result({ data: { mergeRequestMergeStatusUpdated } }) {\n if (mergeRequestMergeStatusUpdated) {\n this.titleHtml = mergeRequestMergeStatusUpdated.titleHtml;\n }\n },\n },\n },\n },\n components: {\n GlIntersectionObserver,\n GlLink,\n GlSprintf,\n GlBadge,\n GlIcon,\n DiscussionCounter,\n StatusBadge,\n ImportedBadge,\n TodoWidget,\n SubscriptionsWidget,\n ClipboardButton,\n },\n directives: {\n SafeHtml,\n GlTooltip: GlTooltipDirective,\n },\n mixins: [glFeatureFlagsMixin()],\n inject: {\n defaultBranchName: { default: '' },\n projectPath: { default: null },\n sourceProjectPath: { default: null },\n title: { default: '' },\n isFluidLayout: { default: false },\n blocksMerge: { default: false },\n },\n props: {\n isImported: {\n type: Boolean,\n required: false,\n default: false,\n },\n tabs: {\n type: Array,\n required: true,\n },\n },\n data() {\n return {\n isStickyHeaderVisible: false,\n discussionCounter: 0,\n titleHtml: this.title,\n };\n },\n computed: {\n ...mapGetters(['getNoteableData', 'discussionTabCounter']),\n ...mapState({\n activeTab: (state) => state.page.activeTab,\n doneFetchingBatchDiscussions: (state) => state.notes.doneFetchingBatchDiscussions,\n }),\n badgeState() {\n return badgeState;\n },\n issuableId() {\n return convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.getNoteableData.id);\n },\n issuableIid() {\n return `${this.getNoteableData.iid}`;\n },\n isSignedIn() {\n return isLoggedIn();\n },\n isNotificationsTodosButtons() {\n return this.glFeatures.notificationsTodosButtons;\n },\n isForked() {\n return this.projectPath !== this.sourceProjectPath;\n },\n sourceBranch() {\n if (this.isForked) {\n return `${this.sourceProjectPath}:${this.getNoteableData.source_branch}`;\n }\n\n return this.getNoteableData.source_branch;\n },\n copySourceBranchTooltip() {\n const description = __('Copy branch name');\n return shouldDisableShortcuts()\n ? description\n : sanitize(`${description} <kbd class=\"flat gl-ml-1\" aria-hidden=true>b</kbd>`);\n },\n shouldShowTargetCopyButton() {\n return this.getNoteableData.target_branch !== this.defaultBranchName;\n },\n },\n watch: {\n discussionTabCounter(val) {\n if (this.doneFetchingBatchDiscussions) {\n this.discussionCounter = val;\n }\n },\n },\n methods: {\n setStickyHeaderVisible(val) {\n this.isStickyHeaderVisible = val;\n },\n visitTab(e) {\n window.mrTabs?.clickTab(e);\n },\n },\n safeHtmlConfig: {\n ADD_TAGS: ['gl-emoji'],\n },\n};\n</script>\n\n<template>\n <gl-intersection-observer\n class=\"gl-relative -gl-top-5\"\n @appear=\"setStickyHeaderVisible(false)\"\n @disappear=\"setStickyHeaderVisible(true)\"\n >\n <div\n class=\"issue-sticky-header merge-request-sticky-header gl-border-b gl-fixed gl-hidden gl-flex-col gl-justify-end gl-bg-default md:gl-flex\"\n :class=\"{ 'gl-invisible': !isStickyHeaderVisible }\"\n >\n <div\n class=\"issue-sticky-header-text gl-mx-auto gl-flex gl-w-full gl-flex-col gl-items-center\"\n :class=\"{ 'container-limited': !isFluidLayout }\"\n >\n <div class=\"gl-flex gl-w-full gl-items-center gl-gap-2\">\n <status-badge :issuable-type=\"$options.TYPE_MERGE_REQUEST\" :state=\"badgeState.state\" />\n <imported-badge v-if=\"isImported\" :importable-type=\"$options.TYPE_MERGE_REQUEST\" />\n <a\n v-safe-html:[$options.safeHtmlConfig]=\"titleHtml\"\n href=\"#top\"\n class=\"gl-my-0 gl-ml-1 gl-mr-2 gl-hidden gl-overflow-hidden gl-text-ellipsis gl-whitespace-nowrap gl-font-bold gl-text-default lg:gl-block\"\n ></a>\n <div class=\"gl-flex gl-items-center\">\n <gl-sprintf :message=\"__('%{source} %{copyButton} into %{target} %{targetCopyButton}')\">\n <template #copyButton>\n <clipboard-button\n tooltip-placement=\"bottom\"\n :title=\"copySourceBranchTooltip\"\n :text=\"getNoteableData.source_branch\"\n size=\"small\"\n category=\"tertiary\"\n class=\"js-source-branch-copy gl-mx-1\"\n />\n </template>\n <template #source>\n <gl-link\n :title=\"getNoteableData.source_branch\"\n :href=\"getNoteableData.source_branch_path\"\n class=\"ref-container gl-mt-2 gl-max-w-26 gl-truncate gl-rounded-base gl-px-2 gl-text-sm gl-font-monospace\"\n data-testid=\"source-branch\"\n >\n <span\n v-if=\"isForked\"\n v-gl-tooltip\n class=\"-gl-mr-2 gl-align-middle\"\n :title=\"__('The source project is a fork')\"\n >\n <gl-icon name=\"fork\" :size=\"12\" class=\"gl-ml-1\" />\n </span>\n {{ sourceBranch }}\n </gl-link>\n </template>\n <template #targetCopyButton>\n <clipboard-button\n v-if=\"shouldShowTargetCopyButton\"\n tooltip-placement=\"bottom\"\n :title=\"__('Copy branch name')\"\n :text=\"getNoteableData.target_branch\"\n size=\"small\"\n category=\"tertiary\"\n class=\"gl-mx-1\"\n />\n </template>\n <template #target>\n <gl-link\n :title=\"getNoteableData.target_branch\"\n :href=\"getNoteableData.target_branch_path\"\n class=\"ref-container gl-ml-2 gl-mt-2 gl-max-w-26 gl-truncate gl-rounded-base gl-px-2 gl-text-sm gl-font-monospace\"\n >\n {{ getNoteableData.target_branch }}\n </gl-link>\n </template>\n </gl-sprintf>\n </div>\n </div>\n <div class=\"gl-flex gl-w-full\">\n <ul\n class=\"merge-request-tabs nav-tabs nav nav-links gl-m-0 gl-flex gl-flex-nowrap gl-border-b-0 gl-p-0\"\n >\n <li\n v-for=\"(tab, index) in tabs\"\n :key=\"tab[0]\"\n :class=\"{ active: activeTab === tab[0] }\"\n >\n <gl-link :href=\"tab[2]\" :data-action=\"tab[0]\" class=\"!gl-py-4\" @click=\"visitTab\">\n {{ tab[1] }}\n <gl-badge variant=\"muted\">\n <template v-if=\"index === 0 && discussionCounter !== 0\">\n {{ discussionCounter }}\n </template>\n <template v-else>\n {{ tab[3] }}\n </template>\n </gl-badge>\n </gl-link>\n </li>\n </ul>\n <div class=\"gl-ml-auto gl-hidden gl-items-center lg:gl-flex\">\n <discussion-counter :blocks-merge=\"blocksMerge\" hide-options />\n <div v-if=\"isSignedIn\" :class=\"{ 'gl-flex gl-gap-3': isNotificationsTodosButtons }\">\n <todo-widget\n :issuable-id=\"issuableId\"\n :issuable-iid=\"issuableIid\"\n :full-path=\"projectPath\"\n issuable-type=\"merge_request\"\n />\n <subscriptions-widget\n v-if=\"isNotificationsTodosButtons\"\n :iid=\"issuableIid\"\n :full-path=\"projectPath\"\n issuable-type=\"merge_request\"\n />\n </div>\n </div>\n </div>\n </div>\n </div>\n </gl-intersection-observer>\n</template>\n","import { render, staticRenderFns } from \"./sticky_header.vue?vue&type=template&id=4c0a067f\"\nimport script from \"./sticky_header.vue?vue&type=script&lang=js\"\nexport * from \"./sticky_header.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-intersection-observer',{staticClass:\"gl-relative -gl-top-5\",on:{\"appear\":function($event){return _vm.setStickyHeaderVisible(false)},\"disappear\":function($event){return _vm.setStickyHeaderVisible(true)}}},[_c('div',{staticClass:\"issue-sticky-header merge-request-sticky-header gl-border-b gl-fixed gl-hidden gl-flex-col gl-justify-end gl-bg-default md:gl-flex\",class:{ 'gl-invisible': !_vm.isStickyHeaderVisible }},[_c('div',{staticClass:\"issue-sticky-header-text gl-mx-auto gl-flex gl-w-full gl-flex-col gl-items-center\",class:{ 'container-limited': !_vm.isFluidLayout }},[_c('div',{staticClass:\"gl-flex gl-w-full gl-items-center gl-gap-2\"},[_c('status-badge',{attrs:{\"issuable-type\":_vm.$options.TYPE_MERGE_REQUEST,\"state\":_vm.badgeState.state}}),_vm._v(\" \"),(_vm.isImported)?_c('imported-badge',{attrs:{\"importable-type\":_vm.$options.TYPE_MERGE_REQUEST}}):_vm._e(),_vm._v(\" \"),_c('a',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.titleHtml),expression:\"titleHtml\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"gl-my-0 gl-ml-1 gl-mr-2 gl-hidden gl-overflow-hidden gl-text-ellipsis gl-whitespace-nowrap gl-font-bold gl-text-default lg:gl-block\",attrs:{\"href\":\"#top\"}}),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-items-center\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.__('%{source} %{copyButton} into %{target} %{targetCopyButton}')},scopedSlots:_vm._u([{key:\"copyButton\",fn:function(){return [_c('clipboard-button',{staticClass:\"js-source-branch-copy gl-mx-1\",attrs:{\"tooltip-placement\":\"bottom\",\"title\":_vm.copySourceBranchTooltip,\"text\":_vm.getNoteableData.source_branch,\"size\":\"small\",\"category\":\"tertiary\"}})]},proxy:true},{key:\"source\",fn:function(){return [_c('gl-link',{staticClass:\"ref-container gl-mt-2 gl-max-w-26 gl-truncate gl-rounded-base gl-px-2 gl-text-sm gl-font-monospace\",attrs:{\"title\":_vm.getNoteableData.source_branch,\"href\":_vm.getNoteableData.source_branch_path,\"data-testid\":\"source-branch\"}},[(_vm.isForked)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"-gl-mr-2 gl-align-middle\",attrs:{\"title\":_vm.__('The source project is a fork')}},[_c('gl-icon',{staticClass:\"gl-ml-1\",attrs:{\"name\":\"fork\",\"size\":12}})],1):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.sourceBranch)+\"\\n \")])]},proxy:true},{key:\"targetCopyButton\",fn:function(){return [(_vm.shouldShowTargetCopyButton)?_c('clipboard-button',{staticClass:\"gl-mx-1\",attrs:{\"tooltip-placement\":\"bottom\",\"title\":_vm.__('Copy branch name'),\"text\":_vm.getNoteableData.target_branch,\"size\":\"small\",\"category\":\"tertiary\"}}):_vm._e()]},proxy:true},{key:\"target\",fn:function(){return [_c('gl-link',{staticClass:\"ref-container gl-ml-2 gl-mt-2 gl-max-w-26 gl-truncate gl-rounded-base gl-px-2 gl-text-sm gl-font-monospace\",attrs:{\"title\":_vm.getNoteableData.target_branch,\"href\":_vm.getNoteableData.target_branch_path}},[_vm._v(\"\\n \"+_vm._s(_vm.getNoteableData.target_branch)+\"\\n \")])]},proxy:true}])})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-w-full\"},[_c('ul',{staticClass:\"merge-request-tabs nav-tabs nav nav-links gl-m-0 gl-flex gl-flex-nowrap gl-border-b-0 gl-p-0\"},_vm._l((_vm.tabs),function(tab,index){return _c('li',{key:tab[0],class:{ active: _vm.activeTab === tab[0] }},[_c('gl-link',{staticClass:\"!gl-py-4\",attrs:{\"href\":tab[2],\"data-action\":tab[0]},on:{\"click\":_vm.visitTab}},[_vm._v(\"\\n \"+_vm._s(tab[1])+\"\\n \"),_c('gl-badge',{attrs:{\"variant\":\"muted\"}},[(index === 0 && _vm.discussionCounter !== 0)?[_vm._v(\"\\n \"+_vm._s(_vm.discussionCounter)+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(tab[3])+\"\\n \")]],2)],1)],1)}),0),_vm._v(\" \"),_c('div',{staticClass:\"gl-ml-auto gl-hidden gl-items-center lg:gl-flex\"},[_c('discussion-counter',{attrs:{\"blocks-merge\":_vm.blocksMerge,\"hide-options\":\"\"}}),_vm._v(\" \"),(_vm.isSignedIn)?_c('div',{class:{ 'gl-flex gl-gap-3': _vm.isNotificationsTodosButtons }},[_c('todo-widget',{attrs:{\"issuable-id\":_vm.issuableId,\"issuable-iid\":_vm.issuableIid,\"full-path\":_vm.projectPath,\"issuable-type\":\"merge_request\"}}),_vm._v(\" \"),(_vm.isNotificationsTodosButtons)?_c('subscriptions-widget',{attrs:{\"iid\":_vm.issuableIid,\"full-path\":_vm.projectPath,\"issuable-type\":\"merge_request\"}}):_vm._e()],1):_vm._e()],1)])])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import diffGeneratedSubscription from '~/pages/projects/merge_requests/queries/diff_generated.subscription.graphql';\n\nimport createApolloClient from '../lib/graphql';\n\nimport { getDerivedMergeRequestInformation } from '../diffs/utils/merge_request';\nimport { EVT_MR_PREPARED, EVT_MR_DIFF_GENERATED } from '../diffs/constants';\n\nimport getMr from '../graphql_shared/queries/merge_request.query.graphql';\nimport mrPreparation from '../graphql_shared/subscriptions/merge_request_prepared.subscription.graphql';\n\nfunction required(name) {\n throw new Error(`${name} is a required argument`);\n}\n\nasync function observeMergeRequestFinishingPreparation({ apollo, signaler }) {\n const {\n namespace,\n project,\n id: iid,\n } = getDerivedMergeRequestInformation({\n endpoint: document.location.pathname,\n });\n const projectPath = `${namespace}/${project}`;\n\n if (projectPath && iid) {\n const currentStatus = await apollo.query({\n query: getMr,\n variables: { projectPath, iid },\n });\n\n if (!currentStatus.data.project) {\n return;\n }\n\n const { id: gqlMrId, preparedAt } = currentStatus.data.project.mergeRequest;\n let preparationObservable;\n let preparationSubscriber;\n\n if (!preparedAt) {\n preparationObservable = apollo.subscribe({\n query: mrPreparation,\n variables: {\n issuableId: gqlMrId,\n },\n });\n\n preparationSubscriber = preparationObservable.subscribe((preparationUpdate) => {\n if (preparationUpdate.data.mergeRequestMergeStatusUpdated?.preparedAt) {\n signaler.$emit(EVT_MR_PREPARED);\n preparationSubscriber.unsubscribe();\n }\n });\n } else {\n signaler.$emit(EVT_MR_DIFF_GENERATED, currentStatus.data.project.mergeRequest);\n }\n }\n}\n\nfunction observeMergeRequestDiffGenerated({ apollo, signaler }) {\n const tabCount = document.querySelector('.js-changes-tab-count');\n\n if (!tabCount || tabCount?.textContent !== '-') return;\n\n const susbription = apollo.subscribe({\n query: diffGeneratedSubscription,\n variables: {\n issuableId: tabCount.dataset.gid,\n },\n });\n\n const subscriber = susbription.subscribe(({ data: { mergeRequestDiffGenerated } }) => {\n if (mergeRequestDiffGenerated) {\n signaler.$emit(EVT_MR_DIFF_GENERATED, mergeRequestDiffGenerated);\n subscriber.unsubscribe();\n }\n });\n}\n\nexport async function start({\n signalBus = required('signalBus'),\n apolloClient = createApolloClient(),\n} = {}) {\n observeMergeRequestDiffGenerated({ signaler: signalBus, apollo: apolloClient });\n\n await observeMergeRequestFinishingPreparation({ signaler: signalBus, apollo: apolloClient });\n}\n","<script>\nimport {\n GlLoadingIcon,\n GlButton,\n GlIcon,\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n GlDisclosureDropdownGroup,\n GlTooltipDirective,\n} from '@gitlab/ui';\nimport Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport { __, s__ } from '~/locale';\nimport api from '~/api';\nimport axios from '~/lib/utils/axios_utils';\nimport { createAlert } from '~/alert';\nimport MergeRequest from '~/merge_request';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport SidebarSubscriptionsWidget from '~/sidebar/components/subscriptions/sidebar_subscriptions_widget.vue';\nimport AbuseCategorySelector from '~/abuse_reports/components/abuse_category_selector.vue';\nimport { TYPE_MERGE_REQUEST } from '~/issues/constants';\n\nVue.use(VueApollo);\n\nexport default {\n apolloProvider,\n i18n: {\n edit: __('Edit'),\n copyReferenceText: __('Copy reference'),\n errorMessage: __('Something went wrong. Please try again.'),\n issuableName: __('merge request'),\n reportAbuse: __('Report abuse'),\n markAsReady: __('Mark as ready'),\n markAsDraft: __('Mark as draft'),\n close: __('Close %{issuableType}'),\n closing: __('Closing %{issuableType}...'),\n reopen: __('Reopen %{issuableType}'),\n reopening: __('Reopening %{issuableType}...'),\n lock: __('Lock %{issuableType}'),\n mergeRequestActions: __('Merge request actions'),\n },\n components: {\n GlLoadingIcon,\n GlButton,\n GlIcon,\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n GlDisclosureDropdownGroup,\n SidebarSubscriptionsWidget,\n AbuseCategorySelector,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [glFeatureFlagMixin()],\n inject: {\n reportAbusePath: {\n default: '',\n },\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n projectPath: {\n type: String,\n default: '',\n required: false,\n },\n url: {\n type: String,\n default: '',\n required: false,\n },\n editUrl: {\n type: String,\n default: '',\n required: false,\n },\n isCurrentUser: {\n type: Boolean,\n default: false,\n required: true,\n },\n isLoggedIn: {\n type: Boolean,\n defauilt: false,\n required: false,\n },\n canUpdateMergeRequest: {\n type: Boolean,\n default: false,\n required: false,\n },\n open: {\n type: Boolean,\n default: false,\n required: false,\n },\n isMerged: {\n type: Boolean,\n default: false,\n required: false,\n },\n sourceProjectMissing: {\n type: Boolean,\n default: false,\n required: false,\n },\n clipboardText: {\n type: String,\n default: '',\n required: false,\n },\n reportedUserId: {\n type: Number,\n default: 0,\n required: false,\n },\n },\n data() {\n return {\n isOpen: this.open,\n draft: this.mr.draft,\n issuableType: TYPE_MERGE_REQUEST,\n fullPath: this.projectPath,\n isLoading: false,\n isLoadingDraft: false,\n isLoadingClipboard: false,\n isReportAbuseDrawerOpen: false,\n isDropdownVisible: false,\n };\n },\n computed: {\n isNotificationsTodosButtons() {\n return this.glFeatures.notificationsTodosButtons;\n },\n draftLabel() {\n return this.draft ? this.$options.i18n.markAsReady : this.$options.i18n.markAsDraft;\n },\n draftState() {\n return this.draft ? 'ready' : 'draft';\n },\n editItem() {\n return {\n text: this.$options.i18n.edit,\n href: this.editUrl,\n };\n },\n showDropdownTooltip() {\n return !this.isDropdownVisible ? this.$options.i18n.mergeRequestActions : '';\n },\n },\n methods: {\n draftAction() {\n this.isLoadingDraft = true;\n\n axios\n .put(`${this.url}?merge_request[wip_event]=${this.draftState}`, null, {\n params: { format: 'json' },\n })\n .then(({ data }) => {\n MergeRequest.toggleDraftStatus(data.title, this.draft);\n })\n .catch(() => {\n createAlert({\n message: this.$options.i18n.errorMessage,\n });\n })\n .finally(() => {\n this.draft = !this.draft;\n this.isLoadingDraft = false;\n this.closeActionsDropdown();\n });\n },\n stateAction(state) {\n this.isLoading = true;\n\n api\n .updateMergeRequest(this.mr.target_project_id, this.mr.iid, { state_event: state })\n .then(() => {\n window.location.reload();\n })\n .catch(() => {\n createAlert({\n message: this.$options.i18n.errorMessage,\n });\n })\n .finally(() => {\n this.isOpen = !this.isOpen;\n this.isLoading = false;\n this.closeActionsDropdown();\n });\n },\n copyClipboardAction() {\n this.$toast.show(s__('MergeRequests|Reference copied'));\n this.closeActionsDropdown();\n },\n reportAbuseAction(isOpen) {\n if (isOpen) {\n this.closeActionsDropdown();\n }\n\n this.isReportAbuseDrawerOpen = isOpen;\n },\n closeActionsDropdown() {\n this.$refs.mrMoreActionsDropdown.close();\n },\n showReopenMergeRequestOption() {\n return !this.sourceProjectMissing && !this.isOpen;\n },\n showDropdown() {\n this.isDropdownVisible = true;\n },\n hideDropdown() {\n this.isDropdownVisible = false;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-flex gl-w-full gl-justify-end\" data-testid=\"merge-request-actions\">\n <gl-disclosure-dropdown\n id=\"new-actions-header-dropdown\"\n ref=\"mrMoreActionsDropdown\"\n v-gl-tooltip=\"showDropdownTooltip\"\n :title=\"$options.i18n.mergeRequestActions\"\n data-testid=\"dropdown-toggle\"\n placement=\"bottom-end\"\n block\n class=\"gl-w-full\"\n :auto-close=\"false\"\n @shown=\"showDropdown\"\n @hidden=\"hideDropdown\"\n >\n <template #toggle>\n <div class=\"gl-mb-2 gl-min-h-7 sm:!gl-mb-0\">\n <gl-button\n class=\"gl-new-dropdown-toggle gl-w-full sm:!gl-hidden\"\n button-text-classes=\"gl-flex gl-justify-between gl-w-full\"\n category=\"secondary\"\n tabindex=\"0\"\n :aria-label=\"$options.i18n.mergeRequestActions\"\n >\n <span class=\"\">{{ $options.i18n.mergeRequestActions }}</span>\n <gl-icon class=\"dropdown-chevron\" name=\"chevron-down\" />\n </gl-button>\n <gl-button\n class=\"gl-new-dropdown-toggle gl-new-dropdown-icon-only gl-new-dropdown-toggle-no-caret gl-hidden sm:!gl-flex\"\n category=\"tertiary\"\n icon=\"ellipsis_v\"\n tabindex=\"0\"\n :aria-label=\"$options.i18n.mergeRequestActions\"\n :title=\"$options.i18n.mergeRequestActions\"\n />\n </div>\n </template>\n <gl-disclosure-dropdown-group v-if=\"isLoggedIn && !isNotificationsTodosButtons\">\n <sidebar-subscriptions-widget\n :iid=\"String(mr.iid)\"\n :full-path=\"fullPath\"\n :issuable-type=\"issuableType\"\n data-testid=\"notification-toggle\"\n />\n </gl-disclosure-dropdown-group>\n\n <gl-disclosure-dropdown-group\n bordered\n :class=\"{\n '!gl-mt-0 !gl-border-t-0 !gl-pt-0': !isLoggedIn || isNotificationsTodosButtons,\n }\"\n >\n <gl-disclosure-dropdown-item\n v-if=\"canUpdateMergeRequest\"\n class=\"sm:!gl-hidden\"\n data-testid=\"edit-merge-request\"\n :item=\"editItem\"\n />\n\n <gl-disclosure-dropdown-item\n v-if=\"isOpen && canUpdateMergeRequest\"\n data-testid=\"ready-and-draft-action\"\n @action=\"draftAction\"\n >\n <template #list-item>\n <gl-loading-icon v-if=\"isLoadingDraft\" inline size=\"sm\" />\n {{ draftLabel }}\n </template>\n </gl-disclosure-dropdown-item>\n\n <gl-disclosure-dropdown-item\n v-if=\"isOpen && canUpdateMergeRequest\"\n @action=\"stateAction('close')\"\n >\n <template #list-item>\n <template v-if=\"isLoading\">\n <gl-loading-icon inline size=\"sm\" />\n {{\n sprintf($options.i18n.closing, {\n issuableType: $options.i18n.issuableName,\n })\n }}\n </template>\n <template v-else>\n {{ sprintf($options.i18n.close, { issuableType: $options.i18n.issuableName }) }}\n </template>\n </template>\n </gl-disclosure-dropdown-item>\n\n <gl-disclosure-dropdown-item\n v-else-if=\"!isMerged && showReopenMergeRequestOption && canUpdateMergeRequest\"\n data-testid=\"reopen-merge-request\"\n @action=\"stateAction('reopen')\"\n >\n <template #list-item>\n <template v-if=\"isLoading\">\n <gl-loading-icon inline size=\"sm\" />\n {{\n sprintf($options.i18n.reopening, {\n issuableType: $options.i18n.issuableName,\n })\n }}\n </template>\n <template v-else>\n {{ sprintf($options.i18n.reopen, { issuableType: $options.i18n.issuableName }) }}\n </template>\n </template>\n </gl-disclosure-dropdown-item>\n\n <gl-disclosure-dropdown-item class=\"js-sidebar-lock-root\">\n <template #list-item>\n {{ sprintf($options.i18n.lock, { issuableType: $options.i18n.issuableName }) }}\n </template>\n </gl-disclosure-dropdown-item>\n\n <gl-disclosure-dropdown-item\n class=\"js-copy-reference\"\n :data-clipboard-text=\"clipboardText\"\n data-testid=\"copy-reference\"\n @action=\"copyClipboardAction\"\n >\n <template #list-item>\n {{ $options.i18n.copyReferenceText }}\n </template>\n </gl-disclosure-dropdown-item>\n </gl-disclosure-dropdown-group>\n\n <gl-disclosure-dropdown-group\n v-if=\"!isCurrentUser\"\n bordered\n :class=\"{ '!gl-mt-0 !gl-border-t-0 !gl-pt-0': !canUpdateMergeRequest }\"\n >\n <gl-disclosure-dropdown-item\n class=\"js-report-abuse-dropdown-item\"\n data-testid=\"report-abuse-option\"\n @action=\"reportAbuseAction(true)\"\n >\n <template #list-item>\n {{ $options.i18n.reportAbuse }}\n </template>\n </gl-disclosure-dropdown-item>\n </gl-disclosure-dropdown-group>\n </gl-disclosure-dropdown>\n\n <abuse-category-selector\n v-if=\"!isCurrentUser && isReportAbuseDrawerOpen\"\n :reported-user-id=\"reportedUserId\"\n :reported-from-url=\"url\"\n :show-drawer=\"isReportAbuseDrawerOpen\"\n @close-drawer=\"reportAbuseAction(false)\"\n />\n </div>\n</template>\n","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!./mr_more_dropdown.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!./mr_more_dropdown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./mr_more_dropdown.vue?vue&type=template&id=77c5ecd1\"\nimport script from \"./mr_more_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./mr_more_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-flex gl-w-full gl-justify-end\",attrs:{\"data-testid\":\"merge-request-actions\"}},[_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.showDropdownTooltip),expression:\"showDropdownTooltip\"}],ref:\"mrMoreActionsDropdown\",staticClass:\"gl-w-full\",attrs:{\"id\":\"new-actions-header-dropdown\",\"title\":_vm.$options.i18n.mergeRequestActions,\"data-testid\":\"dropdown-toggle\",\"placement\":\"bottom-end\",\"block\":\"\",\"auto-close\":false},on:{\"shown\":_vm.showDropdown,\"hidden\":_vm.hideDropdown},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('div',{staticClass:\"gl-mb-2 gl-min-h-7 sm:!gl-mb-0\"},[_c('gl-button',{staticClass:\"gl-new-dropdown-toggle gl-w-full sm:!gl-hidden\",attrs:{\"button-text-classes\":\"gl-flex gl-justify-between gl-w-full\",\"category\":\"secondary\",\"tabindex\":\"0\",\"aria-label\":_vm.$options.i18n.mergeRequestActions}},[_c('span',{},[_vm._v(_vm._s(_vm.$options.i18n.mergeRequestActions))]),_vm._v(\" \"),_c('gl-icon',{staticClass:\"dropdown-chevron\",attrs:{\"name\":\"chevron-down\"}})],1),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-new-dropdown-toggle gl-new-dropdown-icon-only gl-new-dropdown-toggle-no-caret gl-hidden sm:!gl-flex\",attrs:{\"category\":\"tertiary\",\"icon\":\"ellipsis_v\",\"tabindex\":\"0\",\"aria-label\":_vm.$options.i18n.mergeRequestActions,\"title\":_vm.$options.i18n.mergeRequestActions}})],1)]},proxy:true}])},[_vm._v(\" \"),(_vm.isLoggedIn && !_vm.isNotificationsTodosButtons)?_c('gl-disclosure-dropdown-group',[_c('sidebar-subscriptions-widget',{attrs:{\"iid\":String(_vm.mr.iid),\"full-path\":_vm.fullPath,\"issuable-type\":_vm.issuableType,\"data-testid\":\"notification-toggle\"}})],1):_vm._e(),_vm._v(\" \"),_c('gl-disclosure-dropdown-group',{class:{\n '!gl-mt-0 !gl-border-t-0 !gl-pt-0': !_vm.isLoggedIn || _vm.isNotificationsTodosButtons,\n },attrs:{\"bordered\":\"\"}},[(_vm.canUpdateMergeRequest)?_c('gl-disclosure-dropdown-item',{staticClass:\"sm:!gl-hidden\",attrs:{\"data-testid\":\"edit-merge-request\",\"item\":_vm.editItem}}):_vm._e(),_vm._v(\" \"),(_vm.isOpen && _vm.canUpdateMergeRequest)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"ready-and-draft-action\"},on:{\"action\":_vm.draftAction},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [(_vm.isLoadingDraft)?_c('gl-loading-icon',{attrs:{\"inline\":\"\",\"size\":\"sm\"}}):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.draftLabel)+\"\\n \")]},proxy:true}],null,false,3822503056)}):_vm._e(),_vm._v(\" \"),(_vm.isOpen && _vm.canUpdateMergeRequest)?_c('gl-disclosure-dropdown-item',{on:{\"action\":function($event){return _vm.stateAction('close')}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [(_vm.isLoading)?[_c('gl-loading-icon',{attrs:{\"inline\":\"\",\"size\":\"sm\"}}),_vm._v(\"\\n \"+_vm._s(_vm.sprintf(_vm.$options.i18n.closing, {\n issuableType: _vm.$options.i18n.issuableName,\n }))+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.sprintf(_vm.$options.i18n.close, { issuableType: _vm.$options.i18n.issuableName }))+\"\\n \")]]},proxy:true}],null,false,3369587329)}):(!_vm.isMerged && _vm.showReopenMergeRequestOption && _vm.canUpdateMergeRequest)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"reopen-merge-request\"},on:{\"action\":function($event){return _vm.stateAction('reopen')}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [(_vm.isLoading)?[_c('gl-loading-icon',{attrs:{\"inline\":\"\",\"size\":\"sm\"}}),_vm._v(\"\\n \"+_vm._s(_vm.sprintf(_vm.$options.i18n.reopening, {\n issuableType: _vm.$options.i18n.issuableName,\n }))+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.sprintf(_vm.$options.i18n.reopen, { issuableType: _vm.$options.i18n.issuableName }))+\"\\n \")]]},proxy:true}])}):_vm._e(),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{staticClass:\"js-sidebar-lock-root\",scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.sprintf(_vm.$options.i18n.lock, { issuableType: _vm.$options.i18n.issuableName }))+\"\\n \")]},proxy:true}])}),_vm._v(\" \"),_c('gl-disclosure-dropdown-item',{staticClass:\"js-copy-reference\",attrs:{\"data-clipboard-text\":_vm.clipboardText,\"data-testid\":\"copy-reference\"},on:{\"action\":_vm.copyClipboardAction},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.copyReferenceText)+\"\\n \")]},proxy:true}])})],1),_vm._v(\" \"),(!_vm.isCurrentUser)?_c('gl-disclosure-dropdown-group',{class:{ '!gl-mt-0 !gl-border-t-0 !gl-pt-0': !_vm.canUpdateMergeRequest },attrs:{\"bordered\":\"\"}},[_c('gl-disclosure-dropdown-item',{staticClass:\"js-report-abuse-dropdown-item\",attrs:{\"data-testid\":\"report-abuse-option\"},on:{\"action\":function($event){return _vm.reportAbuseAction(true)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.reportAbuse)+\"\\n \")]},proxy:true}],null,false,4008098910)})],1):_vm._e()],1),_vm._v(\" \"),(!_vm.isCurrentUser && _vm.isReportAbuseDrawerOpen)?_c('abuse-category-selector',{attrs:{\"reported-user-id\":_vm.reportedUserId,\"reported-from-url\":_vm.url,\"show-drawer\":_vm.isReportAbuseDrawerOpen},on:{\"close-drawer\":function($event){return _vm.reportAbuseAction(false)}}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Tracker } from '~/tracking/tracker';\n\nconst MR_SURVEY_WAIT_DURATION = 10000;\n\nconst broadcastNotificationVisible = () => {\n // We don't want to clutter up the UI by displaying the survey when broadcast message(s)\n // are visible as well.\n return Boolean(document.querySelector('.broadcast-notification-message'));\n};\n\nexport const initMrExperienceSurvey = () => {\n if (!gon.features?.mrExperienceSurvey) return;\n if (!gon.current_user_id) return;\n if (!Tracker.enabled()) return;\n if (broadcastNotificationVisible()) return;\n\n setTimeout(() => {\n // eslint-disable-next-line promise/catch-or-return\n import('./app').then(({ startMrSurveyApp }) => {\n startMrSurveyApp();\n });\n }, MR_SURVEY_WAIT_DURATION);\n};\n","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport initMrNotes from 'ee_else_ce/mr_notes';\nimport StickyHeader from '~/merge_requests/components/sticky_header.vue';\nimport { start as startCodeReviewMessaging } from '~/code_review/signals';\nimport diffsEventHub from '~/diffs/event_hub';\nimport { EVT_MR_DIFF_GENERATED } from '~/diffs/constants';\nimport store from '~/mr_notes/stores';\nimport initSidebarBundle from '~/sidebar/sidebar_bundle';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport { initMrMoreDropdown } from '~/mr_more_dropdown';\nimport initShow from './init_merge_request_show';\nimport getStateQuery from './queries/get_state.query.graphql';\n\nVue.use(VueApollo);\n\nconst tabData = Vue.observable({\n tabs: [],\n});\n\nexport function initMrPage() {\n initMrNotes();\n initShow(store);\n initMrMoreDropdown();\n startCodeReviewMessaging({ signalBus: diffsEventHub });\n\n const changesCountBadge = document.querySelector('.js-changes-tab-count');\n diffsEventHub.$on(EVT_MR_DIFF_GENERATED, (mergeRequestDiffGenerated) => {\n const { fileCount } = mergeRequestDiffGenerated.diffStatsSummary;\n\n if (changesCountBadge.textContent === '-') {\n changesCountBadge.textContent = fileCount;\n\n const DIFF_TAB_INDEX = 3;\n const diffTab = tabData.tabs ? tabData.tabs[tabData.tabs.length - 1] : [];\n\n const hasDiffTab = diffTab?.length >= DIFF_TAB_INDEX + 1;\n if (hasDiffTab) {\n diffTab[DIFF_TAB_INDEX] = fileCount;\n }\n }\n });\n}\n\nrequestIdleCallback(() => {\n initSidebarBundle(store);\n\n const el = document.getElementById('js-merge-sticky-header');\n\n if (el) {\n const { data } = el.dataset;\n\n let parsedData;\n\n try {\n parsedData = JSON.parse(data);\n } catch {\n parsedData = {};\n }\n\n const {\n iid,\n projectPath,\n title,\n tabs,\n defaultBranchName,\n isFluidLayout,\n sourceProjectPath,\n blocksMerge,\n imported,\n } = parsedData;\n\n tabData.tabs = tabs;\n\n // eslint-disable-next-line no-new\n new Vue({\n el,\n name: 'MergeRequestStickyHeaderRoot',\n store,\n apolloProvider,\n provide: {\n query: getStateQuery,\n iid,\n defaultBranchName,\n projectPath,\n title,\n isFluidLayout: parseBoolean(isFluidLayout),\n blocksMerge: parseBoolean(blocksMerge),\n sourceProjectPath,\n },\n render(h) {\n return h(StickyHeader, {\n props: {\n tabs: tabData.tabs,\n isImported: parseBoolean(imported),\n },\n });\n },\n });\n }\n});\n","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport { s__ } from '~/locale';\nimport { addShortcutsExtension } from '~/behaviors/shortcuts';\nimport ShortcutsIssuable from '~/behaviors/shortcuts/shortcuts_issuable';\nimport { initPipelineCountListener } from '~/commit/pipelines/utils';\nimport { initIssuableSidebar } from '~/issuable';\nimport MergeRequestHeader from '~/merge_requests/components/merge_request_header.vue';\nimport createDefaultClient from '~/lib/graphql';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport initSourcegraph from '~/sourcegraph';\nimport ZenMode from '~/zen_mode';\nimport initAwardsApp from '~/emoji/awards_app';\nimport { initMrExperienceSurvey } from '~/surveys/merge_request_experience';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport getStateQuery from './queries/get_state.query.graphql';\nimport initCheckoutModal from './init_checkout_modal';\n\nexport default function initMergeRequestShow(store) {\n new ZenMode(); // eslint-disable-line no-new\n initPipelineCountListener(document.querySelector('#commit-pipeline-table-view'));\n addShortcutsExtension(ShortcutsIssuable);\n initSourcegraph();\n initIssuableSidebar();\n initAwardsApp(document.getElementById('js-vue-awards-block'));\n initMrExperienceSurvey();\n initCheckoutModal();\n\n const el = document.querySelector('.js-mr-header');\n const { hidden, imported, iid, projectPath, state } = el.dataset;\n\n // eslint-disable-next-line no-new\n new Vue({\n el,\n name: 'MergeRequestHeaderRoot',\n store,\n apolloProvider: new VueApollo({\n defaultClient: createDefaultClient(),\n }),\n provide: {\n query: getStateQuery,\n hidden: parseBoolean(hidden),\n iid,\n projectPath,\n },\n render(createElement) {\n return createElement(MergeRequestHeader, {\n props: {\n initialState: state,\n isImported: parseBoolean(imported),\n },\n });\n },\n });\n\n const copyReferenceButton = document.querySelector('.js-copy-reference');\n\n copyReferenceButton?.addEventListener('click', () => {\n toast(s__('MergeRequests|Reference copied'));\n });\n}\n","import Vue from 'vue';\nimport { initReportAbuse } from '~/projects/report_abuse';\nimport MrMoreDropdown from '~/vue_shared/components/mr_more_dropdown.vue';\n\nexport const initMrMoreDropdown = () => {\n const el = document.querySelector('.js-mr-more-dropdown');\n\n if (!el) {\n return false;\n }\n\n const {\n mergeRequest,\n projectPath,\n url,\n editUrl,\n isCurrentUser,\n isLoggedIn,\n canUpdateMergeRequest,\n open,\n merged,\n sourceProjectMissing,\n clipboardText,\n reportedUserId,\n } = el.dataset;\n\n let mr;\n\n try {\n mr = JSON.parse(mergeRequest);\n } catch {\n mr = {};\n }\n\n return new Vue({\n el,\n provide: {\n reportAbusePath: el.dataset.reportAbusePath,\n },\n beforeCreate() {\n initReportAbuse();\n },\n render: (createElement) =>\n createElement(MrMoreDropdown, {\n props: {\n mr,\n projectPath,\n url,\n editUrl,\n isCurrentUser,\n isLoggedIn: Boolean(isLoggedIn),\n canUpdateMergeRequest,\n open,\n isMerged: merged,\n sourceProjectMissing,\n clipboardText,\n reportedUserId: Number(reportedUserId),\n },\n }),\n });\n};\n","/**\n * Map<HTMLElement, { callback: Function, eventTypes: Array<string> }>\n */\nconst callbacks = new Map();\nconst click = 'click';\nconst focusin = 'focusin';\nconst supportedEventTypes = [click, focusin];\nconst defaultEventType = click;\n\n/**\n * A Set to keep track of currently active event types.\n * This ensures that event listeners are only added for the event types that are in use.\n *\n * @type {Set<string>}\n */\nconst activeEventTypes = new Set();\nlet lastMousedown = null;\nconst globalListener = event => {\n callbacks.forEach((_ref, element) => {\n let {\n callback,\n eventTypes\n } = _ref;\n const originalEvent = event.type === click ? lastMousedown || event : event;\n if (\n // Ignore events that aren't targeted outside the element\n element.contains(originalEvent.target) ||\n // Ignore events that aren't the specified types for this element\n !eventTypes.includes(event.type)) {\n return;\n }\n try {\n callback(event);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n }\n });\n if (event.type === click) {\n lastMousedown = null;\n }\n};\n\n// We need to listen for mouse events because text selection fires click event only when selection ends.\n// This means that the click event target could differ from the element where it originally started.\n// As example: if we use mouse events we could guarantee that selecting text within a dropdown won't close it.\nconst onMousedown = event => {\n lastMousedown = event;\n};\nconst startListening = eventTypes => {\n eventTypes.forEach(eventType => {\n if (!activeEventTypes.has(eventType)) {\n // Listening to mousedown events, ensures that a text selection doesn't trigger the\n // GlOutsideDirective 'click' callback if the selection started within the target element.\n if (eventType === click) {\n document.addEventListener('mousedown', onMousedown);\n }\n\n // Added { capture: true } to all event types to prevent the behavior discussed in https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/1686#note_412545027\n // Ensures the event listener handles the event in the capturing phase, avoiding issues encountered previously.\n // Cannot be tested with Jest or Cypress, but can be tested with Playwright in the future: https://gitlab.com/gitlab-org/gitlab-ui/-/merge_requests/4272#note_1947425384\n document.addEventListener(eventType, globalListener, {\n capture: true\n });\n activeEventTypes.add(eventType);\n }\n });\n lastMousedown = null;\n};\nconst stopListening = eventTypesToUnbind => {\n eventTypesToUnbind.forEach(eventType => {\n if (activeEventTypes.has(eventType)) {\n if ([...callbacks.values()].every(_ref2 => {\n let {\n eventTypes\n } = _ref2;\n return !eventTypes.includes(eventType);\n })) {\n document.removeEventListener(eventType, globalListener);\n activeEventTypes.delete(eventType);\n }\n }\n });\n if (eventTypesToUnbind.includes(click) && !activeEventTypes.has(click)) {\n document.removeEventListener('mousedown', onMousedown);\n }\n};\nfunction parseBinding(_ref3) {\n let {\n arg,\n value,\n modifiers\n } = _ref3;\n const modifiersList = Object.keys(modifiers);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof value !== 'function') {\n throw new Error(`[GlOutsideDirective] Value must be a function; got ${typeof value}!`);\n }\n if (typeof arg !== 'undefined') {\n throw new Error(`[GlOutsideDirective] Arguments are not supported. Consider using modifiers instead.`);\n }\n const unsupportedModifiers = modifiersList.filter(modifier => !supportedEventTypes.includes(modifier));\n if (unsupportedModifiers.length > 0) {\n throw new Error(`[GlOutsideDirective] Cannot bind ${unsupportedModifiers.join(', ')} events; supported event types are: ${supportedEventTypes.join(', ')}`);\n }\n }\n return {\n callback: value,\n eventTypes: modifiersList.length > 0 ? modifiersList : [defaultEventType]\n };\n}\nconst bind = (el, bindings) => {\n const {\n callback,\n eventTypes\n } = parseBinding(bindings);\n if (callbacks.has(el)) {\n // This element is already bound. This is possible if two components, which\n // share the same root node, (i.e., one is a higher-order component\n // wrapping another) _both_ have this directive applied.\n //\n // Because Vue binds directives in the direction towards the root, only the\n // deepest instance of this directive will be bound.\n //\n // A future iteration may add support for binding all instances on a given\n // element.\n return;\n }\n callbacks.set(el, {\n callback,\n eventTypes\n });\n startListening(eventTypes);\n};\nconst unbind = el => {\n const entry = callbacks.get(el);\n if (entry) {\n callbacks.delete(el);\n stopListening(entry.eventTypes);\n }\n};\nconst OutsideDirective = {\n bind,\n unbind\n};\n\nexport { OutsideDirective };\n","import $ from 'jquery';\n\n/**\n * Instances of SmartInterval extend the functionality of `setInterval`, make it configurable\n * and controllable by a public API.\n *\n * This component has two intervals:\n *\n * - current interval - when the page is visible - defined by `startingInterval`, `maxInterval`, and `incrementByFactorOf`\n * - Example:\n * - `startingInterval: 10000`, `maxInterval: 240000`, `incrementByFactorOf: 2`\n * - results in `10s, 20s, 40s, 80s, ..., 240s`, it stops increasing at `240s` and keeps this interval indefinitely.\n * - hidden interval - when the page is not visible\n *\n * Visibility transitions:\n *\n * - `visible -> not visible`\n * - `document.addEventListener('visibilitychange', () => ...)`\n *\n * > This event fires with a visibilityState of hidden when a user navigates to a new page, switches tabs, closes the tab, minimizes or closes the browser, or, on mobile, switches from the browser to a different app.\n *\n * Source [Document: visibilitychange event - Web APIs | MDN](https://developer.mozilla.org/en-US/docs/Web/API/Document/visibilitychange_event)\n *\n * - `window.addEventListener('blur', () => ...)` - every time user clicks somewhere else then in the browser page\n * - `not visible -> visible`\n * - `document.addEventListener('visibilitychange', () => ...)` same as the transition `visible -> not visible`\n * - `window.addEventListener('focus', () => ...)`\n *\n * The combination of these two listeners can result in an unexpected resumption of polling:\n *\n * - switch to a different window (causes `blur`)\n * - switch to a different desktop (causes `visibilitychange` (not visible))\n * - switch back to the original desktop (causes `visibilitychange` (visible))\n * - *now the polling happens even in window that user doesn't work in*\n */\n\nexport default class SmartInterval {\n /**\n * @param { function } opts.callback Function that returns a promise, called on each iteration\n * unless still in progress (required)\n * @param { milliseconds } opts.startingInterval `currentInterval` is set to this initially\n * @param { milliseconds } opts.maxInterval `currentInterval` will be incremented to this\n * @param { milliseconds } opts.hiddenInterval `currentInterval` is set to this\n * when the page is hidden\n * @param { integer } opts.incrementByFactorOf `currentInterval` is incremented by this factor\n * @param { boolean } opts.lazyStart Configure if timer is initialized on\n * instantiation or lazily\n * @param { boolean } opts.immediateExecution Configure if callback should\n * be executed before the first interval.\n */\n constructor(opts = {}) {\n this.cfg = {\n callback: opts.callback,\n startingInterval: opts.startingInterval,\n maxInterval: opts.maxInterval,\n hiddenInterval: opts.hiddenInterval,\n incrementByFactorOf: opts.incrementByFactorOf,\n lazyStart: opts.lazyStart,\n immediateExecution: opts.immediateExecution,\n };\n\n this.state = {\n intervalId: null,\n currentInterval: this.cfg.startingInterval,\n pagevisibile: true,\n };\n\n this.initInterval();\n }\n\n /* public */\n\n start() {\n const { cfg, state } = this;\n\n if (cfg.immediateExecution && !this.isLoading) {\n cfg.immediateExecution = false;\n this.triggerCallback();\n }\n\n state.intervalId = window.setInterval(() => {\n if (this.isLoading) {\n return;\n }\n this.triggerCallback();\n\n if (this.getCurrentInterval() === cfg.maxInterval) {\n return;\n }\n\n this.incrementInterval();\n this.resume();\n }, this.getCurrentInterval());\n }\n\n // cancel the existing timer, setting the currentInterval back to startingInterval\n cancel() {\n this.setCurrentInterval(this.cfg.startingInterval);\n this.stopTimer();\n }\n\n onVisibilityHidden() {\n if (this.cfg.hiddenInterval) {\n this.setCurrentInterval(this.cfg.hiddenInterval);\n this.resume();\n } else {\n this.cancel();\n }\n }\n\n // start a timer, using the existing interval\n resume() {\n this.stopTimer(); // stop existing timer, in case timer was not previously stopped\n this.start();\n }\n\n onVisibilityVisible() {\n this.cancel();\n this.start();\n }\n\n destroy() {\n document.removeEventListener('visibilitychange', this.onVisibilityChange);\n window.removeEventListener('blur', this.onWindowVisibilityChange);\n window.removeEventListener('focus', this.onWindowVisibilityChange);\n this.cancel();\n // eslint-disable-next-line @gitlab/no-global-event-off\n $(document).off('visibilitychange').off('beforeunload');\n }\n\n /* private */\n\n initInterval() {\n const { cfg } = this;\n\n if (!cfg.lazyStart) {\n this.start();\n }\n\n this.initVisibilityChangeHandling();\n this.initPageUnloadHandling();\n }\n\n triggerCallback() {\n this.isLoading = true;\n this.cfg\n .callback()\n .then(() => {\n this.isLoading = false;\n })\n .catch((err) => {\n this.isLoading = false;\n throw err;\n });\n }\n\n onWindowVisibilityChange(e) {\n this.state.pagevisibile = e.type === 'focus';\n this.handleVisibilityChange();\n }\n\n onVisibilityChange(e) {\n this.state.pagevisibile = e.target.visibilityState === 'visible';\n this.handleVisibilityChange();\n }\n\n initVisibilityChangeHandling() {\n // cancel interval when tab or window is no longer shown (prevents cached pages from polling)\n document.addEventListener('visibilitychange', this.onVisibilityChange.bind(this));\n window.addEventListener('blur', this.onWindowVisibilityChange.bind(this));\n window.addEventListener('focus', this.onWindowVisibilityChange.bind(this));\n }\n\n initPageUnloadHandling() {\n // TODO: Consider refactoring in light of turbolinks removal.\n // prevent interval continuing after page change, when kept in cache by Turbolinks\n $(document).on('beforeunload', () => this.cancel());\n }\n\n handleVisibilityChange() {\n const intervalAction = this.isPageVisible()\n ? this.onVisibilityVisible\n : this.onVisibilityHidden;\n\n intervalAction.apply(this);\n }\n\n getCurrentInterval() {\n return this.state.currentInterval;\n }\n\n setCurrentInterval(newInterval) {\n this.state.currentInterval = newInterval;\n }\n\n incrementInterval() {\n const { cfg } = this;\n const currentInterval = this.getCurrentInterval();\n if (cfg.hiddenInterval && !this.isPageVisible()) return;\n let nextInterval = currentInterval * cfg.incrementByFactorOf;\n\n if (nextInterval > cfg.maxInterval) {\n nextInterval = cfg.maxInterval;\n }\n\n this.setCurrentInterval(nextInterval);\n }\n\n isPageVisible() {\n return this.state.pagevisibile;\n }\n\n stopTimer() {\n const { state } = this;\n\n state.intervalId = window.clearInterval(state.intervalId);\n }\n}\n","import { __, s__ } from '~/locale';\n\nexport const LOAD_SINGLE_DIFF_FAILED = s__(\n \"MergeRequest|Can't fetch the diff needed to update this view. Please reload this page.\",\n);\nexport const DISCUSSION_SINGLE_DIFF_FAILED = s__(\n \"MergeRequest|Can't fetch the single file diff for the discussion. Please reload this page.\",\n);\n\nexport const DIFF_FILE_HEADER = {\n optionsDropdownTitle: __('Options'),\n fileReviewLabel: __('Viewed'),\n fileReviewTooltip: __('Collapses this file (only for you) until it’s changed again.'),\n};\n\nexport const DIFF_FILE = {\n tooLarge: s__('MRDiffFile|Changes are too large to be shown.'),\n blobView: s__('MRDiffFile|View file @ %{commitSha}'),\n editInFork: __(\n \"You're not allowed to %{tag_start}edit%{tag_end} files in this project directly. Please fork this project, make your changes there, and submit a merge request.\",\n ),\n fork: __('Fork'),\n cancel: __('Cancel'),\n autoCollapsed: __('Files with large changes are collapsed by default.'),\n autoCollapsedGenerated: __(\n 'Generated files are collapsed by default. To change this behavior, edit the %{tagStart}.gitattributes%{tagEnd} file. %{linkStart}Learn more.%{linkEnd}',\n ),\n expand: __('Expand file'),\n};\nexport const START_THREAD = __('Start another thread');\n\nexport const SETTINGS_DROPDOWN = {\n whitespace: __('Show whitespace changes'),\n fileByFile: __('Show one file at a time'),\n preferences: __('Preferences'),\n};\n\nexport const CONFLICT_TEXT = {\n both_modified: __('Conflict: This file was modified in both the source and target branches.'),\n modified_source_removed_target: __(\n 'Conflict: This file was modified in the source branch, but removed in the target branch.',\n ),\n modified_target_removed_source: __(\n 'Conflict: This file was removed in the source branch, but modified in the target branch.',\n ),\n renamed_same_file: __(\n 'Conflict: This file was renamed differently in the source and target branches.',\n ),\n removed_source_renamed_target: __(\n 'Conflict: This file was removed in the source branch, but renamed in the target branch.',\n ),\n removed_target_renamed_source: __(\n 'Conflict: This file was renamed in the source branch, but removed in the target branch.',\n ),\n both_added: __(\n 'Conflict: This file was added both in the source and target branches, but with different contents.',\n ),\n};\n\nexport const HIDE_COMMENTS = __('Hide comments');\n\nexport const NEW_CODE_QUALITY_FINDINGS = __('New code quality findings');\nexport const NEW_SAST_FINDINGS = __('New Security findings');\n\nexport const BUILDING_YOUR_MR = __(\n 'Building your merge request… This page will update when the build is complete.',\n);\nexport const SOMETHING_WENT_WRONG = __('Something went wrong on our end. Please try again!');\nexport const SAVING_THE_COMMENT_FAILED = s__(\n 'MergeRequests|Comment could not be submitted: %{reason}.',\n);\nexport const ERROR_LOADING_FULL_DIFF = s__(\n 'MergeRequest|Error loading full diff. Please try again.',\n);\nexport const ERROR_DISMISSING_SUGESTION_POPOVER = s__(\n 'MergeRequest|Error dismissing suggestion popover. Please try again.',\n);\nexport const ENCODED_FILE_PATHS_TITLE = __('Some changes are not shown.');\nexport const ENCODED_FILE_PATHS_MESSAGE = __(\n 'Some files cannot be displayed due to their file path encoding.',\n);\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","export var slice = Array.prototype.slice;\n","var noop = {value: function() {}};\n\nfunction dispatch() {\n for (var i = 0, n = arguments.length, _ = {}, t; i < n; ++i) {\n if (!(t = arguments[i] + \"\") || (t in _) || /[\\s.]/.test(t)) throw new Error(\"illegal type: \" + t);\n _[t] = [];\n }\n return new Dispatch(_);\n}\n\nfunction Dispatch(_) {\n this._ = _;\n}\n\nfunction parseTypenames(typenames, types) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n if (t && !types.hasOwnProperty(t)) throw new Error(\"unknown type: \" + t);\n return {type: t, name: name};\n });\n}\n\nDispatch.prototype = dispatch.prototype = {\n constructor: Dispatch,\n on: function(typename, callback) {\n var _ = this._,\n T = parseTypenames(typename + \"\", _),\n t,\n i = -1,\n n = T.length;\n\n // If no callback was specified, return the callback of the given type and name.\n if (arguments.length < 2) {\n while (++i < n) if ((t = (typename = T[i]).type) && (t = get(_[t], typename.name))) return t;\n return;\n }\n\n // If a type was specified, set the callback for the given type and name.\n // Otherwise, if a null callback was specified, remove callbacks of the given name.\n if (callback != null && typeof callback !== \"function\") throw new Error(\"invalid callback: \" + callback);\n while (++i < n) {\n if (t = (typename = T[i]).type) _[t] = set(_[t], typename.name, callback);\n else if (callback == null) for (t in _) _[t] = set(_[t], typename.name, null);\n }\n\n return this;\n },\n copy: function() {\n var copy = {}, _ = this._;\n for (var t in _) copy[t] = _[t].slice();\n return new Dispatch(copy);\n },\n call: function(type, that) {\n if ((n = arguments.length - 2) > 0) for (var args = new Array(n), i = 0, n, t; i < n; ++i) args[i] = arguments[i + 2];\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n },\n apply: function(type, that, args) {\n if (!this._.hasOwnProperty(type)) throw new Error(\"unknown type: \" + type);\n for (var t = this._[type], i = 0, n = t.length; i < n; ++i) t[i].value.apply(that, args);\n }\n};\n\nfunction get(type, name) {\n for (var i = 0, n = type.length, c; i < n; ++i) {\n if ((c = type[i]).name === name) {\n return c.value;\n }\n }\n}\n\nfunction set(type, name, callback) {\n for (var i = 0, n = type.length; i < n; ++i) {\n if (type[i].name === name) {\n type[i] = noop, type = type.slice(0, i).concat(type.slice(i + 1));\n break;\n }\n }\n if (callback != null) type.push({name: name, value: callback});\n return type;\n}\n\nexport default dispatch;\n","export default function(constructor, factory, prototype) {\n constructor.prototype = factory.prototype = prototype;\n prototype.constructor = constructor;\n}\n\nexport function extend(parent, definition) {\n var prototype = Object.create(parent.prototype);\n for (var key in definition) prototype[key] = definition[key];\n return prototype;\n}\n","import define, {extend} from \"./define.js\";\n\nexport function Color() {}\n\nexport var darker = 0.7;\nexport var brighter = 1 / darker;\n\nvar reI = \"\\\\s*([+-]?\\\\d+)\\\\s*\",\n reN = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)\\\\s*\",\n reP = \"\\\\s*([+-]?\\\\d*\\\\.?\\\\d+(?:[eE][+-]?\\\\d+)?)%\\\\s*\",\n reHex = /^#([0-9a-f]{3,8})$/,\n reRgbInteger = new RegExp(\"^rgb\\\\(\" + [reI, reI, reI] + \"\\\\)$\"),\n reRgbPercent = new RegExp(\"^rgb\\\\(\" + [reP, reP, reP] + \"\\\\)$\"),\n reRgbaInteger = new RegExp(\"^rgba\\\\(\" + [reI, reI, reI, reN] + \"\\\\)$\"),\n reRgbaPercent = new RegExp(\"^rgba\\\\(\" + [reP, reP, reP, reN] + \"\\\\)$\"),\n reHslPercent = new RegExp(\"^hsl\\\\(\" + [reN, reP, reP] + \"\\\\)$\"),\n reHslaPercent = new RegExp(\"^hsla\\\\(\" + [reN, reP, reP, reN] + \"\\\\)$\");\n\nvar named = {\n aliceblue: 0xf0f8ff,\n antiquewhite: 0xfaebd7,\n aqua: 0x00ffff,\n aquamarine: 0x7fffd4,\n azure: 0xf0ffff,\n beige: 0xf5f5dc,\n bisque: 0xffe4c4,\n black: 0x000000,\n blanchedalmond: 0xffebcd,\n blue: 0x0000ff,\n blueviolet: 0x8a2be2,\n brown: 0xa52a2a,\n burlywood: 0xdeb887,\n cadetblue: 0x5f9ea0,\n chartreuse: 0x7fff00,\n chocolate: 0xd2691e,\n coral: 0xff7f50,\n cornflowerblue: 0x6495ed,\n cornsilk: 0xfff8dc,\n crimson: 0xdc143c,\n cyan: 0x00ffff,\n darkblue: 0x00008b,\n darkcyan: 0x008b8b,\n darkgoldenrod: 0xb8860b,\n darkgray: 0xa9a9a9,\n darkgreen: 0x006400,\n darkgrey: 0xa9a9a9,\n darkkhaki: 0xbdb76b,\n darkmagenta: 0x8b008b,\n darkolivegreen: 0x556b2f,\n darkorange: 0xff8c00,\n darkorchid: 0x9932cc,\n darkred: 0x8b0000,\n darksalmon: 0xe9967a,\n darkseagreen: 0x8fbc8f,\n darkslateblue: 0x483d8b,\n darkslategray: 0x2f4f4f,\n darkslategrey: 0x2f4f4f,\n darkturquoise: 0x00ced1,\n darkviolet: 0x9400d3,\n deeppink: 0xff1493,\n deepskyblue: 0x00bfff,\n dimgray: 0x696969,\n dimgrey: 0x696969,\n dodgerblue: 0x1e90ff,\n firebrick: 0xb22222,\n floralwhite: 0xfffaf0,\n forestgreen: 0x228b22,\n fuchsia: 0xff00ff,\n gainsboro: 0xdcdcdc,\n ghostwhite: 0xf8f8ff,\n gold: 0xffd700,\n goldenrod: 0xdaa520,\n gray: 0x808080,\n green: 0x008000,\n greenyellow: 0xadff2f,\n grey: 0x808080,\n honeydew: 0xf0fff0,\n hotpink: 0xff69b4,\n indianred: 0xcd5c5c,\n indigo: 0x4b0082,\n ivory: 0xfffff0,\n khaki: 0xf0e68c,\n lavender: 0xe6e6fa,\n lavenderblush: 0xfff0f5,\n lawngreen: 0x7cfc00,\n lemonchiffon: 0xfffacd,\n lightblue: 0xadd8e6,\n lightcoral: 0xf08080,\n lightcyan: 0xe0ffff,\n lightgoldenrodyellow: 0xfafad2,\n lightgray: 0xd3d3d3,\n lightgreen: 0x90ee90,\n lightgrey: 0xd3d3d3,\n lightpink: 0xffb6c1,\n lightsalmon: 0xffa07a,\n lightseagreen: 0x20b2aa,\n lightskyblue: 0x87cefa,\n lightslategray: 0x778899,\n lightslategrey: 0x778899,\n lightsteelblue: 0xb0c4de,\n lightyellow: 0xffffe0,\n lime: 0x00ff00,\n limegreen: 0x32cd32,\n linen: 0xfaf0e6,\n magenta: 0xff00ff,\n maroon: 0x800000,\n mediumaquamarine: 0x66cdaa,\n mediumblue: 0x0000cd,\n mediumorchid: 0xba55d3,\n mediumpurple: 0x9370db,\n mediumseagreen: 0x3cb371,\n mediumslateblue: 0x7b68ee,\n mediumspringgreen: 0x00fa9a,\n mediumturquoise: 0x48d1cc,\n mediumvioletred: 0xc71585,\n midnightblue: 0x191970,\n mintcream: 0xf5fffa,\n mistyrose: 0xffe4e1,\n moccasin: 0xffe4b5,\n navajowhite: 0xffdead,\n navy: 0x000080,\n oldlace: 0xfdf5e6,\n olive: 0x808000,\n olivedrab: 0x6b8e23,\n orange: 0xffa500,\n orangered: 0xff4500,\n orchid: 0xda70d6,\n palegoldenrod: 0xeee8aa,\n palegreen: 0x98fb98,\n paleturquoise: 0xafeeee,\n palevioletred: 0xdb7093,\n papayawhip: 0xffefd5,\n peachpuff: 0xffdab9,\n peru: 0xcd853f,\n pink: 0xffc0cb,\n plum: 0xdda0dd,\n powderblue: 0xb0e0e6,\n purple: 0x800080,\n rebeccapurple: 0x663399,\n red: 0xff0000,\n rosybrown: 0xbc8f8f,\n royalblue: 0x4169e1,\n saddlebrown: 0x8b4513,\n salmon: 0xfa8072,\n sandybrown: 0xf4a460,\n seagreen: 0x2e8b57,\n seashell: 0xfff5ee,\n sienna: 0xa0522d,\n silver: 0xc0c0c0,\n skyblue: 0x87ceeb,\n slateblue: 0x6a5acd,\n slategray: 0x708090,\n slategrey: 0x708090,\n snow: 0xfffafa,\n springgreen: 0x00ff7f,\n steelblue: 0x4682b4,\n tan: 0xd2b48c,\n teal: 0x008080,\n thistle: 0xd8bfd8,\n tomato: 0xff6347,\n turquoise: 0x40e0d0,\n violet: 0xee82ee,\n wheat: 0xf5deb3,\n white: 0xffffff,\n whitesmoke: 0xf5f5f5,\n yellow: 0xffff00,\n yellowgreen: 0x9acd32\n};\n\ndefine(Color, color, {\n copy: function(channels) {\n return Object.assign(new this.constructor, this, channels);\n },\n displayable: function() {\n return this.rgb().displayable();\n },\n hex: color_formatHex, // Deprecated! Use color.formatHex.\n formatHex: color_formatHex,\n formatHsl: color_formatHsl,\n formatRgb: color_formatRgb,\n toString: color_formatRgb\n});\n\nfunction color_formatHex() {\n return this.rgb().formatHex();\n}\n\nfunction color_formatHsl() {\n return hslConvert(this).formatHsl();\n}\n\nfunction color_formatRgb() {\n return this.rgb().formatRgb();\n}\n\nexport default function color(format) {\n var m, l;\n format = (format + \"\").trim().toLowerCase();\n return (m = reHex.exec(format)) ? (l = m[1].length, m = parseInt(m[1], 16), l === 6 ? rgbn(m) // #ff0000\n : l === 3 ? new Rgb((m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), ((m & 0xf) << 4) | (m & 0xf), 1) // #f00\n : l === 8 ? rgba(m >> 24 & 0xff, m >> 16 & 0xff, m >> 8 & 0xff, (m & 0xff) / 0xff) // #ff000000\n : l === 4 ? rgba((m >> 12 & 0xf) | (m >> 8 & 0xf0), (m >> 8 & 0xf) | (m >> 4 & 0xf0), (m >> 4 & 0xf) | (m & 0xf0), (((m & 0xf) << 4) | (m & 0xf)) / 0xff) // #f000\n : null) // invalid hex\n : (m = reRgbInteger.exec(format)) ? new Rgb(m[1], m[2], m[3], 1) // rgb(255, 0, 0)\n : (m = reRgbPercent.exec(format)) ? new Rgb(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, 1) // rgb(100%, 0%, 0%)\n : (m = reRgbaInteger.exec(format)) ? rgba(m[1], m[2], m[3], m[4]) // rgba(255, 0, 0, 1)\n : (m = reRgbaPercent.exec(format)) ? rgba(m[1] * 255 / 100, m[2] * 255 / 100, m[3] * 255 / 100, m[4]) // rgb(100%, 0%, 0%, 1)\n : (m = reHslPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, 1) // hsl(120, 50%, 50%)\n : (m = reHslaPercent.exec(format)) ? hsla(m[1], m[2] / 100, m[3] / 100, m[4]) // hsla(120, 50%, 50%, 1)\n : named.hasOwnProperty(format) ? rgbn(named[format]) // eslint-disable-line no-prototype-builtins\n : format === \"transparent\" ? new Rgb(NaN, NaN, NaN, 0)\n : null;\n}\n\nfunction rgbn(n) {\n return new Rgb(n >> 16 & 0xff, n >> 8 & 0xff, n & 0xff, 1);\n}\n\nfunction rgba(r, g, b, a) {\n if (a <= 0) r = g = b = NaN;\n return new Rgb(r, g, b, a);\n}\n\nexport function rgbConvert(o) {\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Rgb;\n o = o.rgb();\n return new Rgb(o.r, o.g, o.b, o.opacity);\n}\n\nexport function rgb(r, g, b, opacity) {\n return arguments.length === 1 ? rgbConvert(r) : new Rgb(r, g, b, opacity == null ? 1 : opacity);\n}\n\nexport function Rgb(r, g, b, opacity) {\n this.r = +r;\n this.g = +g;\n this.b = +b;\n this.opacity = +opacity;\n}\n\ndefine(Rgb, rgb, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Rgb(this.r * k, this.g * k, this.b * k, this.opacity);\n },\n rgb: function() {\n return this;\n },\n displayable: function() {\n return (-0.5 <= this.r && this.r < 255.5)\n && (-0.5 <= this.g && this.g < 255.5)\n && (-0.5 <= this.b && this.b < 255.5)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n hex: rgb_formatHex, // Deprecated! Use color.formatHex.\n formatHex: rgb_formatHex,\n formatRgb: rgb_formatRgb,\n toString: rgb_formatRgb\n}));\n\nfunction rgb_formatHex() {\n return \"#\" + hex(this.r) + hex(this.g) + hex(this.b);\n}\n\nfunction rgb_formatRgb() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"rgb(\" : \"rgba(\")\n + Math.max(0, Math.min(255, Math.round(this.r) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.g) || 0)) + \", \"\n + Math.max(0, Math.min(255, Math.round(this.b) || 0))\n + (a === 1 ? \")\" : \", \" + a + \")\");\n}\n\nfunction hex(value) {\n value = Math.max(0, Math.min(255, Math.round(value) || 0));\n return (value < 16 ? \"0\" : \"\") + value.toString(16);\n}\n\nfunction hsla(h, s, l, a) {\n if (a <= 0) h = s = l = NaN;\n else if (l <= 0 || l >= 1) h = s = NaN;\n else if (s <= 0) h = NaN;\n return new Hsl(h, s, l, a);\n}\n\nexport function hslConvert(o) {\n if (o instanceof Hsl) return new Hsl(o.h, o.s, o.l, o.opacity);\n if (!(o instanceof Color)) o = color(o);\n if (!o) return new Hsl;\n if (o instanceof Hsl) return o;\n o = o.rgb();\n var r = o.r / 255,\n g = o.g / 255,\n b = o.b / 255,\n min = Math.min(r, g, b),\n max = Math.max(r, g, b),\n h = NaN,\n s = max - min,\n l = (max + min) / 2;\n if (s) {\n if (r === max) h = (g - b) / s + (g < b) * 6;\n else if (g === max) h = (b - r) / s + 2;\n else h = (r - g) / s + 4;\n s /= l < 0.5 ? max + min : 2 - max - min;\n h *= 60;\n } else {\n s = l > 0 && l < 1 ? 0 : h;\n }\n return new Hsl(h, s, l, o.opacity);\n}\n\nexport function hsl(h, s, l, opacity) {\n return arguments.length === 1 ? hslConvert(h) : new Hsl(h, s, l, opacity == null ? 1 : opacity);\n}\n\nfunction Hsl(h, s, l, opacity) {\n this.h = +h;\n this.s = +s;\n this.l = +l;\n this.opacity = +opacity;\n}\n\ndefine(Hsl, hsl, extend(Color, {\n brighter: function(k) {\n k = k == null ? brighter : Math.pow(brighter, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n darker: function(k) {\n k = k == null ? darker : Math.pow(darker, k);\n return new Hsl(this.h, this.s, this.l * k, this.opacity);\n },\n rgb: function() {\n var h = this.h % 360 + (this.h < 0) * 360,\n s = isNaN(h) || isNaN(this.s) ? 0 : this.s,\n l = this.l,\n m2 = l + (l < 0.5 ? l : 1 - l) * s,\n m1 = 2 * l - m2;\n return new Rgb(\n hsl2rgb(h >= 240 ? h - 240 : h + 120, m1, m2),\n hsl2rgb(h, m1, m2),\n hsl2rgb(h < 120 ? h + 240 : h - 120, m1, m2),\n this.opacity\n );\n },\n displayable: function() {\n return (0 <= this.s && this.s <= 1 || isNaN(this.s))\n && (0 <= this.l && this.l <= 1)\n && (0 <= this.opacity && this.opacity <= 1);\n },\n formatHsl: function() {\n var a = this.opacity; a = isNaN(a) ? 1 : Math.max(0, Math.min(1, a));\n return (a === 1 ? \"hsl(\" : \"hsla(\")\n + (this.h || 0) + \", \"\n + (this.s || 0) * 100 + \"%, \"\n + (this.l || 0) * 100 + \"%\"\n + (a === 1 ? \")\" : \", \" + a + \")\");\n }\n}));\n\n/* From FvD 13.37, CSS Color Module Level 3 */\nfunction hsl2rgb(h, m1, m2) {\n return (h < 60 ? m1 + (m2 - m1) * h / 60\n : h < 180 ? m2\n : h < 240 ? m1 + (m2 - m1) * (240 - h) / 60\n : m1) * 255;\n}\n","export function basis(t1, v0, v1, v2, v3) {\n var t2 = t1 * t1, t3 = t2 * t1;\n return ((1 - 3 * t1 + 3 * t2 - t3) * v0\n + (4 - 6 * t2 + 3 * t3) * v1\n + (1 + 3 * t1 + 3 * t2 - 3 * t3) * v2\n + t3 * v3) / 6;\n}\n\nexport default function(values) {\n var n = values.length - 1;\n return function(t) {\n var i = t <= 0 ? (t = 0) : t >= 1 ? (t = 1, n - 1) : Math.floor(t * n),\n v1 = values[i],\n v2 = values[i + 1],\n v0 = i > 0 ? values[i - 1] : 2 * v1 - v2,\n v3 = i < n - 1 ? values[i + 2] : 2 * v2 - v1;\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import constant from \"./constant.js\";\n\nfunction linear(a, d) {\n return function(t) {\n return a + t * d;\n };\n}\n\nfunction exponential(a, b, y) {\n return a = Math.pow(a, y), b = Math.pow(b, y) - a, y = 1 / y, function(t) {\n return Math.pow(a + t * b, y);\n };\n}\n\nexport function hue(a, b) {\n var d = b - a;\n return d ? linear(a, d > 180 || d < -180 ? d - 360 * Math.round(d / 360) : d) : constant(isNaN(a) ? b : a);\n}\n\nexport function gamma(y) {\n return (y = +y) === 1 ? nogamma : function(a, b) {\n return b - a ? exponential(a, b, y) : constant(isNaN(a) ? b : a);\n };\n}\n\nexport default function nogamma(a, b) {\n var d = b - a;\n return d ? linear(a, d) : constant(isNaN(a) ? b : a);\n}\n","import {rgb as colorRgb} from \"d3-color\";\nimport basis from \"./basis.js\";\nimport basisClosed from \"./basisClosed.js\";\nimport nogamma, {gamma} from \"./color.js\";\n\nexport default (function rgbGamma(y) {\n var color = gamma(y);\n\n function rgb(start, end) {\n var r = color((start = colorRgb(start)).r, (end = colorRgb(end)).r),\n g = color(start.g, end.g),\n b = color(start.b, end.b),\n opacity = nogamma(start.opacity, end.opacity);\n return function(t) {\n start.r = r(t);\n start.g = g(t);\n start.b = b(t);\n start.opacity = opacity(t);\n return start + \"\";\n };\n }\n\n rgb.gamma = rgbGamma;\n\n return rgb;\n})(1);\n\nfunction rgbSpline(spline) {\n return function(colors) {\n var n = colors.length,\n r = new Array(n),\n g = new Array(n),\n b = new Array(n),\n i, color;\n for (i = 0; i < n; ++i) {\n color = colorRgb(colors[i]);\n r[i] = color.r || 0;\n g[i] = color.g || 0;\n b[i] = color.b || 0;\n }\n r = spline(r);\n g = spline(g);\n b = spline(b);\n color.opacity = 1;\n return function(t) {\n color.r = r(t);\n color.g = g(t);\n color.b = b(t);\n return color + \"\";\n };\n };\n}\n\nexport var rgbBasis = rgbSpline(basis);\nexport var rgbBasisClosed = rgbSpline(basisClosed);\n","import {basis} from \"./basis.js\";\n\nexport default function(values) {\n var n = values.length;\n return function(t) {\n var i = Math.floor(((t %= 1) < 0 ? ++t : t) * n),\n v0 = values[(i + n - 1) % n],\n v1 = values[i % n],\n v2 = values[(i + 1) % n],\n v3 = values[(i + 2) % n];\n return basis((t - i / n) * n, v0, v1, v2, v3);\n };\n}\n","export default function(a, b) {\n var d = new Date;\n return a = +a, b = +b, function(t) {\n return d.setTime(a * (1 - t) + b * t), d;\n };\n}\n","export default function(a, b) {\n return a = +a, b = +b, function(t) {\n return a * (1 - t) + b * t;\n };\n}\n","import number from \"./number.js\";\n\nvar reA = /[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g,\n reB = new RegExp(reA.source, \"g\");\n\nfunction zero(b) {\n return function() {\n return b;\n };\n}\n\nfunction one(b) {\n return function(t) {\n return b(t) + \"\";\n };\n}\n\nexport default function(a, b) {\n var bi = reA.lastIndex = reB.lastIndex = 0, // scan index for next number in b\n am, // current match in a\n bm, // current match in b\n bs, // string preceding current number in b, if any\n i = -1, // index in s\n s = [], // string constants and placeholders\n q = []; // number interpolators\n\n // Coerce inputs to strings.\n a = a + \"\", b = b + \"\";\n\n // Interpolate pairs of numbers in a & b.\n while ((am = reA.exec(a))\n && (bm = reB.exec(b))) {\n if ((bs = bm.index) > bi) { // a string precedes the next number in b\n bs = b.slice(bi, bs);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n if ((am = am[0]) === (bm = bm[0])) { // numbers in a & b match\n if (s[i]) s[i] += bm; // coalesce with previous string\n else s[++i] = bm;\n } else { // interpolate non-matching numbers\n s[++i] = null;\n q.push({i: i, x: number(am, bm)});\n }\n bi = reB.lastIndex;\n }\n\n // Add remains of b.\n if (bi < b.length) {\n bs = b.slice(bi);\n if (s[i]) s[i] += bs; // coalesce with previous string\n else s[++i] = bs;\n }\n\n // Special optimization for only a single match.\n // Otherwise, interpolate each of the numbers and rejoin the string.\n return s.length < 2 ? (q[0]\n ? one(q[0].x)\n : zero(b))\n : (b = q.length, function(t) {\n for (var i = 0, o; i < b; ++i) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n });\n}\n","var frame = 0, // is an animation frame pending?\n timeout = 0, // is a timeout pending?\n interval = 0, // are any timers active?\n pokeDelay = 1000, // how frequently we check for clock skew\n taskHead,\n taskTail,\n clockLast = 0,\n clockNow = 0,\n clockSkew = 0,\n clock = typeof performance === \"object\" && performance.now ? performance : Date,\n setFrame = typeof window === \"object\" && window.requestAnimationFrame ? window.requestAnimationFrame.bind(window) : function(f) { setTimeout(f, 17); };\n\nexport function now() {\n return clockNow || (setFrame(clearNow), clockNow = clock.now() + clockSkew);\n}\n\nfunction clearNow() {\n clockNow = 0;\n}\n\nexport function Timer() {\n this._call =\n this._time =\n this._next = null;\n}\n\nTimer.prototype = timer.prototype = {\n constructor: Timer,\n restart: function(callback, delay, time) {\n if (typeof callback !== \"function\") throw new TypeError(\"callback is not a function\");\n time = (time == null ? now() : +time) + (delay == null ? 0 : +delay);\n if (!this._next && taskTail !== this) {\n if (taskTail) taskTail._next = this;\n else taskHead = this;\n taskTail = this;\n }\n this._call = callback;\n this._time = time;\n sleep();\n },\n stop: function() {\n if (this._call) {\n this._call = null;\n this._time = Infinity;\n sleep();\n }\n }\n};\n\nexport function timer(callback, delay, time) {\n var t = new Timer;\n t.restart(callback, delay, time);\n return t;\n}\n\nexport function timerFlush() {\n now(); // Get the current time, if not already set.\n ++frame; // Pretend we’ve set an alarm, if we haven’t already.\n var t = taskHead, e;\n while (t) {\n if ((e = clockNow - t._time) >= 0) t._call.call(null, e);\n t = t._next;\n }\n --frame;\n}\n\nfunction wake() {\n clockNow = (clockLast = clock.now()) + clockSkew;\n frame = timeout = 0;\n try {\n timerFlush();\n } finally {\n frame = 0;\n nap();\n clockNow = 0;\n }\n}\n\nfunction poke() {\n var now = clock.now(), delay = now - clockLast;\n if (delay > pokeDelay) clockSkew -= delay, clockLast = now;\n}\n\nfunction nap() {\n var t0, t1 = taskHead, t2, time = Infinity;\n while (t1) {\n if (t1._call) {\n if (time > t1._time) time = t1._time;\n t0 = t1, t1 = t1._next;\n } else {\n t2 = t1._next, t1._next = null;\n t1 = t0 ? t0._next = t2 : taskHead = t2;\n }\n }\n taskTail = t0;\n sleep(time);\n}\n\nfunction sleep(time) {\n if (frame) return; // Soonest alarm already set, or will be.\n if (timeout) timeout = clearTimeout(timeout);\n var delay = time - clockNow; // Strictly less than if we recomputed clockNow.\n if (delay > 24) {\n if (time < Infinity) timeout = setTimeout(wake, time - clock.now() - clockSkew);\n if (interval) interval = clearInterval(interval);\n } else {\n if (!interval) clockLast = clock.now(), interval = setInterval(poke, pokeDelay);\n frame = 1, setFrame(wake);\n }\n}\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(function(elapsed) {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar cssNode,\n cssRoot,\n cssView,\n svgNode;\n\nexport function parseCss(value) {\n if (value === \"none\") return identity;\n if (!cssNode) cssNode = document.createElement(\"DIV\"), cssRoot = document.documentElement, cssView = document.defaultView;\n cssNode.style.transform = value;\n value = cssView.getComputedStyle(cssRoot.appendChild(cssNode), null).getPropertyValue(\"transform\");\n cssRoot.removeChild(cssNode);\n value = value.slice(7, -1).split(\",\");\n return decompose(+value[0], +value[1], +value[2], +value[3], +value[4], +value[5]);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n end: transition_end\n};\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n });\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n return defaultTiming.time = now(), defaultTiming;\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolate} from \"d3-interpolate\";\nimport {customEvent, event, touch, mouse, select} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport BrushEvent from \"./event.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\nvar MODE_DRAG = {name: \"drag\"},\n MODE_SPACE = {name: \"space\"},\n MODE_HANDLE = {name: \"handle\"},\n MODE_CENTER = {name: \"center\"};\n\nfunction number1(e) {\n return [+e[0], +e[1]];\n}\n\nfunction number2(e) {\n return [number1(e[0]), number1(e[1])];\n}\n\nfunction toucher(identifier) {\n return function(target) {\n return touch(target, event.touches, identifier);\n };\n}\n\nvar X = {\n name: \"x\",\n handles: [\"w\", \"e\"].map(type),\n input: function(x, e) { return x == null ? null : [[+x[0], e[0][1]], [+x[1], e[1][1]]]; },\n output: function(xy) { return xy && [xy[0][0], xy[1][0]]; }\n};\n\nvar Y = {\n name: \"y\",\n handles: [\"n\", \"s\"].map(type),\n input: function(y, e) { return y == null ? null : [[e[0][0], +y[0]], [e[1][0], +y[1]]]; },\n output: function(xy) { return xy && [xy[0][1], xy[1][1]]; }\n};\n\nvar XY = {\n name: \"xy\",\n handles: [\"n\", \"w\", \"e\", \"s\", \"nw\", \"ne\", \"sw\", \"se\"].map(type),\n input: function(xy) { return xy == null ? null : number2(xy); },\n output: function(xy) { return xy; }\n};\n\nvar cursors = {\n overlay: \"crosshair\",\n selection: \"move\",\n n: \"ns-resize\",\n e: \"ew-resize\",\n s: \"ns-resize\",\n w: \"ew-resize\",\n nw: \"nwse-resize\",\n ne: \"nesw-resize\",\n se: \"nwse-resize\",\n sw: \"nesw-resize\"\n};\n\nvar flipX = {\n e: \"w\",\n w: \"e\",\n nw: \"ne\",\n ne: \"nw\",\n se: \"sw\",\n sw: \"se\"\n};\n\nvar flipY = {\n n: \"s\",\n s: \"n\",\n nw: \"sw\",\n ne: \"se\",\n se: \"ne\",\n sw: \"nw\"\n};\n\nvar signsX = {\n overlay: +1,\n selection: +1,\n n: null,\n e: +1,\n s: null,\n w: -1,\n nw: -1,\n ne: +1,\n se: +1,\n sw: -1\n};\n\nvar signsY = {\n overlay: +1,\n selection: +1,\n n: -1,\n e: null,\n s: +1,\n w: null,\n nw: -1,\n ne: -1,\n se: +1,\n sw: +1\n};\n\nfunction type(t) {\n return {type: t};\n}\n\n// Ignore right-click, since that should open the context menu.\nfunction defaultFilter() {\n return !event.ctrlKey && !event.button;\n}\n\nfunction defaultExtent() {\n var svg = this.ownerSVGElement || this;\n if (svg.hasAttribute(\"viewBox\")) {\n svg = svg.viewBox.baseVal;\n return [[svg.x, svg.y], [svg.x + svg.width, svg.y + svg.height]];\n }\n return [[0, 0], [svg.width.baseVal.value, svg.height.baseVal.value]];\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\n// Like d3.local, but with the name “__brush” rather than auto-generated.\nfunction local(node) {\n while (!node.__brush) if (!(node = node.parentNode)) return;\n return node.__brush;\n}\n\nfunction empty(extent) {\n return extent[0][0] === extent[1][0]\n || extent[0][1] === extent[1][1];\n}\n\nexport function brushSelection(node) {\n var state = node.__brush;\n return state ? state.dim.output(state.selection) : null;\n}\n\nexport function brushX() {\n return brush(X);\n}\n\nexport function brushY() {\n return brush(Y);\n}\n\nexport default function() {\n return brush(XY);\n}\n\nfunction brush(dim) {\n var extent = defaultExtent,\n filter = defaultFilter,\n touchable = defaultTouchable,\n keys = true,\n listeners = dispatch(\"start\", \"brush\", \"end\"),\n handleSize = 6,\n touchending;\n\n function brush(group) {\n var overlay = group\n .property(\"__brush\", initialize)\n .selectAll(\".overlay\")\n .data([type(\"overlay\")]);\n\n overlay.enter().append(\"rect\")\n .attr(\"class\", \"overlay\")\n .attr(\"pointer-events\", \"all\")\n .attr(\"cursor\", cursors.overlay)\n .merge(overlay)\n .each(function() {\n var extent = local(this).extent;\n select(this)\n .attr(\"x\", extent[0][0])\n .attr(\"y\", extent[0][1])\n .attr(\"width\", extent[1][0] - extent[0][0])\n .attr(\"height\", extent[1][1] - extent[0][1]);\n });\n\n group.selectAll(\".selection\")\n .data([type(\"selection\")])\n .enter().append(\"rect\")\n .attr(\"class\", \"selection\")\n .attr(\"cursor\", cursors.selection)\n .attr(\"fill\", \"#777\")\n .attr(\"fill-opacity\", 0.3)\n .attr(\"stroke\", \"#fff\")\n .attr(\"shape-rendering\", \"crispEdges\");\n\n var handle = group.selectAll(\".handle\")\n .data(dim.handles, function(d) { return d.type; });\n\n handle.exit().remove();\n\n handle.enter().append(\"rect\")\n .attr(\"class\", function(d) { return \"handle handle--\" + d.type; })\n .attr(\"cursor\", function(d) { return cursors[d.type]; });\n\n group\n .each(redraw)\n .attr(\"fill\", \"none\")\n .attr(\"pointer-events\", \"all\")\n .on(\"mousedown.brush\", started)\n .filter(touchable)\n .on(\"touchstart.brush\", started)\n .on(\"touchmove.brush\", touchmoved)\n .on(\"touchend.brush touchcancel.brush\", touchended)\n .style(\"touch-action\", \"none\")\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n brush.move = function(group, selection) {\n if (group.selection) {\n group\n .on(\"start.brush\", function() { emitter(this, arguments).beforestart().start(); })\n .on(\"interrupt.brush end.brush\", function() { emitter(this, arguments).end(); })\n .tween(\"brush\", function() {\n var that = this,\n state = that.__brush,\n emit = emitter(that, arguments),\n selection0 = state.selection,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(this, arguments) : selection, state.extent),\n i = interpolate(selection0, selection1);\n\n function tween(t) {\n state.selection = t === 1 && selection1 === null ? null : i(t);\n redraw.call(that);\n emit.brush();\n }\n\n return selection0 !== null && selection1 !== null ? tween : tween(1);\n });\n } else {\n group\n .each(function() {\n var that = this,\n args = arguments,\n state = that.__brush,\n selection1 = dim.input(typeof selection === \"function\" ? selection.apply(that, args) : selection, state.extent),\n emit = emitter(that, args).beforestart();\n\n interrupt(that);\n state.selection = selection1 === null ? null : selection1;\n redraw.call(that);\n emit.start().brush().end();\n });\n }\n };\n\n brush.clear = function(group) {\n brush.move(group, null);\n };\n\n function redraw() {\n var group = select(this),\n selection = local(this).selection;\n\n if (selection) {\n group.selectAll(\".selection\")\n .style(\"display\", null)\n .attr(\"x\", selection[0][0])\n .attr(\"y\", selection[0][1])\n .attr(\"width\", selection[1][0] - selection[0][0])\n .attr(\"height\", selection[1][1] - selection[0][1]);\n\n group.selectAll(\".handle\")\n .style(\"display\", null)\n .attr(\"x\", function(d) { return d.type[d.type.length - 1] === \"e\" ? selection[1][0] - handleSize / 2 : selection[0][0] - handleSize / 2; })\n .attr(\"y\", function(d) { return d.type[0] === \"s\" ? selection[1][1] - handleSize / 2 : selection[0][1] - handleSize / 2; })\n .attr(\"width\", function(d) { return d.type === \"n\" || d.type === \"s\" ? selection[1][0] - selection[0][0] + handleSize : handleSize; })\n .attr(\"height\", function(d) { return d.type === \"e\" || d.type === \"w\" ? selection[1][1] - selection[0][1] + handleSize : handleSize; });\n }\n\n else {\n group.selectAll(\".selection,.handle\")\n .style(\"display\", \"none\")\n .attr(\"x\", null)\n .attr(\"y\", null)\n .attr(\"width\", null)\n .attr(\"height\", null);\n }\n }\n\n function emitter(that, args, clean) {\n var emit = that.__brush.emitter;\n return emit && (!clean || !emit.clean) ? emit : new Emitter(that, args, clean);\n }\n\n function Emitter(that, args, clean) {\n this.that = that;\n this.args = args;\n this.state = that.__brush;\n this.active = 0;\n this.clean = clean;\n }\n\n Emitter.prototype = {\n beforestart: function() {\n if (++this.active === 1) this.state.emitter = this, this.starting = true;\n return this;\n },\n start: function() {\n if (this.starting) this.starting = false, this.emit(\"start\");\n else this.emit(\"brush\");\n return this;\n },\n brush: function() {\n this.emit(\"brush\");\n return this;\n },\n end: function() {\n if (--this.active === 0) delete this.state.emitter, this.emit(\"end\");\n return this;\n },\n emit: function(type) {\n customEvent(new BrushEvent(brush, type, dim.output(this.state.selection)), listeners.apply, listeners, [type, this.that, this.args]);\n }\n };\n\n function started() {\n if (touchending && !event.touches) return;\n if (!filter.apply(this, arguments)) return;\n\n var that = this,\n type = event.target.__data__.type,\n mode = (keys && event.metaKey ? type = \"overlay\" : type) === \"selection\" ? MODE_DRAG : (keys && event.altKey ? MODE_CENTER : MODE_HANDLE),\n signX = dim === Y ? null : signsX[type],\n signY = dim === X ? null : signsY[type],\n state = local(that),\n extent = state.extent,\n selection = state.selection,\n W = extent[0][0], w0, w1,\n N = extent[0][1], n0, n1,\n E = extent[1][0], e0, e1,\n S = extent[1][1], s0, s1,\n dx = 0,\n dy = 0,\n moving,\n shifting = signX && signY && keys && event.shiftKey,\n lockX,\n lockY,\n pointer = event.touches ? toucher(event.changedTouches[0].identifier) : mouse,\n point0 = pointer(that),\n point = point0,\n emit = emitter(that, arguments, true).beforestart();\n\n if (type === \"overlay\") {\n if (selection) moving = true;\n state.selection = selection = [\n [w0 = dim === Y ? W : point0[0], n0 = dim === X ? N : point0[1]],\n [e0 = dim === Y ? E : w0, s0 = dim === X ? S : n0]\n ];\n } else {\n w0 = selection[0][0];\n n0 = selection[0][1];\n e0 = selection[1][0];\n s0 = selection[1][1];\n }\n\n w1 = w0;\n n1 = n0;\n e1 = e0;\n s1 = s0;\n\n var group = select(that)\n .attr(\"pointer-events\", \"none\");\n\n var overlay = group.selectAll(\".overlay\")\n .attr(\"cursor\", cursors[type]);\n\n if (event.touches) {\n emit.moved = moved;\n emit.ended = ended;\n } else {\n var view = select(event.view)\n .on(\"mousemove.brush\", moved, true)\n .on(\"mouseup.brush\", ended, true);\n if (keys) view\n .on(\"keydown.brush\", keydowned, true)\n .on(\"keyup.brush\", keyupped, true)\n\n dragDisable(event.view);\n }\n\n nopropagation();\n interrupt(that);\n redraw.call(that);\n emit.start();\n\n function moved() {\n var point1 = pointer(that);\n if (shifting && !lockX && !lockY) {\n if (Math.abs(point1[0] - point[0]) > Math.abs(point1[1] - point[1])) lockY = true;\n else lockX = true;\n }\n point = point1;\n moving = true;\n noevent();\n move();\n }\n\n function move() {\n var t;\n\n dx = point[0] - point0[0];\n dy = point[1] - point0[1];\n\n switch (mode) {\n case MODE_SPACE:\n case MODE_DRAG: {\n if (signX) dx = Math.max(W - w0, Math.min(E - e0, dx)), w1 = w0 + dx, e1 = e0 + dx;\n if (signY) dy = Math.max(N - n0, Math.min(S - s0, dy)), n1 = n0 + dy, s1 = s0 + dy;\n break;\n }\n case MODE_HANDLE: {\n if (signX < 0) dx = Math.max(W - w0, Math.min(E - w0, dx)), w1 = w0 + dx, e1 = e0;\n else if (signX > 0) dx = Math.max(W - e0, Math.min(E - e0, dx)), w1 = w0, e1 = e0 + dx;\n if (signY < 0) dy = Math.max(N - n0, Math.min(S - n0, dy)), n1 = n0 + dy, s1 = s0;\n else if (signY > 0) dy = Math.max(N - s0, Math.min(S - s0, dy)), n1 = n0, s1 = s0 + dy;\n break;\n }\n case MODE_CENTER: {\n if (signX) w1 = Math.max(W, Math.min(E, w0 - dx * signX)), e1 = Math.max(W, Math.min(E, e0 + dx * signX));\n if (signY) n1 = Math.max(N, Math.min(S, n0 - dy * signY)), s1 = Math.max(N, Math.min(S, s0 + dy * signY));\n break;\n }\n }\n\n if (e1 < w1) {\n signX *= -1;\n t = w0, w0 = e0, e0 = t;\n t = w1, w1 = e1, e1 = t;\n if (type in flipX) overlay.attr(\"cursor\", cursors[type = flipX[type]]);\n }\n\n if (s1 < n1) {\n signY *= -1;\n t = n0, n0 = s0, s0 = t;\n t = n1, n1 = s1, s1 = t;\n if (type in flipY) overlay.attr(\"cursor\", cursors[type = flipY[type]]);\n }\n\n if (state.selection) selection = state.selection; // May be set by brush.move!\n if (lockX) w1 = selection[0][0], e1 = selection[1][0];\n if (lockY) n1 = selection[0][1], s1 = selection[1][1];\n\n if (selection[0][0] !== w1\n || selection[0][1] !== n1\n || selection[1][0] !== e1\n || selection[1][1] !== s1) {\n state.selection = [[w1, n1], [e1, s1]];\n redraw.call(that);\n emit.brush();\n }\n }\n\n function ended() {\n nopropagation();\n if (event.touches) {\n if (event.touches.length) return;\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, 500); // Ghost clicks are delayed!\n } else {\n dragEnable(event.view, moving);\n view.on(\"keydown.brush keyup.brush mousemove.brush mouseup.brush\", null);\n }\n group.attr(\"pointer-events\", \"all\");\n overlay.attr(\"cursor\", cursors.overlay);\n if (state.selection) selection = state.selection; // May be set by brush.move (on start)!\n if (empty(selection)) state.selection = null, redraw.call(that);\n emit.end();\n }\n\n function keydowned() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n shifting = signX && signY;\n break;\n }\n case 18: { // ALT\n if (mode === MODE_HANDLE) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n move();\n }\n break;\n }\n case 32: { // SPACE; takes priority over ALT\n if (mode === MODE_HANDLE || mode === MODE_CENTER) {\n if (signX < 0) e0 = e1 - dx; else if (signX > 0) w0 = w1 - dx;\n if (signY < 0) s0 = s1 - dy; else if (signY > 0) n0 = n1 - dy;\n mode = MODE_SPACE;\n overlay.attr(\"cursor\", cursors.selection);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n\n function keyupped() {\n switch (event.keyCode) {\n case 16: { // SHIFT\n if (shifting) {\n lockX = lockY = shifting = false;\n move();\n }\n break;\n }\n case 18: { // ALT\n if (mode === MODE_CENTER) {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n move();\n }\n break;\n }\n case 32: { // SPACE\n if (mode === MODE_SPACE) {\n if (event.altKey) {\n if (signX) e0 = e1 - dx * signX, w0 = w1 + dx * signX;\n if (signY) s0 = s1 - dy * signY, n0 = n1 + dy * signY;\n mode = MODE_CENTER;\n } else {\n if (signX < 0) e0 = e1; else if (signX > 0) w0 = w1;\n if (signY < 0) s0 = s1; else if (signY > 0) n0 = n1;\n mode = MODE_HANDLE;\n }\n overlay.attr(\"cursor\", cursors[type]);\n move();\n }\n break;\n }\n default: return;\n }\n noevent();\n }\n }\n\n function touchmoved() {\n emitter(this, arguments).moved();\n }\n\n function touchended() {\n emitter(this, arguments).ended();\n }\n\n function initialize() {\n var state = this.__brush || {selection: null};\n state.extent = number2(extent.apply(this, arguments));\n state.dim = dim;\n return state;\n }\n\n brush.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant(number2(_)), brush) : extent;\n };\n\n brush.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), brush) : filter;\n };\n\n brush.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), brush) : touchable;\n };\n\n brush.handleSize = function(_) {\n return arguments.length ? (handleSize = +_, brush) : handleSize;\n };\n\n brush.keyModifiers = function(_) {\n return arguments.length ? (keys = !!_, brush) : keys;\n };\n\n brush.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? brush : value;\n };\n\n return brush;\n}\n","export var cos = Math.cos;\nexport var sin = Math.sin;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var tau = pi * 2;\nexport var max = Math.max;\n","export var slice = Array.prototype.slice;\n","export var prefix = \"$\";\n\nfunction Map() {}\n\nMap.prototype = map.prototype = {\n constructor: Map,\n has: function(key) {\n return (prefix + key) in this;\n },\n get: function(key) {\n return this[prefix + key];\n },\n set: function(key, value) {\n this[prefix + key] = value;\n return this;\n },\n remove: function(key) {\n var property = prefix + key;\n return property in this && delete this[property];\n },\n clear: function() {\n for (var property in this) if (property[0] === prefix) delete this[property];\n },\n keys: function() {\n var keys = [];\n for (var property in this) if (property[0] === prefix) keys.push(property.slice(1));\n return keys;\n },\n values: function() {\n var values = [];\n for (var property in this) if (property[0] === prefix) values.push(this[property]);\n return values;\n },\n entries: function() {\n var entries = [];\n for (var property in this) if (property[0] === prefix) entries.push({key: property.slice(1), value: this[property]});\n return entries;\n },\n size: function() {\n var size = 0;\n for (var property in this) if (property[0] === prefix) ++size;\n return size;\n },\n empty: function() {\n for (var property in this) if (property[0] === prefix) return false;\n return true;\n },\n each: function(f) {\n for (var property in this) if (property[0] === prefix) f(this[property], property.slice(1), this);\n }\n};\n\nfunction map(object, f) {\n var map = new Map;\n\n // Copy constructor.\n if (object instanceof Map) object.each(function(value, key) { map.set(key, value); });\n\n // Index array by numeric index or specified key function.\n else if (Array.isArray(object)) {\n var i = -1,\n n = object.length,\n o;\n\n if (f == null) while (++i < n) map.set(i, object[i]);\n else while (++i < n) map.set(f(o = object[i], i, object), o);\n }\n\n // Convert object to map.\n else if (object) for (var key in object) map.set(key, object[key]);\n\n return map;\n}\n\nexport default map;\n","import {default as map, prefix} from \"./map\";\n\nfunction Set() {}\n\nvar proto = map.prototype;\n\nSet.prototype = set.prototype = {\n constructor: Set,\n has: proto.has,\n add: function(value) {\n value += \"\";\n this[prefix + value] = value;\n return this;\n },\n remove: proto.remove,\n clear: proto.clear,\n values: proto.keys,\n size: proto.size,\n empty: proto.empty,\n each: proto.each\n};\n\nfunction set(object, f) {\n var set = new Set;\n\n // Copy constructor.\n if (object instanceof Set) object.each(function(value) { set.add(value); });\n\n // Otherwise, assume it’s an array.\n else if (object) {\n var i = -1, n = object.length;\n if (f == null) while (++i < n) set.add(object[i]);\n else while (++i < n) set.add(f(object[i], i, object));\n }\n\n return set;\n}\n\nexport default set;\n","var array = Array.prototype;\n\nexport var slice = array.slice;\n","export default function(d) {\n var x = +this._x.call(null, d),\n y = +this._y.call(null, d);\n return add(this.cover(x, y), x, y, d);\n}\n\nfunction add(tree, x, y, d) {\n if (isNaN(x) || isNaN(y)) return tree; // ignore invalid points\n\n var parent,\n node = tree._root,\n leaf = {data: d},\n x0 = tree._x0,\n y0 = tree._y0,\n x1 = tree._x1,\n y1 = tree._y1,\n xm,\n ym,\n xp,\n yp,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return tree._root = leaf, tree;\n\n // Find the existing leaf for the new point, or add it.\n while (node.length) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (parent = node, !(node = node[i = bottom << 1 | right])) return parent[i] = leaf, tree;\n }\n\n // Is the new point is exactly coincident with the existing point?\n xp = +tree._x.call(null, node.data);\n yp = +tree._y.call(null, node.data);\n if (x === xp && y === yp) return leaf.next = node, parent ? parent[i] = leaf : tree._root = leaf, tree;\n\n // Otherwise, split the leaf node until the old and new point are separated.\n do {\n parent = parent ? parent[i] = new Array(4) : tree._root = new Array(4);\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n } while ((i = bottom << 1 | right) === (j = (yp >= ym) << 1 | (xp >= xm)));\n return parent[j] = node, parent[i] = leaf, tree;\n}\n\nexport function addAll(data) {\n var d, i, n = data.length,\n x,\n y,\n xz = new Array(n),\n yz = new Array(n),\n x0 = Infinity,\n y0 = Infinity,\n x1 = -Infinity,\n y1 = -Infinity;\n\n // Compute the points and their extent.\n for (i = 0; i < n; ++i) {\n if (isNaN(x = +this._x.call(null, d = data[i])) || isNaN(y = +this._y.call(null, d))) continue;\n xz[i] = x;\n yz[i] = y;\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n }\n\n // If there were no (valid) points, abort.\n if (x0 > x1 || y0 > y1) return this;\n\n // Expand the tree to cover the new points.\n this.cover(x0, y0).cover(x1, y1);\n\n // Add the new points.\n for (i = 0; i < n; ++i) {\n add(this, xz[i], yz[i], data[i]);\n }\n\n return this;\n}\n","export default function(x, y) {\n if (isNaN(x = +x) || isNaN(y = +y)) return this; // ignore invalid points\n\n var x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1;\n\n // If the quadtree has no extent, initialize them.\n // Integer extent are necessary so that if we later double the extent,\n // the existing quadrant boundaries don’t change due to floating point error!\n if (isNaN(x0)) {\n x1 = (x0 = Math.floor(x)) + 1;\n y1 = (y0 = Math.floor(y)) + 1;\n }\n\n // Otherwise, double repeatedly to cover.\n else {\n var z = x1 - x0,\n node = this._root,\n parent,\n i;\n\n while (x0 > x || x >= x1 || y0 > y || y >= y1) {\n i = (y < y0) << 1 | (x < x0);\n parent = new Array(4), parent[i] = node, node = parent, z *= 2;\n switch (i) {\n case 0: x1 = x0 + z, y1 = y0 + z; break;\n case 1: x0 = x1 - z, y1 = y0 + z; break;\n case 2: x1 = x0 + z, y0 = y1 - z; break;\n case 3: x0 = x1 - z, y0 = y1 - z; break;\n }\n }\n\n if (this._root && this._root.length) this._root = node;\n }\n\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n return this;\n}\n","export default function(node, x0, y0, x1, y1) {\n this.node = node;\n this.x0 = x0;\n this.y0 = y0;\n this.x1 = x1;\n this.y1 = y1;\n}\n","export function defaultX(d) {\n return d[0];\n}\n\nexport default function(_) {\n return arguments.length ? (this._x = _, this) : this._x;\n}\n","export function defaultY(d) {\n return d[1];\n}\n\nexport default function(_) {\n return arguments.length ? (this._y = _, this) : this._y;\n}\n","import tree_add, {addAll as tree_addAll} from \"./add.js\";\nimport tree_cover from \"./cover.js\";\nimport tree_data from \"./data.js\";\nimport tree_extent from \"./extent.js\";\nimport tree_find from \"./find.js\";\nimport tree_remove, {removeAll as tree_removeAll} from \"./remove.js\";\nimport tree_root from \"./root.js\";\nimport tree_size from \"./size.js\";\nimport tree_visit from \"./visit.js\";\nimport tree_visitAfter from \"./visitAfter.js\";\nimport tree_x, {defaultX} from \"./x.js\";\nimport tree_y, {defaultY} from \"./y.js\";\n\nexport default function quadtree(nodes, x, y) {\n var tree = new Quadtree(x == null ? defaultX : x, y == null ? defaultY : y, NaN, NaN, NaN, NaN);\n return nodes == null ? tree : tree.addAll(nodes);\n}\n\nfunction Quadtree(x, y, x0, y0, x1, y1) {\n this._x = x;\n this._y = y;\n this._x0 = x0;\n this._y0 = y0;\n this._x1 = x1;\n this._y1 = y1;\n this._root = undefined;\n}\n\nfunction leaf_copy(leaf) {\n var copy = {data: leaf.data}, next = copy;\n while (leaf = leaf.next) next = next.next = {data: leaf.data};\n return copy;\n}\n\nvar treeProto = quadtree.prototype = Quadtree.prototype;\n\ntreeProto.copy = function() {\n var copy = new Quadtree(this._x, this._y, this._x0, this._y0, this._x1, this._y1),\n node = this._root,\n nodes,\n child;\n\n if (!node) return copy;\n\n if (!node.length) return copy._root = leaf_copy(node), copy;\n\n nodes = [{source: node, target: copy._root = new Array(4)}];\n while (node = nodes.pop()) {\n for (var i = 0; i < 4; ++i) {\n if (child = node.source[i]) {\n if (child.length) nodes.push({source: child, target: node.target[i] = new Array(4)});\n else node.target[i] = leaf_copy(child);\n }\n }\n }\n\n return copy;\n};\n\ntreeProto.add = tree_add;\ntreeProto.addAll = tree_addAll;\ntreeProto.cover = tree_cover;\ntreeProto.data = tree_data;\ntreeProto.extent = tree_extent;\ntreeProto.find = tree_find;\ntreeProto.remove = tree_remove;\ntreeProto.removeAll = tree_removeAll;\ntreeProto.root = tree_root;\ntreeProto.size = tree_size;\ntreeProto.visit = tree_visit;\ntreeProto.visitAfter = tree_visitAfter;\ntreeProto.x = tree_x;\ntreeProto.y = tree_y;\n","export default function() {\n var data = [];\n this.visit(function(node) {\n if (!node.length) do data.push(node.data); while (node = node.next)\n });\n return data;\n}\n","export default function(_) {\n return arguments.length\n ? this.cover(+_[0][0], +_[0][1]).cover(+_[1][0], +_[1][1])\n : isNaN(this._x0) ? undefined : [[this._x0, this._y0], [this._x1, this._y1]];\n}\n","import Quad from \"./quad.js\";\n\nexport default function(x, y, radius) {\n var data,\n x0 = this._x0,\n y0 = this._y0,\n x1,\n y1,\n x2,\n y2,\n x3 = this._x1,\n y3 = this._y1,\n quads = [],\n node = this._root,\n q,\n i;\n\n if (node) quads.push(new Quad(node, x0, y0, x3, y3));\n if (radius == null) radius = Infinity;\n else {\n x0 = x - radius, y0 = y - radius;\n x3 = x + radius, y3 = y + radius;\n radius *= radius;\n }\n\n while (q = quads.pop()) {\n\n // Stop searching if this quadrant can’t contain a closer node.\n if (!(node = q.node)\n || (x1 = q.x0) > x3\n || (y1 = q.y0) > y3\n || (x2 = q.x1) < x0\n || (y2 = q.y1) < y0) continue;\n\n // Bisect the current quadrant.\n if (node.length) {\n var xm = (x1 + x2) / 2,\n ym = (y1 + y2) / 2;\n\n quads.push(\n new Quad(node[3], xm, ym, x2, y2),\n new Quad(node[2], x1, ym, xm, y2),\n new Quad(node[1], xm, y1, x2, ym),\n new Quad(node[0], x1, y1, xm, ym)\n );\n\n // Visit the closest quadrant first.\n if (i = (y >= ym) << 1 | (x >= xm)) {\n q = quads[quads.length - 1];\n quads[quads.length - 1] = quads[quads.length - 1 - i];\n quads[quads.length - 1 - i] = q;\n }\n }\n\n // Visit this point. (Visiting coincident points isn’t necessary!)\n else {\n var dx = x - +this._x.call(null, node.data),\n dy = y - +this._y.call(null, node.data),\n d2 = dx * dx + dy * dy;\n if (d2 < radius) {\n var d = Math.sqrt(radius = d2);\n x0 = x - d, y0 = y - d;\n x3 = x + d, y3 = y + d;\n data = node.data;\n }\n }\n }\n\n return data;\n}\n","export default function(d) {\n if (isNaN(x = +this._x.call(null, d)) || isNaN(y = +this._y.call(null, d))) return this; // ignore invalid points\n\n var parent,\n node = this._root,\n retainer,\n previous,\n next,\n x0 = this._x0,\n y0 = this._y0,\n x1 = this._x1,\n y1 = this._y1,\n x,\n y,\n xm,\n ym,\n right,\n bottom,\n i,\n j;\n\n // If the tree is empty, initialize the root as a leaf.\n if (!node) return this;\n\n // Find the leaf node for the point.\n // While descending, also retain the deepest parent with a non-removed sibling.\n if (node.length) while (true) {\n if (right = x >= (xm = (x0 + x1) / 2)) x0 = xm; else x1 = xm;\n if (bottom = y >= (ym = (y0 + y1) / 2)) y0 = ym; else y1 = ym;\n if (!(parent = node, node = node[i = bottom << 1 | right])) return this;\n if (!node.length) break;\n if (parent[(i + 1) & 3] || parent[(i + 2) & 3] || parent[(i + 3) & 3]) retainer = parent, j = i;\n }\n\n // Find the point to remove.\n while (node.data !== d) if (!(previous = node, node = node.next)) return this;\n if (next = node.next) delete node.next;\n\n // If there are multiple coincident points, remove just the point.\n if (previous) return (next ? previous.next = next : delete previous.next), this;\n\n // If this is the root point, remove it.\n if (!parent) return this._root = next, this;\n\n // Remove this leaf.\n next ? parent[i] = next : delete parent[i];\n\n // If the parent now contains exactly one leaf, collapse superfluous parents.\n if ((node = parent[0] || parent[1] || parent[2] || parent[3])\n && node === (parent[3] || parent[2] || parent[1] || parent[0])\n && !node.length) {\n if (retainer) retainer[j] = node;\n else this._root = node;\n }\n\n return this;\n}\n\nexport function removeAll(data) {\n for (var i = 0, n = data.length; i < n; ++i) this.remove(data[i]);\n return this;\n}\n","export default function() {\n return this._root;\n}\n","export default function() {\n var size = 0;\n this.visit(function(node) {\n if (!node.length) do ++size; while (node = node.next)\n });\n return size;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], q, node = this._root, child, x0, y0, x1, y1;\n if (node) quads.push(new Quad(node, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n if (!callback(node = q.node, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1) && node.length) {\n var xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n }\n }\n return this;\n}\n","import Quad from \"./quad.js\";\n\nexport default function(callback) {\n var quads = [], next = [], q;\n if (this._root) quads.push(new Quad(this._root, this._x0, this._y0, this._x1, this._y1));\n while (q = quads.pop()) {\n var node = q.node;\n if (node.length) {\n var child, x0 = q.x0, y0 = q.y0, x1 = q.x1, y1 = q.y1, xm = (x0 + x1) / 2, ym = (y0 + y1) / 2;\n if (child = node[0]) quads.push(new Quad(child, x0, y0, xm, ym));\n if (child = node[1]) quads.push(new Quad(child, xm, y0, x1, ym));\n if (child = node[2]) quads.push(new Quad(child, x0, ym, xm, y1));\n if (child = node[3]) quads.push(new Quad(child, xm, ym, x1, y1));\n }\n next.push(q);\n }\n while (q = next.pop()) {\n callback(q.node, q.x0, q.y0, q.x1, q.y1);\n }\n return this;\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {map} from \"d3-collection\";\nimport {timer} from \"d3-timer\";\n\nexport function x(d) {\n return d.x;\n}\n\nexport function y(d) {\n return d.y;\n}\n\nvar initialRadius = 10,\n initialAngle = Math.PI * (3 - Math.sqrt(5));\n\nexport default function(nodes) {\n var simulation,\n alpha = 1,\n alphaMin = 0.001,\n alphaDecay = 1 - Math.pow(alphaMin, 1 / 300),\n alphaTarget = 0,\n velocityDecay = 0.6,\n forces = map(),\n stepper = timer(step),\n event = dispatch(\"tick\", \"end\");\n\n if (nodes == null) nodes = [];\n\n function step() {\n tick();\n event.call(\"tick\", simulation);\n if (alpha < alphaMin) {\n stepper.stop();\n event.call(\"end\", simulation);\n }\n }\n\n function tick(iterations) {\n var i, n = nodes.length, node;\n\n if (iterations === undefined) iterations = 1;\n\n for (var k = 0; k < iterations; ++k) {\n alpha += (alphaTarget - alpha) * alphaDecay;\n\n forces.each(function (force) {\n force(alpha);\n });\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n if (node.fx == null) node.x += node.vx *= velocityDecay;\n else node.x = node.fx, node.vx = 0;\n if (node.fy == null) node.y += node.vy *= velocityDecay;\n else node.y = node.fy, node.vy = 0;\n }\n }\n\n return simulation;\n }\n\n function initializeNodes() {\n for (var i = 0, n = nodes.length, node; i < n; ++i) {\n node = nodes[i], node.index = i;\n if (node.fx != null) node.x = node.fx;\n if (node.fy != null) node.y = node.fy;\n if (isNaN(node.x) || isNaN(node.y)) {\n var radius = initialRadius * Math.sqrt(i), angle = i * initialAngle;\n node.x = radius * Math.cos(angle);\n node.y = radius * Math.sin(angle);\n }\n if (isNaN(node.vx) || isNaN(node.vy)) {\n node.vx = node.vy = 0;\n }\n }\n }\n\n function initializeForce(force) {\n if (force.initialize) force.initialize(nodes);\n return force;\n }\n\n initializeNodes();\n\n return simulation = {\n tick: tick,\n\n restart: function() {\n return stepper.restart(step), simulation;\n },\n\n stop: function() {\n return stepper.stop(), simulation;\n },\n\n nodes: function(_) {\n return arguments.length ? (nodes = _, initializeNodes(), forces.each(initializeForce), simulation) : nodes;\n },\n\n alpha: function(_) {\n return arguments.length ? (alpha = +_, simulation) : alpha;\n },\n\n alphaMin: function(_) {\n return arguments.length ? (alphaMin = +_, simulation) : alphaMin;\n },\n\n alphaDecay: function(_) {\n return arguments.length ? (alphaDecay = +_, simulation) : +alphaDecay;\n },\n\n alphaTarget: function(_) {\n return arguments.length ? (alphaTarget = +_, simulation) : alphaTarget;\n },\n\n velocityDecay: function(_) {\n return arguments.length ? (velocityDecay = 1 - _, simulation) : 1 - velocityDecay;\n },\n\n force: function(name, _) {\n return arguments.length > 1 ? ((_ == null ? forces.remove(name) : forces.set(name, initializeForce(_))), simulation) : forces.get(name);\n },\n\n find: function(x, y, radius) {\n var i = 0,\n n = nodes.length,\n dx,\n dy,\n d2,\n node,\n closest;\n\n if (radius == null) radius = Infinity;\n else radius *= radius;\n\n for (i = 0; i < n; ++i) {\n node = nodes[i];\n dx = x - node.x;\n dy = y - node.y;\n d2 = dx * dx + dy * dy;\n if (d2 < radius) closest = node, radius = d2;\n }\n\n return closest;\n },\n\n on: function(name, _) {\n return arguments.length > 1 ? (event.on(name, _), simulation) : event.on(name);\n }\n };\n}\n","export default function() {\n return Math.random();\n}\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomNormal(source) {\n function randomNormal(mu, sigma) {\n var x, r;\n mu = mu == null ? 0 : +mu;\n sigma = sigma == null ? 1 : +sigma;\n return function() {\n var y;\n\n // If available, use the second previously-generated uniform random.\n if (x != null) y = x, x = null;\n\n // Otherwise, generate a new x and y.\n else do {\n x = source() * 2 - 1;\n y = source() * 2 - 1;\n r = x * x + y * y;\n } while (!r || r > 1);\n\n return mu + sigma * y * Math.sqrt(-2 * Math.log(r) / r);\n };\n }\n\n randomNormal.source = sourceRandomNormal;\n\n return randomNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomUniform(source) {\n function randomUniform(min, max) {\n min = min == null ? 0 : +min;\n max = max == null ? 1 : +max;\n if (arguments.length === 1) max = min, min = 0;\n else max -= min;\n return function() {\n return source() * max + min;\n };\n }\n\n randomUniform.source = sourceRandomUniform;\n\n return randomUniform;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomIrwinHall(source) {\n function randomIrwinHall(n) {\n return function() {\n for (var sum = 0, i = 0; i < n; ++i) sum += source();\n return sum;\n };\n }\n\n randomIrwinHall.source = sourceRandomIrwinHall;\n\n return randomIrwinHall;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\nimport normal from \"./normal\";\n\nexport default (function sourceRandomLogNormal(source) {\n function randomLogNormal() {\n var randomNormal = normal.source(source).apply(this, arguments);\n return function() {\n return Math.exp(randomNormal());\n };\n }\n\n randomLogNormal.source = sourceRandomLogNormal;\n\n return randomLogNormal;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\nimport irwinHall from \"./irwinHall\";\n\nexport default (function sourceRandomBates(source) {\n function randomBates(n) {\n var randomIrwinHall = irwinHall.source(source)(n);\n return function() {\n return randomIrwinHall() / n;\n };\n }\n\n randomBates.source = sourceRandomBates;\n\n return randomBates;\n})(defaultSource);\n","import defaultSource from \"./defaultSource\";\n\nexport default (function sourceRandomExponential(source) {\n function randomExponential(lambda) {\n return function() {\n return -Math.log(1 - source()) / lambda;\n };\n }\n\n randomExponential.source = sourceRandomExponential;\n\n return randomExponential;\n})(defaultSource);\n","var array = Array.prototype;\n\nexport var map = array.map;\nexport var slice = array.slice;\n","// [[fill]align][sign][symbol][0][width][,][.precision][~][type]\nvar re = /^(?:(.)?([<>=^]))?([+\\-( ])?([$#])?(0)?(\\d+)?(,)?(\\.\\d+)?(~)?([a-z%])?$/i;\n\nexport default function formatSpecifier(specifier) {\n if (!(match = re.exec(specifier))) throw new Error(\"invalid format: \" + specifier);\n var match;\n return new FormatSpecifier({\n fill: match[1],\n align: match[2],\n sign: match[3],\n symbol: match[4],\n zero: match[5],\n width: match[6],\n comma: match[7],\n precision: match[8] && match[8].slice(1),\n trim: match[9],\n type: match[10]\n });\n}\n\nformatSpecifier.prototype = FormatSpecifier.prototype; // instanceof\n\nexport function FormatSpecifier(specifier) {\n this.fill = specifier.fill === undefined ? \" \" : specifier.fill + \"\";\n this.align = specifier.align === undefined ? \">\" : specifier.align + \"\";\n this.sign = specifier.sign === undefined ? \"-\" : specifier.sign + \"\";\n this.symbol = specifier.symbol === undefined ? \"\" : specifier.symbol + \"\";\n this.zero = !!specifier.zero;\n this.width = specifier.width === undefined ? undefined : +specifier.width;\n this.comma = !!specifier.comma;\n this.precision = specifier.precision === undefined ? undefined : +specifier.precision;\n this.trim = !!specifier.trim;\n this.type = specifier.type === undefined ? \"\" : specifier.type + \"\";\n}\n\nFormatSpecifier.prototype.toString = function() {\n return this.fill\n + this.align\n + this.sign\n + this.symbol\n + (this.zero ? \"0\" : \"\")\n + (this.width === undefined ? \"\" : Math.max(1, this.width | 0))\n + (this.comma ? \",\" : \"\")\n + (this.precision === undefined ? \"\" : \".\" + Math.max(0, this.precision | 0))\n + (this.trim ? \"~\" : \"\")\n + this.type;\n};\n","export default function(x) {\n return Math.abs(x = Math.round(x)) >= 1e21\n ? x.toLocaleString(\"en\").replace(/,/g, \"\")\n : x.toString(10);\n}\n\n// Computes the decimal coefficient and exponent of the specified number x with\n// significant digits p, where x is positive and p is in [1, 21] or undefined.\n// For example, formatDecimalParts(1.23) returns [\"123\", 0].\nexport function formatDecimalParts(x, p) {\n if ((i = (x = p ? x.toExponential(p - 1) : x.toExponential()).indexOf(\"e\")) < 0) return null; // NaN, ±Infinity\n var i, coefficient = x.slice(0, i);\n\n // The string returned by toExponential either has the form \\d\\.\\d+e[-+]\\d+\n // (e.g., 1.2e+3) or the form \\de[-+]\\d+ (e.g., 1e+3).\n return [\n coefficient.length > 1 ? coefficient[0] + coefficient.slice(2) : coefficient,\n +x.slice(i + 1)\n ];\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x) {\n return x = formatDecimalParts(Math.abs(x)), x ? x[1] : NaN;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport var prefixExponent;\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1],\n i = exponent - (prefixExponent = Math.max(-8, Math.min(8, Math.floor(exponent / 3))) * 3) + 1,\n n = coefficient.length;\n return i === n ? coefficient\n : i > n ? coefficient + new Array(i - n + 1).join(\"0\")\n : i > 0 ? coefficient.slice(0, i) + \".\" + coefficient.slice(i)\n : \"0.\" + new Array(1 - i).join(\"0\") + formatDecimalParts(x, Math.max(0, p + i - 1))[0]; // less than 1y!\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var format;\nexport var formatPrefix;\n\ndefaultLocale({\n decimal: \".\",\n thousands: \",\",\n grouping: [3],\n currency: [\"$\", \"\"],\n minus: \"-\"\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n format = locale.format;\n formatPrefix = locale.formatPrefix;\n return locale;\n}\n","import {formatDecimalParts} from \"./formatDecimal.js\";\n\nexport default function(x, p) {\n var d = formatDecimalParts(x, p);\n if (!d) return x + \"\";\n var coefficient = d[0],\n exponent = d[1];\n return exponent < 0 ? \"0.\" + new Array(-exponent).join(\"0\") + coefficient\n : coefficient.length > exponent + 1 ? coefficient.slice(0, exponent + 1) + \".\" + coefficient.slice(exponent + 1)\n : coefficient + new Array(exponent - coefficient.length + 2).join(\"0\");\n}\n","import formatDecimal from \"./formatDecimal.js\";\nimport formatPrefixAuto from \"./formatPrefixAuto.js\";\nimport formatRounded from \"./formatRounded.js\";\n\nexport default {\n \"%\": function(x, p) { return (x * 100).toFixed(p); },\n \"b\": function(x) { return Math.round(x).toString(2); },\n \"c\": function(x) { return x + \"\"; },\n \"d\": formatDecimal,\n \"e\": function(x, p) { return x.toExponential(p); },\n \"f\": function(x, p) { return x.toFixed(p); },\n \"g\": function(x, p) { return x.toPrecision(p); },\n \"o\": function(x) { return Math.round(x).toString(8); },\n \"p\": function(x, p) { return formatRounded(x * 100, p); },\n \"r\": formatRounded,\n \"s\": formatPrefixAuto,\n \"X\": function(x) { return Math.round(x).toString(16).toUpperCase(); },\n \"x\": function(x) { return Math.round(x).toString(16); }\n};\n","export default function(x) {\n return x;\n}\n","import exponent from \"./exponent.js\";\nimport formatGroup from \"./formatGroup.js\";\nimport formatNumerals from \"./formatNumerals.js\";\nimport formatSpecifier from \"./formatSpecifier.js\";\nimport formatTrim from \"./formatTrim.js\";\nimport formatTypes from \"./formatTypes.js\";\nimport {prefixExponent} from \"./formatPrefixAuto.js\";\nimport identity from \"./identity.js\";\n\nvar map = Array.prototype.map,\n prefixes = [\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"];\n\nexport default function(locale) {\n var group = locale.grouping === undefined || locale.thousands === undefined ? identity : formatGroup(map.call(locale.grouping, Number), locale.thousands + \"\"),\n currencyPrefix = locale.currency === undefined ? \"\" : locale.currency[0] + \"\",\n currencySuffix = locale.currency === undefined ? \"\" : locale.currency[1] + \"\",\n decimal = locale.decimal === undefined ? \".\" : locale.decimal + \"\",\n numerals = locale.numerals === undefined ? identity : formatNumerals(map.call(locale.numerals, String)),\n percent = locale.percent === undefined ? \"%\" : locale.percent + \"\",\n minus = locale.minus === undefined ? \"-\" : locale.minus + \"\",\n nan = locale.nan === undefined ? \"NaN\" : locale.nan + \"\";\n\n function newFormat(specifier) {\n specifier = formatSpecifier(specifier);\n\n var fill = specifier.fill,\n align = specifier.align,\n sign = specifier.sign,\n symbol = specifier.symbol,\n zero = specifier.zero,\n width = specifier.width,\n comma = specifier.comma,\n precision = specifier.precision,\n trim = specifier.trim,\n type = specifier.type;\n\n // The \"n\" type is an alias for \",g\".\n if (type === \"n\") comma = true, type = \"g\";\n\n // The \"\" type, and any invalid type, is an alias for \".12~g\".\n else if (!formatTypes[type]) precision === undefined && (precision = 12), trim = true, type = \"g\";\n\n // If zero fill is specified, padding goes after sign and before digits.\n if (zero || (fill === \"0\" && align === \"=\")) zero = true, fill = \"0\", align = \"=\";\n\n // Compute the prefix and suffix.\n // For SI-prefix, the suffix is lazily computed.\n var prefix = symbol === \"$\" ? currencyPrefix : symbol === \"#\" && /[boxX]/.test(type) ? \"0\" + type.toLowerCase() : \"\",\n suffix = symbol === \"$\" ? currencySuffix : /[%p]/.test(type) ? percent : \"\";\n\n // What format function should we use?\n // Is this an integer type?\n // Can this type generate exponential notation?\n var formatType = formatTypes[type],\n maybeSuffix = /[defgprs%]/.test(type);\n\n // Set the default precision if not specified,\n // or clamp the specified precision to the supported range.\n // For significant precision, it must be in [1, 21].\n // For fixed precision, it must be in [0, 20].\n precision = precision === undefined ? 6\n : /[gprs]/.test(type) ? Math.max(1, Math.min(21, precision))\n : Math.max(0, Math.min(20, precision));\n\n function format(value) {\n var valuePrefix = prefix,\n valueSuffix = suffix,\n i, n, c;\n\n if (type === \"c\") {\n valueSuffix = formatType(value) + valueSuffix;\n value = \"\";\n } else {\n value = +value;\n\n // Determine the sign. -0 is not less than 0, but 1 / -0 is!\n var valueNegative = value < 0 || 1 / value < 0;\n\n // Perform the initial formatting.\n value = isNaN(value) ? nan : formatType(Math.abs(value), precision);\n\n // Trim insignificant zeros.\n if (trim) value = formatTrim(value);\n\n // If a negative value rounds to zero after formatting, and no explicit positive sign is requested, hide the sign.\n if (valueNegative && +value === 0 && sign !== \"+\") valueNegative = false;\n\n // Compute the prefix and suffix.\n valuePrefix = (valueNegative ? (sign === \"(\" ? sign : minus) : sign === \"-\" || sign === \"(\" ? \"\" : sign) + valuePrefix;\n valueSuffix = (type === \"s\" ? prefixes[8 + prefixExponent / 3] : \"\") + valueSuffix + (valueNegative && sign === \"(\" ? \")\" : \"\");\n\n // Break the formatted value into the integer “value” part that can be\n // grouped, and fractional or exponential “suffix” part that is not.\n if (maybeSuffix) {\n i = -1, n = value.length;\n while (++i < n) {\n if (c = value.charCodeAt(i), 48 > c || c > 57) {\n valueSuffix = (c === 46 ? decimal + value.slice(i + 1) : value.slice(i)) + valueSuffix;\n value = value.slice(0, i);\n break;\n }\n }\n }\n }\n\n // If the fill character is not \"0\", grouping is applied before padding.\n if (comma && !zero) value = group(value, Infinity);\n\n // Compute the padding.\n var length = valuePrefix.length + value.length + valueSuffix.length,\n padding = length < width ? new Array(width - length + 1).join(fill) : \"\";\n\n // If the fill character is \"0\", grouping is applied after padding.\n if (comma && zero) value = group(padding + value, padding.length ? width - valueSuffix.length : Infinity), padding = \"\";\n\n // Reconstruct the final output based on the desired alignment.\n switch (align) {\n case \"<\": value = valuePrefix + value + valueSuffix + padding; break;\n case \"=\": value = valuePrefix + padding + value + valueSuffix; break;\n case \"^\": value = padding.slice(0, length = padding.length >> 1) + valuePrefix + value + valueSuffix + padding.slice(length); break;\n default: value = padding + valuePrefix + value + valueSuffix; break;\n }\n\n return numerals(value);\n }\n\n format.toString = function() {\n return specifier + \"\";\n };\n\n return format;\n }\n\n function formatPrefix(specifier, value) {\n var f = newFormat((specifier = formatSpecifier(specifier), specifier.type = \"f\", specifier)),\n e = Math.max(-8, Math.min(8, Math.floor(exponent(value) / 3))) * 3,\n k = Math.pow(10, -e),\n prefix = prefixes[8 + e / 3];\n return function(value) {\n return f(k * value) + prefix;\n };\n }\n\n return {\n format: newFormat,\n formatPrefix: formatPrefix\n };\n}\n","export default function(grouping, thousands) {\n return function(value, width) {\n var i = value.length,\n t = [],\n j = 0,\n g = grouping[0],\n length = 0;\n\n while (i > 0 && g > 0) {\n if (length + g + 1 > width) g = Math.max(1, width - length);\n t.push(value.substring(i -= g, i + g));\n if ((length += g + 1) > width) break;\n g = grouping[j = (j + 1) % grouping.length];\n }\n\n return t.reverse().join(thousands);\n };\n}\n","export default function(numerals) {\n return function(value) {\n return value.replace(/[0-9]/g, function(i) {\n return numerals[+i];\n });\n };\n}\n","// Trims insignificant zeros, e.g., replaces 1.2000k with 1.2k.\nexport default function(s) {\n out: for (var n = s.length, i = 1, i0 = -1, i1; i < n; ++i) {\n switch (s[i]) {\n case \".\": i0 = i1 = i; break;\n case \"0\": if (i0 === 0) i0 = i; i1 = i; break;\n default: if (!+s[i]) break out; if (i0 > 0) i0 = 0; break;\n }\n }\n return i0 > 0 ? s.slice(0, i0) + s.slice(i1 + 1) : s;\n}\n","var t0 = new Date,\n t1 = new Date;\n\nexport default function newInterval(floori, offseti, count, field) {\n\n function interval(date) {\n return floori(date = arguments.length === 0 ? new Date : new Date(+date)), date;\n }\n\n interval.floor = function(date) {\n return floori(date = new Date(+date)), date;\n };\n\n interval.ceil = function(date) {\n return floori(date = new Date(date - 1)), offseti(date, 1), floori(date), date;\n };\n\n interval.round = function(date) {\n var d0 = interval(date),\n d1 = interval.ceil(date);\n return date - d0 < d1 - date ? d0 : d1;\n };\n\n interval.offset = function(date, step) {\n return offseti(date = new Date(+date), step == null ? 1 : Math.floor(step)), date;\n };\n\n interval.range = function(start, stop, step) {\n var range = [], previous;\n start = interval.ceil(start);\n step = step == null ? 1 : Math.floor(step);\n if (!(start < stop) || !(step > 0)) return range; // also handles Invalid Date\n do range.push(previous = new Date(+start)), offseti(start, step), floori(start);\n while (previous < start && start < stop);\n return range;\n };\n\n interval.filter = function(test) {\n return newInterval(function(date) {\n if (date >= date) while (floori(date), !test(date)) date.setTime(date - 1);\n }, function(date, step) {\n if (date >= date) {\n if (step < 0) while (++step <= 0) {\n while (offseti(date, -1), !test(date)) {} // eslint-disable-line no-empty\n } else while (--step >= 0) {\n while (offseti(date, +1), !test(date)) {} // eslint-disable-line no-empty\n }\n }\n });\n };\n\n if (count) {\n interval.count = function(start, end) {\n t0.setTime(+start), t1.setTime(+end);\n floori(t0), floori(t1);\n return Math.floor(count(t0, t1));\n };\n\n interval.every = function(step) {\n step = Math.floor(step);\n return !isFinite(step) || !(step > 0) ? null\n : !(step > 1) ? interval\n : interval.filter(field\n ? function(d) { return field(d) % step === 0; }\n : function(d) { return interval.count(0, d) % step === 0; });\n };\n }\n\n return interval;\n}\n","import interval from \"./interval.js\";\n\nvar year = interval(function(date) {\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setFullYear(date.getFullYear() + step);\n}, function(start, end) {\n return end.getFullYear() - start.getFullYear();\n}, function(date) {\n return date.getFullYear();\n});\n\n// An optimized implementation for this simple case.\nyear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setFullYear(Math.floor(date.getFullYear() / k) * k);\n date.setMonth(0, 1);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setFullYear(date.getFullYear() + step * k);\n });\n};\n\nexport default year;\nexport var years = year.range;\n","import interval from \"./interval.js\";\n\nvar month = interval(function(date) {\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setMonth(date.getMonth() + step);\n}, function(start, end) {\n return end.getMonth() - start.getMonth() + (end.getFullYear() - start.getFullYear()) * 12;\n}, function(date) {\n return date.getMonth();\n});\n\nexport default month;\nexport var months = month.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationWeek} from \"./duration.js\";\n\nfunction weekday(i) {\n return interval(function(date) {\n date.setDate(date.getDate() - (date.getDay() + 7 - i) % 7);\n date.setHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setDate(date.getDate() + step * 7);\n }, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationWeek;\n });\n}\n\nexport var sunday = weekday(0);\nexport var monday = weekday(1);\nexport var tuesday = weekday(2);\nexport var wednesday = weekday(3);\nexport var thursday = weekday(4);\nexport var friday = weekday(5);\nexport var saturday = weekday(6);\n\nexport var sundays = sunday.range;\nexport var mondays = monday.range;\nexport var tuesdays = tuesday.range;\nexport var wednesdays = wednesday.range;\nexport var thursdays = thursday.range;\nexport var fridays = friday.range;\nexport var saturdays = saturday.range;\n","export var durationSecond = 1e3;\nexport var durationMinute = 6e4;\nexport var durationHour = 36e5;\nexport var durationDay = 864e5;\nexport var durationWeek = 6048e5;\n","import interval from \"./interval.js\";\nimport {durationDay, durationMinute} from \"./duration.js\";\n\nvar day = interval(function(date) {\n date.setHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setDate(date.getDate() + step);\n}, function(start, end) {\n return (end - start - (end.getTimezoneOffset() - start.getTimezoneOffset()) * durationMinute) / durationDay;\n}, function(date) {\n return date.getDate() - 1;\n});\n\nexport default day;\nexport var days = day.range;\n","import interval from \"./interval.js\";\nimport {durationHour, durationMinute, durationSecond} from \"./duration.js\";\n\nvar hour = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond - date.getMinutes() * durationMinute);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getHours();\n});\n\nexport default hour;\nexport var hours = hour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute, durationSecond} from \"./duration.js\";\n\nvar minute = interval(function(date) {\n date.setTime(date - date.getMilliseconds() - date.getSeconds() * durationSecond);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getMinutes();\n});\n\nexport default minute;\nexport var minutes = minute.range;\n","import interval from \"./interval.js\";\nimport {durationSecond} from \"./duration.js\";\n\nvar second = interval(function(date) {\n date.setTime(date - date.getMilliseconds());\n}, function(date, step) {\n date.setTime(+date + step * durationSecond);\n}, function(start, end) {\n return (end - start) / durationSecond;\n}, function(date) {\n return date.getUTCSeconds();\n});\n\nexport default second;\nexport var seconds = second.range;\n","import interval from \"./interval.js\";\n\nvar millisecond = interval(function() {\n // noop\n}, function(date, step) {\n date.setTime(+date + step);\n}, function(start, end) {\n return end - start;\n});\n\n// An optimized implementation for this simple case.\nmillisecond.every = function(k) {\n k = Math.floor(k);\n if (!isFinite(k) || !(k > 0)) return null;\n if (!(k > 1)) return millisecond;\n return interval(function(date) {\n date.setTime(Math.floor(date / k) * k);\n }, function(date, step) {\n date.setTime(+date + step * k);\n }, function(start, end) {\n return (end - start) / k;\n });\n};\n\nexport default millisecond;\nexport var milliseconds = millisecond.range;\n","import interval from \"./interval.js\";\nimport {durationWeek} from \"./duration.js\";\n\nfunction utcWeekday(i) {\n return interval(function(date) {\n date.setUTCDate(date.getUTCDate() - (date.getUTCDay() + 7 - i) % 7);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step * 7);\n }, function(start, end) {\n return (end - start) / durationWeek;\n });\n}\n\nexport var utcSunday = utcWeekday(0);\nexport var utcMonday = utcWeekday(1);\nexport var utcTuesday = utcWeekday(2);\nexport var utcWednesday = utcWeekday(3);\nexport var utcThursday = utcWeekday(4);\nexport var utcFriday = utcWeekday(5);\nexport var utcSaturday = utcWeekday(6);\n\nexport var utcSundays = utcSunday.range;\nexport var utcMondays = utcMonday.range;\nexport var utcTuesdays = utcTuesday.range;\nexport var utcWednesdays = utcWednesday.range;\nexport var utcThursdays = utcThursday.range;\nexport var utcFridays = utcFriday.range;\nexport var utcSaturdays = utcSaturday.range;\n","import interval from \"./interval.js\";\nimport {durationDay} from \"./duration.js\";\n\nvar utcDay = interval(function(date) {\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCDate(date.getUTCDate() + step);\n}, function(start, end) {\n return (end - start) / durationDay;\n}, function(date) {\n return date.getUTCDate() - 1;\n});\n\nexport default utcDay;\nexport var utcDays = utcDay.range;\n","import interval from \"./interval.js\";\n\nvar utcYear = interval(function(date) {\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step);\n}, function(start, end) {\n return end.getUTCFullYear() - start.getUTCFullYear();\n}, function(date) {\n return date.getUTCFullYear();\n});\n\n// An optimized implementation for this simple case.\nutcYear.every = function(k) {\n return !isFinite(k = Math.floor(k)) || !(k > 0) ? null : interval(function(date) {\n date.setUTCFullYear(Math.floor(date.getUTCFullYear() / k) * k);\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n }, function(date, step) {\n date.setUTCFullYear(date.getUTCFullYear() + step * k);\n });\n};\n\nexport default utcYear;\nexport var utcYears = utcYear.range;\n","import {\n timeDay,\n timeSunday,\n timeMonday,\n timeThursday,\n timeYear,\n utcDay,\n utcSunday,\n utcMonday,\n utcThursday,\n utcYear\n} from \"d3-time\";\n\nfunction localDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(-1, d.m, d.d, d.H, d.M, d.S, d.L);\n date.setFullYear(d.y);\n return date;\n }\n return new Date(d.y, d.m, d.d, d.H, d.M, d.S, d.L);\n}\n\nfunction utcDate(d) {\n if (0 <= d.y && d.y < 100) {\n var date = new Date(Date.UTC(-1, d.m, d.d, d.H, d.M, d.S, d.L));\n date.setUTCFullYear(d.y);\n return date;\n }\n return new Date(Date.UTC(d.y, d.m, d.d, d.H, d.M, d.S, d.L));\n}\n\nfunction newDate(y, m, d) {\n return {y: y, m: m, d: d, H: 0, M: 0, S: 0, L: 0};\n}\n\nexport default function formatLocale(locale) {\n var locale_dateTime = locale.dateTime,\n locale_date = locale.date,\n locale_time = locale.time,\n locale_periods = locale.periods,\n locale_weekdays = locale.days,\n locale_shortWeekdays = locale.shortDays,\n locale_months = locale.months,\n locale_shortMonths = locale.shortMonths;\n\n var periodRe = formatRe(locale_periods),\n periodLookup = formatLookup(locale_periods),\n weekdayRe = formatRe(locale_weekdays),\n weekdayLookup = formatLookup(locale_weekdays),\n shortWeekdayRe = formatRe(locale_shortWeekdays),\n shortWeekdayLookup = formatLookup(locale_shortWeekdays),\n monthRe = formatRe(locale_months),\n monthLookup = formatLookup(locale_months),\n shortMonthRe = formatRe(locale_shortMonths),\n shortMonthLookup = formatLookup(locale_shortMonths);\n\n var formats = {\n \"a\": formatShortWeekday,\n \"A\": formatWeekday,\n \"b\": formatShortMonth,\n \"B\": formatMonth,\n \"c\": null,\n \"d\": formatDayOfMonth,\n \"e\": formatDayOfMonth,\n \"f\": formatMicroseconds,\n \"g\": formatYearISO,\n \"G\": formatFullYearISO,\n \"H\": formatHour24,\n \"I\": formatHour12,\n \"j\": formatDayOfYear,\n \"L\": formatMilliseconds,\n \"m\": formatMonthNumber,\n \"M\": formatMinutes,\n \"p\": formatPeriod,\n \"q\": formatQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatSeconds,\n \"u\": formatWeekdayNumberMonday,\n \"U\": formatWeekNumberSunday,\n \"V\": formatWeekNumberISO,\n \"w\": formatWeekdayNumberSunday,\n \"W\": formatWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatYear,\n \"Y\": formatFullYear,\n \"Z\": formatZone,\n \"%\": formatLiteralPercent\n };\n\n var utcFormats = {\n \"a\": formatUTCShortWeekday,\n \"A\": formatUTCWeekday,\n \"b\": formatUTCShortMonth,\n \"B\": formatUTCMonth,\n \"c\": null,\n \"d\": formatUTCDayOfMonth,\n \"e\": formatUTCDayOfMonth,\n \"f\": formatUTCMicroseconds,\n \"g\": formatUTCYearISO,\n \"G\": formatUTCFullYearISO,\n \"H\": formatUTCHour24,\n \"I\": formatUTCHour12,\n \"j\": formatUTCDayOfYear,\n \"L\": formatUTCMilliseconds,\n \"m\": formatUTCMonthNumber,\n \"M\": formatUTCMinutes,\n \"p\": formatUTCPeriod,\n \"q\": formatUTCQuarter,\n \"Q\": formatUnixTimestamp,\n \"s\": formatUnixTimestampSeconds,\n \"S\": formatUTCSeconds,\n \"u\": formatUTCWeekdayNumberMonday,\n \"U\": formatUTCWeekNumberSunday,\n \"V\": formatUTCWeekNumberISO,\n \"w\": formatUTCWeekdayNumberSunday,\n \"W\": formatUTCWeekNumberMonday,\n \"x\": null,\n \"X\": null,\n \"y\": formatUTCYear,\n \"Y\": formatUTCFullYear,\n \"Z\": formatUTCZone,\n \"%\": formatLiteralPercent\n };\n\n var parses = {\n \"a\": parseShortWeekday,\n \"A\": parseWeekday,\n \"b\": parseShortMonth,\n \"B\": parseMonth,\n \"c\": parseLocaleDateTime,\n \"d\": parseDayOfMonth,\n \"e\": parseDayOfMonth,\n \"f\": parseMicroseconds,\n \"g\": parseYear,\n \"G\": parseFullYear,\n \"H\": parseHour24,\n \"I\": parseHour24,\n \"j\": parseDayOfYear,\n \"L\": parseMilliseconds,\n \"m\": parseMonthNumber,\n \"M\": parseMinutes,\n \"p\": parsePeriod,\n \"q\": parseQuarter,\n \"Q\": parseUnixTimestamp,\n \"s\": parseUnixTimestampSeconds,\n \"S\": parseSeconds,\n \"u\": parseWeekdayNumberMonday,\n \"U\": parseWeekNumberSunday,\n \"V\": parseWeekNumberISO,\n \"w\": parseWeekdayNumberSunday,\n \"W\": parseWeekNumberMonday,\n \"x\": parseLocaleDate,\n \"X\": parseLocaleTime,\n \"y\": parseYear,\n \"Y\": parseFullYear,\n \"Z\": parseZone,\n \"%\": parseLiteralPercent\n };\n\n // These recursive directive definitions must be deferred.\n formats.x = newFormat(locale_date, formats);\n formats.X = newFormat(locale_time, formats);\n formats.c = newFormat(locale_dateTime, formats);\n utcFormats.x = newFormat(locale_date, utcFormats);\n utcFormats.X = newFormat(locale_time, utcFormats);\n utcFormats.c = newFormat(locale_dateTime, utcFormats);\n\n function newFormat(specifier, formats) {\n return function(date) {\n var string = [],\n i = -1,\n j = 0,\n n = specifier.length,\n c,\n pad,\n format;\n\n if (!(date instanceof Date)) date = new Date(+date);\n\n while (++i < n) {\n if (specifier.charCodeAt(i) === 37) {\n string.push(specifier.slice(j, i));\n if ((pad = pads[c = specifier.charAt(++i)]) != null) c = specifier.charAt(++i);\n else pad = c === \"e\" ? \" \" : \"0\";\n if (format = formats[c]) c = format(date, pad);\n string.push(c);\n j = i + 1;\n }\n }\n\n string.push(specifier.slice(j, i));\n return string.join(\"\");\n };\n }\n\n function newParse(specifier, Z) {\n return function(string) {\n var d = newDate(1900, undefined, 1),\n i = parseSpecifier(d, specifier, string += \"\", 0),\n week, day;\n if (i != string.length) return null;\n\n // If a UNIX timestamp is specified, return it.\n if (\"Q\" in d) return new Date(d.Q);\n if (\"s\" in d) return new Date(d.s * 1000 + (\"L\" in d ? d.L : 0));\n\n // If this is utcParse, never use the local timezone.\n if (Z && !(\"Z\" in d)) d.Z = 0;\n\n // The am-pm flag is 0 for AM, and 1 for PM.\n if (\"p\" in d) d.H = d.H % 12 + d.p * 12;\n\n // If the month was not specified, inherit from the quarter.\n if (d.m === undefined) d.m = \"q\" in d ? d.q : 0;\n\n // Convert day-of-week and week-of-year to day-of-year.\n if (\"V\" in d) {\n if (d.V < 1 || d.V > 53) return null;\n if (!(\"w\" in d)) d.w = 1;\n if (\"Z\" in d) {\n week = utcDate(newDate(d.y, 0, 1)), day = week.getUTCDay();\n week = day > 4 || day === 0 ? utcMonday.ceil(week) : utcMonday(week);\n week = utcDay.offset(week, (d.V - 1) * 7);\n d.y = week.getUTCFullYear();\n d.m = week.getUTCMonth();\n d.d = week.getUTCDate() + (d.w + 6) % 7;\n } else {\n week = localDate(newDate(d.y, 0, 1)), day = week.getDay();\n week = day > 4 || day === 0 ? timeMonday.ceil(week) : timeMonday(week);\n week = timeDay.offset(week, (d.V - 1) * 7);\n d.y = week.getFullYear();\n d.m = week.getMonth();\n d.d = week.getDate() + (d.w + 6) % 7;\n }\n } else if (\"W\" in d || \"U\" in d) {\n if (!(\"w\" in d)) d.w = \"u\" in d ? d.u % 7 : \"W\" in d ? 1 : 0;\n day = \"Z\" in d ? utcDate(newDate(d.y, 0, 1)).getUTCDay() : localDate(newDate(d.y, 0, 1)).getDay();\n d.m = 0;\n d.d = \"W\" in d ? (d.w + 6) % 7 + d.W * 7 - (day + 5) % 7 : d.w + d.U * 7 - (day + 6) % 7;\n }\n\n // If a time zone is specified, all fields are interpreted as UTC and then\n // offset according to the specified time zone.\n if (\"Z\" in d) {\n d.H += d.Z / 100 | 0;\n d.M += d.Z % 100;\n return utcDate(d);\n }\n\n // Otherwise, all fields are in local time.\n return localDate(d);\n };\n }\n\n function parseSpecifier(d, specifier, string, j) {\n var i = 0,\n n = specifier.length,\n m = string.length,\n c,\n parse;\n\n while (i < n) {\n if (j >= m) return -1;\n c = specifier.charCodeAt(i++);\n if (c === 37) {\n c = specifier.charAt(i++);\n parse = parses[c in pads ? specifier.charAt(i++) : c];\n if (!parse || ((j = parse(d, string, j)) < 0)) return -1;\n } else if (c != string.charCodeAt(j++)) {\n return -1;\n }\n }\n\n return j;\n }\n\n function parsePeriod(d, string, i) {\n var n = periodRe.exec(string.slice(i));\n return n ? (d.p = periodLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortWeekday(d, string, i) {\n var n = shortWeekdayRe.exec(string.slice(i));\n return n ? (d.w = shortWeekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseWeekday(d, string, i) {\n var n = weekdayRe.exec(string.slice(i));\n return n ? (d.w = weekdayLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseShortMonth(d, string, i) {\n var n = shortMonthRe.exec(string.slice(i));\n return n ? (d.m = shortMonthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseMonth(d, string, i) {\n var n = monthRe.exec(string.slice(i));\n return n ? (d.m = monthLookup[n[0].toLowerCase()], i + n[0].length) : -1;\n }\n\n function parseLocaleDateTime(d, string, i) {\n return parseSpecifier(d, locale_dateTime, string, i);\n }\n\n function parseLocaleDate(d, string, i) {\n return parseSpecifier(d, locale_date, string, i);\n }\n\n function parseLocaleTime(d, string, i) {\n return parseSpecifier(d, locale_time, string, i);\n }\n\n function formatShortWeekday(d) {\n return locale_shortWeekdays[d.getDay()];\n }\n\n function formatWeekday(d) {\n return locale_weekdays[d.getDay()];\n }\n\n function formatShortMonth(d) {\n return locale_shortMonths[d.getMonth()];\n }\n\n function formatMonth(d) {\n return locale_months[d.getMonth()];\n }\n\n function formatPeriod(d) {\n return locale_periods[+(d.getHours() >= 12)];\n }\n\n function formatQuarter(d) {\n return 1 + ~~(d.getMonth() / 3);\n }\n\n function formatUTCShortWeekday(d) {\n return locale_shortWeekdays[d.getUTCDay()];\n }\n\n function formatUTCWeekday(d) {\n return locale_weekdays[d.getUTCDay()];\n }\n\n function formatUTCShortMonth(d) {\n return locale_shortMonths[d.getUTCMonth()];\n }\n\n function formatUTCMonth(d) {\n return locale_months[d.getUTCMonth()];\n }\n\n function formatUTCPeriod(d) {\n return locale_periods[+(d.getUTCHours() >= 12)];\n }\n\n function formatUTCQuarter(d) {\n return 1 + ~~(d.getUTCMonth() / 3);\n }\n\n return {\n format: function(specifier) {\n var f = newFormat(specifier += \"\", formats);\n f.toString = function() { return specifier; };\n return f;\n },\n parse: function(specifier) {\n var p = newParse(specifier += \"\", false);\n p.toString = function() { return specifier; };\n return p;\n },\n utcFormat: function(specifier) {\n var f = newFormat(specifier += \"\", utcFormats);\n f.toString = function() { return specifier; };\n return f;\n },\n utcParse: function(specifier) {\n var p = newParse(specifier += \"\", true);\n p.toString = function() { return specifier; };\n return p;\n }\n };\n}\n\nvar pads = {\"-\": \"\", \"_\": \" \", \"0\": \"0\"},\n numberRe = /^\\s*\\d+/, // note: ignores next directive\n percentRe = /^%/,\n requoteRe = /[\\\\^$*+?|[\\]().{}]/g;\n\nfunction pad(value, fill, width) {\n var sign = value < 0 ? \"-\" : \"\",\n string = (sign ? -value : value) + \"\",\n length = string.length;\n return sign + (length < width ? new Array(width - length + 1).join(fill) + string : string);\n}\n\nfunction requote(s) {\n return s.replace(requoteRe, \"\\\\$&\");\n}\n\nfunction formatRe(names) {\n return new RegExp(\"^(?:\" + names.map(requote).join(\"|\") + \")\", \"i\");\n}\n\nfunction formatLookup(names) {\n var map = {}, i = -1, n = names.length;\n while (++i < n) map[names[i].toLowerCase()] = i;\n return map;\n}\n\nfunction parseWeekdayNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.w = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekdayNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.u = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberSunday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.U = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberISO(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.V = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseWeekNumberMonday(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.W = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseFullYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 4));\n return n ? (d.y = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.y = +n[0] + (+n[0] > 68 ? 1900 : 2000), i + n[0].length) : -1;\n}\n\nfunction parseZone(d, string, i) {\n var n = /^(Z)|([+-]\\d\\d)(?::?(\\d\\d))?/.exec(string.slice(i, i + 6));\n return n ? (d.Z = n[1] ? 0 : -(n[2] + (n[3] || \"00\")), i + n[0].length) : -1;\n}\n\nfunction parseQuarter(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 1));\n return n ? (d.q = n[0] * 3 - 3, i + n[0].length) : -1;\n}\n\nfunction parseMonthNumber(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.m = n[0] - 1, i + n[0].length) : -1;\n}\n\nfunction parseDayOfMonth(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseDayOfYear(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.m = 0, d.d = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseHour24(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.H = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMinutes(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.M = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 2));\n return n ? (d.S = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMilliseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 3));\n return n ? (d.L = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseMicroseconds(d, string, i) {\n var n = numberRe.exec(string.slice(i, i + 6));\n return n ? (d.L = Math.floor(n[0] / 1000), i + n[0].length) : -1;\n}\n\nfunction parseLiteralPercent(d, string, i) {\n var n = percentRe.exec(string.slice(i, i + 1));\n return n ? i + n[0].length : -1;\n}\n\nfunction parseUnixTimestamp(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.Q = +n[0], i + n[0].length) : -1;\n}\n\nfunction parseUnixTimestampSeconds(d, string, i) {\n var n = numberRe.exec(string.slice(i));\n return n ? (d.s = +n[0], i + n[0].length) : -1;\n}\n\nfunction formatDayOfMonth(d, p) {\n return pad(d.getDate(), p, 2);\n}\n\nfunction formatHour24(d, p) {\n return pad(d.getHours(), p, 2);\n}\n\nfunction formatHour12(d, p) {\n return pad(d.getHours() % 12 || 12, p, 2);\n}\n\nfunction formatDayOfYear(d, p) {\n return pad(1 + timeDay.count(timeYear(d), d), p, 3);\n}\n\nfunction formatMilliseconds(d, p) {\n return pad(d.getMilliseconds(), p, 3);\n}\n\nfunction formatMicroseconds(d, p) {\n return formatMilliseconds(d, p) + \"000\";\n}\n\nfunction formatMonthNumber(d, p) {\n return pad(d.getMonth() + 1, p, 2);\n}\n\nfunction formatMinutes(d, p) {\n return pad(d.getMinutes(), p, 2);\n}\n\nfunction formatSeconds(d, p) {\n return pad(d.getSeconds(), p, 2);\n}\n\nfunction formatWeekdayNumberMonday(d) {\n var day = d.getDay();\n return day === 0 ? 7 : day;\n}\n\nfunction formatWeekNumberSunday(d, p) {\n return pad(timeSunday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction dISO(d) {\n var day = d.getDay();\n return (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n}\n\nfunction formatWeekNumberISO(d, p) {\n d = dISO(d);\n return pad(timeThursday.count(timeYear(d), d) + (timeYear(d).getDay() === 4), p, 2);\n}\n\nfunction formatWeekdayNumberSunday(d) {\n return d.getDay();\n}\n\nfunction formatWeekNumberMonday(d, p) {\n return pad(timeMonday.count(timeYear(d) - 1, d), p, 2);\n}\n\nfunction formatYear(d, p) {\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatYearISO(d, p) {\n d = dISO(d);\n return pad(d.getFullYear() % 100, p, 2);\n}\n\nfunction formatFullYear(d, p) {\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatFullYearISO(d, p) {\n var day = d.getDay();\n d = (day >= 4 || day === 0) ? timeThursday(d) : timeThursday.ceil(d);\n return pad(d.getFullYear() % 10000, p, 4);\n}\n\nfunction formatZone(d) {\n var z = d.getTimezoneOffset();\n return (z > 0 ? \"-\" : (z *= -1, \"+\"))\n + pad(z / 60 | 0, \"0\", 2)\n + pad(z % 60, \"0\", 2);\n}\n\nfunction formatUTCDayOfMonth(d, p) {\n return pad(d.getUTCDate(), p, 2);\n}\n\nfunction formatUTCHour24(d, p) {\n return pad(d.getUTCHours(), p, 2);\n}\n\nfunction formatUTCHour12(d, p) {\n return pad(d.getUTCHours() % 12 || 12, p, 2);\n}\n\nfunction formatUTCDayOfYear(d, p) {\n return pad(1 + utcDay.count(utcYear(d), d), p, 3);\n}\n\nfunction formatUTCMilliseconds(d, p) {\n return pad(d.getUTCMilliseconds(), p, 3);\n}\n\nfunction formatUTCMicroseconds(d, p) {\n return formatUTCMilliseconds(d, p) + \"000\";\n}\n\nfunction formatUTCMonthNumber(d, p) {\n return pad(d.getUTCMonth() + 1, p, 2);\n}\n\nfunction formatUTCMinutes(d, p) {\n return pad(d.getUTCMinutes(), p, 2);\n}\n\nfunction formatUTCSeconds(d, p) {\n return pad(d.getUTCSeconds(), p, 2);\n}\n\nfunction formatUTCWeekdayNumberMonday(d) {\n var dow = d.getUTCDay();\n return dow === 0 ? 7 : dow;\n}\n\nfunction formatUTCWeekNumberSunday(d, p) {\n return pad(utcSunday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction UTCdISO(d) {\n var day = d.getUTCDay();\n return (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n}\n\nfunction formatUTCWeekNumberISO(d, p) {\n d = UTCdISO(d);\n return pad(utcThursday.count(utcYear(d), d) + (utcYear(d).getUTCDay() === 4), p, 2);\n}\n\nfunction formatUTCWeekdayNumberSunday(d) {\n return d.getUTCDay();\n}\n\nfunction formatUTCWeekNumberMonday(d, p) {\n return pad(utcMonday.count(utcYear(d) - 1, d), p, 2);\n}\n\nfunction formatUTCYear(d, p) {\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCYearISO(d, p) {\n d = UTCdISO(d);\n return pad(d.getUTCFullYear() % 100, p, 2);\n}\n\nfunction formatUTCFullYear(d, p) {\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCFullYearISO(d, p) {\n var day = d.getUTCDay();\n d = (day >= 4 || day === 0) ? utcThursday(d) : utcThursday.ceil(d);\n return pad(d.getUTCFullYear() % 10000, p, 4);\n}\n\nfunction formatUTCZone() {\n return \"+0000\";\n}\n\nfunction formatLiteralPercent() {\n return \"%\";\n}\n\nfunction formatUnixTimestamp(d) {\n return +d;\n}\n\nfunction formatUnixTimestampSeconds(d) {\n return Math.floor(+d / 1000);\n}\n","import formatLocale from \"./locale.js\";\n\nvar locale;\nexport var timeFormat;\nexport var timeParse;\nexport var utcFormat;\nexport var utcParse;\n\ndefaultLocale({\n dateTime: \"%x, %X\",\n date: \"%-m/%-d/%Y\",\n time: \"%-I:%M:%S %p\",\n periods: [\"AM\", \"PM\"],\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n shortDays: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n shortMonths: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"]\n});\n\nexport default function defaultLocale(definition) {\n locale = formatLocale(definition);\n timeFormat = locale.format;\n timeParse = locale.parse;\n utcFormat = locale.utcFormat;\n utcParse = locale.utcParse;\n return locale;\n}\n","import {bisector, tickStep} from \"d3-array\";\nimport {timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond} from \"d3-time\";\nimport {timeFormat} from \"d3-time-format\";\nimport {map} from \"./array\";\nimport continuous, {copy, identity} from \"./continuous\";\nimport {initRange} from \"./init\";\nimport nice from \"./nice\";\n\nvar durationSecond = 1000,\n durationMinute = durationSecond * 60,\n durationHour = durationMinute * 60,\n durationDay = durationHour * 24,\n durationWeek = durationDay * 7,\n durationMonth = durationDay * 30,\n durationYear = durationDay * 365;\n\nfunction date(t) {\n return new Date(t);\n}\n\nfunction number(t) {\n return t instanceof Date ? +t : +new Date(+t);\n}\n\nexport function calendar(year, month, week, day, hour, minute, second, millisecond, format) {\n var scale = continuous(identity, identity),\n invert = scale.invert,\n domain = scale.domain;\n\n var formatMillisecond = format(\".%L\"),\n formatSecond = format(\":%S\"),\n formatMinute = format(\"%I:%M\"),\n formatHour = format(\"%I %p\"),\n formatDay = format(\"%a %d\"),\n formatWeek = format(\"%b %d\"),\n formatMonth = format(\"%B\"),\n formatYear = format(\"%Y\");\n\n var tickIntervals = [\n [second, 1, durationSecond],\n [second, 5, 5 * durationSecond],\n [second, 15, 15 * durationSecond],\n [second, 30, 30 * durationSecond],\n [minute, 1, durationMinute],\n [minute, 5, 5 * durationMinute],\n [minute, 15, 15 * durationMinute],\n [minute, 30, 30 * durationMinute],\n [ hour, 1, durationHour ],\n [ hour, 3, 3 * durationHour ],\n [ hour, 6, 6 * durationHour ],\n [ hour, 12, 12 * durationHour ],\n [ day, 1, durationDay ],\n [ day, 2, 2 * durationDay ],\n [ week, 1, durationWeek ],\n [ month, 1, durationMonth ],\n [ month, 3, 3 * durationMonth ],\n [ year, 1, durationYear ]\n ];\n\n function tickFormat(date) {\n return (second(date) < date ? formatMillisecond\n : minute(date) < date ? formatSecond\n : hour(date) < date ? formatMinute\n : day(date) < date ? formatHour\n : month(date) < date ? (week(date) < date ? formatDay : formatWeek)\n : year(date) < date ? formatMonth\n : formatYear)(date);\n }\n\n function tickInterval(interval, start, stop, step) {\n if (interval == null) interval = 10;\n\n // If a desired tick count is specified, pick a reasonable tick interval\n // based on the extent of the domain and a rough estimate of tick size.\n // Otherwise, assume interval is already a time interval and use it.\n if (typeof interval === \"number\") {\n var target = Math.abs(stop - start) / interval,\n i = bisector(function(i) { return i[2]; }).right(tickIntervals, target);\n if (i === tickIntervals.length) {\n step = tickStep(start / durationYear, stop / durationYear, interval);\n interval = year;\n } else if (i) {\n i = tickIntervals[target / tickIntervals[i - 1][2] < tickIntervals[i][2] / target ? i - 1 : i];\n step = i[1];\n interval = i[0];\n } else {\n step = Math.max(tickStep(start, stop, interval), 1);\n interval = millisecond;\n }\n }\n\n return step == null ? interval : interval.every(step);\n }\n\n scale.invert = function(y) {\n return new Date(invert(y));\n };\n\n scale.domain = function(_) {\n return arguments.length ? domain(map.call(_, number)) : domain().map(date);\n };\n\n scale.ticks = function(interval, step) {\n var d = domain(),\n t0 = d[0],\n t1 = d[d.length - 1],\n r = t1 < t0,\n t;\n if (r) t = t0, t0 = t1, t1 = t;\n t = tickInterval(interval, t0, t1, step);\n t = t ? t.range(t0, t1 + 1) : []; // inclusive stop\n return r ? t.reverse() : t;\n };\n\n scale.tickFormat = function(count, specifier) {\n return specifier == null ? tickFormat : format(specifier);\n };\n\n scale.nice = function(interval, step) {\n var d = domain();\n return (interval = tickInterval(interval, d[0], d[d.length - 1], step))\n ? domain(nice(d, interval))\n : scale;\n };\n\n scale.copy = function() {\n return copy(scale, calendar(year, month, week, day, hour, minute, second, millisecond, format));\n };\n\n return scale;\n}\n\nexport default function() {\n return initRange.apply(calendar(timeYear, timeMonth, timeWeek, timeDay, timeHour, timeMinute, timeSecond, timeMillisecond, timeFormat).domain([new Date(2000, 0, 1), new Date(2000, 0, 2)]), arguments);\n}\n","import interval from \"./interval.js\";\n\nvar utcMonth = interval(function(date) {\n date.setUTCDate(1);\n date.setUTCHours(0, 0, 0, 0);\n}, function(date, step) {\n date.setUTCMonth(date.getUTCMonth() + step);\n}, function(start, end) {\n return end.getUTCMonth() - start.getUTCMonth() + (end.getUTCFullYear() - start.getUTCFullYear()) * 12;\n}, function(date) {\n return date.getUTCMonth();\n});\n\nexport default utcMonth;\nexport var utcMonths = utcMonth.range;\n","import interval from \"./interval.js\";\nimport {durationHour} from \"./duration.js\";\n\nvar utcHour = interval(function(date) {\n date.setUTCMinutes(0, 0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationHour);\n}, function(start, end) {\n return (end - start) / durationHour;\n}, function(date) {\n return date.getUTCHours();\n});\n\nexport default utcHour;\nexport var utcHours = utcHour.range;\n","import interval from \"./interval.js\";\nimport {durationMinute} from \"./duration.js\";\n\nvar utcMinute = interval(function(date) {\n date.setUTCSeconds(0, 0);\n}, function(date, step) {\n date.setTime(+date + step * durationMinute);\n}, function(start, end) {\n return (end - start) / durationMinute;\n}, function(date) {\n return date.getUTCMinutes();\n});\n\nexport default utcMinute;\nexport var utcMinutes = utcMinute.range;\n","function RedBlackTree() {\n this._ = null; // root node\n}\n\nexport function RedBlackNode(node) {\n node.U = // parent node\n node.C = // color - true for red, false for black\n node.L = // left node\n node.R = // right node\n node.P = // previous node\n node.N = null; // next node\n}\n\nRedBlackTree.prototype = {\n constructor: RedBlackTree,\n\n insert: function(after, node) {\n var parent, grandpa, uncle;\n\n if (after) {\n node.P = after;\n node.N = after.N;\n if (after.N) after.N.P = node;\n after.N = node;\n if (after.R) {\n after = after.R;\n while (after.L) after = after.L;\n after.L = node;\n } else {\n after.R = node;\n }\n parent = after;\n } else if (this._) {\n after = RedBlackFirst(this._);\n node.P = null;\n node.N = after;\n after.P = after.L = node;\n parent = after;\n } else {\n node.P = node.N = null;\n this._ = node;\n parent = null;\n }\n node.L = node.R = null;\n node.U = parent;\n node.C = true;\n\n after = node;\n while (parent && parent.C) {\n grandpa = parent.U;\n if (parent === grandpa.L) {\n uncle = grandpa.R;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.R) {\n RedBlackRotateLeft(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateRight(this, grandpa);\n }\n } else {\n uncle = grandpa.L;\n if (uncle && uncle.C) {\n parent.C = uncle.C = false;\n grandpa.C = true;\n after = grandpa;\n } else {\n if (after === parent.L) {\n RedBlackRotateRight(this, parent);\n after = parent;\n parent = after.U;\n }\n parent.C = false;\n grandpa.C = true;\n RedBlackRotateLeft(this, grandpa);\n }\n }\n parent = after.U;\n }\n this._.C = false;\n },\n\n remove: function(node) {\n if (node.N) node.N.P = node.P;\n if (node.P) node.P.N = node.N;\n node.N = node.P = null;\n\n var parent = node.U,\n sibling,\n left = node.L,\n right = node.R,\n next,\n red;\n\n if (!left) next = right;\n else if (!right) next = left;\n else next = RedBlackFirst(right);\n\n if (parent) {\n if (parent.L === node) parent.L = next;\n else parent.R = next;\n } else {\n this._ = next;\n }\n\n if (left && right) {\n red = next.C;\n next.C = node.C;\n next.L = left;\n left.U = next;\n if (next !== right) {\n parent = next.U;\n next.U = node.U;\n node = next.R;\n parent.L = node;\n next.R = right;\n right.U = next;\n } else {\n next.U = parent;\n parent = next;\n node = next.R;\n }\n } else {\n red = node.C;\n node = next;\n }\n\n if (node) node.U = parent;\n if (red) return;\n if (node && node.C) { node.C = false; return; }\n\n do {\n if (node === this._) break;\n if (node === parent.L) {\n sibling = parent.R;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateLeft(this, parent);\n sibling = parent.R;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.R || !sibling.R.C) {\n sibling.L.C = false;\n sibling.C = true;\n RedBlackRotateRight(this, sibling);\n sibling = parent.R;\n }\n sibling.C = parent.C;\n parent.C = sibling.R.C = false;\n RedBlackRotateLeft(this, parent);\n node = this._;\n break;\n }\n } else {\n sibling = parent.L;\n if (sibling.C) {\n sibling.C = false;\n parent.C = true;\n RedBlackRotateRight(this, parent);\n sibling = parent.L;\n }\n if ((sibling.L && sibling.L.C)\n || (sibling.R && sibling.R.C)) {\n if (!sibling.L || !sibling.L.C) {\n sibling.R.C = false;\n sibling.C = true;\n RedBlackRotateLeft(this, sibling);\n sibling = parent.L;\n }\n sibling.C = parent.C;\n parent.C = sibling.L.C = false;\n RedBlackRotateRight(this, parent);\n node = this._;\n break;\n }\n }\n sibling.C = true;\n node = parent;\n parent = parent.U;\n } while (!node.C);\n\n if (node) node.C = false;\n }\n};\n\nfunction RedBlackRotateLeft(tree, node) {\n var p = node,\n q = node.R,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.R = q.L;\n if (p.R) p.R.U = p;\n q.L = p;\n}\n\nfunction RedBlackRotateRight(tree, node) {\n var p = node,\n q = node.L,\n parent = p.U;\n\n if (parent) {\n if (parent.L === p) parent.L = q;\n else parent.R = q;\n } else {\n tree._ = q;\n }\n\n q.U = parent;\n p.U = q;\n p.L = q.R;\n if (p.L) p.L.U = p;\n q.R = p;\n}\n\nfunction RedBlackFirst(node) {\n while (node.L) node = node.L;\n return node;\n}\n\nexport default RedBlackTree;\n","import {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createEdge(left, right, v0, v1) {\n var edge = [null, null],\n index = edges.push(edge) - 1;\n edge.left = left;\n edge.right = right;\n if (v0) setEdgeEnd(edge, left, right, v0);\n if (v1) setEdgeEnd(edge, right, left, v1);\n cells[left.index].halfedges.push(index);\n cells[right.index].halfedges.push(index);\n return edge;\n}\n\nexport function createBorderEdge(left, v0, v1) {\n var edge = [v0, v1];\n edge.left = left;\n return edge;\n}\n\nexport function setEdgeEnd(edge, left, right, vertex) {\n if (!edge[0] && !edge[1]) {\n edge[0] = vertex;\n edge.left = left;\n edge.right = right;\n } else if (edge.left === right) {\n edge[1] = vertex;\n } else {\n edge[0] = vertex;\n }\n}\n\n// Liang–Barsky line clipping.\nfunction clipEdge(edge, x0, y0, x1, y1) {\n var a = edge[0],\n b = edge[1],\n ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (!(t0 > 0) && !(t1 < 1)) return true; // TODO Better check?\n\n if (t0 > 0) edge[0] = [ax + t0 * dx, ay + t0 * dy];\n if (t1 < 1) edge[1] = [ax + t1 * dx, ay + t1 * dy];\n return true;\n}\n\nfunction connectEdge(edge, x0, y0, x1, y1) {\n var v1 = edge[1];\n if (v1) return true;\n\n var v0 = edge[0],\n left = edge.left,\n right = edge.right,\n lx = left[0],\n ly = left[1],\n rx = right[0],\n ry = right[1],\n fx = (lx + rx) / 2,\n fy = (ly + ry) / 2,\n fm,\n fb;\n\n if (ry === ly) {\n if (fx < x0 || fx >= x1) return;\n if (lx > rx) {\n if (!v0) v0 = [fx, y0];\n else if (v0[1] >= y1) return;\n v1 = [fx, y1];\n } else {\n if (!v0) v0 = [fx, y1];\n else if (v0[1] < y0) return;\n v1 = [fx, y0];\n }\n } else {\n fm = (lx - rx) / (ry - ly);\n fb = fy - fm * fx;\n if (fm < -1 || fm > 1) {\n if (lx > rx) {\n if (!v0) v0 = [(y0 - fb) / fm, y0];\n else if (v0[1] >= y1) return;\n v1 = [(y1 - fb) / fm, y1];\n } else {\n if (!v0) v0 = [(y1 - fb) / fm, y1];\n else if (v0[1] < y0) return;\n v1 = [(y0 - fb) / fm, y0];\n }\n } else {\n if (ly < ry) {\n if (!v0) v0 = [x0, fm * x0 + fb];\n else if (v0[0] >= x1) return;\n v1 = [x1, fm * x1 + fb];\n } else {\n if (!v0) v0 = [x1, fm * x1 + fb];\n else if (v0[0] < x0) return;\n v1 = [x0, fm * x0 + fb];\n }\n }\n }\n\n edge[0] = v0;\n edge[1] = v1;\n return true;\n}\n\nexport function clipEdges(x0, y0, x1, y1) {\n var i = edges.length,\n edge;\n\n while (i--) {\n if (!connectEdge(edge = edges[i], x0, y0, x1, y1)\n || !clipEdge(edge, x0, y0, x1, y1)\n || !(Math.abs(edge[0][0] - edge[1][0]) > epsilon\n || Math.abs(edge[0][1] - edge[1][1]) > epsilon)) {\n delete edges[i];\n }\n }\n}\n","import {createBorderEdge} from \"./Edge\";\nimport {cells, edges, epsilon} from \"./Diagram\";\n\nexport function createCell(site) {\n return cells[site.index] = {\n site: site,\n halfedges: []\n };\n}\n\nfunction cellHalfedgeAngle(cell, edge) {\n var site = cell.site,\n va = edge.left,\n vb = edge.right;\n if (site === vb) vb = va, va = site;\n if (vb) return Math.atan2(vb[1] - va[1], vb[0] - va[0]);\n if (site === va) va = edge[1], vb = edge[0];\n else va = edge[0], vb = edge[1];\n return Math.atan2(va[0] - vb[0], vb[1] - va[1]);\n}\n\nexport function cellHalfedgeStart(cell, edge) {\n return edge[+(edge.left !== cell.site)];\n}\n\nexport function cellHalfedgeEnd(cell, edge) {\n return edge[+(edge.left === cell.site)];\n}\n\nexport function sortCellHalfedges() {\n for (var i = 0, n = cells.length, cell, halfedges, j, m; i < n; ++i) {\n if ((cell = cells[i]) && (m = (halfedges = cell.halfedges).length)) {\n var index = new Array(m),\n array = new Array(m);\n for (j = 0; j < m; ++j) index[j] = j, array[j] = cellHalfedgeAngle(cell, edges[halfedges[j]]);\n index.sort(function(i, j) { return array[j] - array[i]; });\n for (j = 0; j < m; ++j) array[j] = halfedges[index[j]];\n for (j = 0; j < m; ++j) halfedges[j] = array[j];\n }\n }\n}\n\nexport function clipCells(x0, y0, x1, y1) {\n var nCells = cells.length,\n iCell,\n cell,\n site,\n iHalfedge,\n halfedges,\n nHalfedges,\n start,\n startX,\n startY,\n end,\n endX,\n endY,\n cover = true;\n\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n halfedges = cell.halfedges;\n iHalfedge = halfedges.length;\n\n // Remove any dangling clipped edges.\n while (iHalfedge--) {\n if (!edges[halfedges[iHalfedge]]) {\n halfedges.splice(iHalfedge, 1);\n }\n }\n\n // Insert any border edges as necessary.\n iHalfedge = 0, nHalfedges = halfedges.length;\n while (iHalfedge < nHalfedges) {\n end = cellHalfedgeEnd(cell, edges[halfedges[iHalfedge]]), endX = end[0], endY = end[1];\n start = cellHalfedgeStart(cell, edges[halfedges[++iHalfedge % nHalfedges]]), startX = start[0], startY = start[1];\n if (Math.abs(endX - startX) > epsilon || Math.abs(endY - startY) > epsilon) {\n halfedges.splice(iHalfedge, 0, edges.push(createBorderEdge(site, end,\n Math.abs(endX - x0) < epsilon && y1 - endY > epsilon ? [x0, Math.abs(startX - x0) < epsilon ? startY : y1]\n : Math.abs(endY - y1) < epsilon && x1 - endX > epsilon ? [Math.abs(startY - y1) < epsilon ? startX : x1, y1]\n : Math.abs(endX - x1) < epsilon && endY - y0 > epsilon ? [x1, Math.abs(startX - x1) < epsilon ? startY : y0]\n : Math.abs(endY - y0) < epsilon && endX - x0 > epsilon ? [Math.abs(startY - y0) < epsilon ? startX : x0, y0]\n : null)) - 1);\n ++nHalfedges;\n }\n }\n\n if (nHalfedges) cover = false;\n }\n }\n\n // If there weren’t any edges, have the closest site cover the extent.\n // It doesn’t matter which corner of the extent we measure!\n if (cover) {\n var dx, dy, d2, dc = Infinity;\n\n for (iCell = 0, cover = null; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n site = cell.site;\n dx = site[0] - x0;\n dy = site[1] - y0;\n d2 = dx * dx + dy * dy;\n if (d2 < dc) dc = d2, cover = cell;\n }\n }\n\n if (cover) {\n var v00 = [x0, y0], v01 = [x0, y1], v11 = [x1, y1], v10 = [x1, y0];\n cover.halfedges.push(\n edges.push(createBorderEdge(site = cover.site, v00, v01)) - 1,\n edges.push(createBorderEdge(site, v01, v11)) - 1,\n edges.push(createBorderEdge(site, v11, v10)) - 1,\n edges.push(createBorderEdge(site, v10, v00)) - 1\n );\n }\n }\n\n // Lastly delete any cells with no edges; these were entirely clipped.\n for (iCell = 0; iCell < nCells; ++iCell) {\n if (cell = cells[iCell]) {\n if (!cell.halfedges.length) {\n delete cells[iCell];\n }\n }\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {circles, epsilon2} from \"./Diagram\";\n\nvar circlePool = [];\n\nexport var firstCircle;\n\nfunction Circle() {\n RedBlackNode(this);\n this.x =\n this.y =\n this.arc =\n this.site =\n this.cy = null;\n}\n\nexport function attachCircle(arc) {\n var lArc = arc.P,\n rArc = arc.N;\n\n if (!lArc || !rArc) return;\n\n var lSite = lArc.site,\n cSite = arc.site,\n rSite = rArc.site;\n\n if (lSite === rSite) return;\n\n var bx = cSite[0],\n by = cSite[1],\n ax = lSite[0] - bx,\n ay = lSite[1] - by,\n cx = rSite[0] - bx,\n cy = rSite[1] - by;\n\n var d = 2 * (ax * cy - ay * cx);\n if (d >= -epsilon2) return;\n\n var ha = ax * ax + ay * ay,\n hc = cx * cx + cy * cy,\n x = (cy * ha - ay * hc) / d,\n y = (ax * hc - cx * ha) / d;\n\n var circle = circlePool.pop() || new Circle;\n circle.arc = arc;\n circle.site = cSite;\n circle.x = x + bx;\n circle.y = (circle.cy = y + by) + Math.sqrt(x * x + y * y); // y bottom\n\n arc.circle = circle;\n\n var before = null,\n node = circles._;\n\n while (node) {\n if (circle.y < node.y || (circle.y === node.y && circle.x <= node.x)) {\n if (node.L) node = node.L;\n else { before = node.P; break; }\n } else {\n if (node.R) node = node.R;\n else { before = node; break; }\n }\n }\n\n circles.insert(before, circle);\n if (!before) firstCircle = circle;\n}\n\nexport function detachCircle(arc) {\n var circle = arc.circle;\n if (circle) {\n if (!circle.P) firstCircle = circle.N;\n circles.remove(circle);\n circlePool.push(circle);\n RedBlackNode(circle);\n arc.circle = null;\n }\n}\n","import {RedBlackNode} from \"./RedBlackTree\";\nimport {createCell} from \"./Cell\";\nimport {attachCircle, detachCircle} from \"./Circle\";\nimport {createEdge, setEdgeEnd} from \"./Edge\";\nimport {beaches, epsilon} from \"./Diagram\";\n\nvar beachPool = [];\n\nfunction Beach() {\n RedBlackNode(this);\n this.edge =\n this.site =\n this.circle = null;\n}\n\nfunction createBeach(site) {\n var beach = beachPool.pop() || new Beach;\n beach.site = site;\n return beach;\n}\n\nfunction detachBeach(beach) {\n detachCircle(beach);\n beaches.remove(beach);\n beachPool.push(beach);\n RedBlackNode(beach);\n}\n\nexport function removeBeach(beach) {\n var circle = beach.circle,\n x = circle.x,\n y = circle.cy,\n vertex = [x, y],\n previous = beach.P,\n next = beach.N,\n disappearing = [beach];\n\n detachBeach(beach);\n\n var lArc = previous;\n while (lArc.circle\n && Math.abs(x - lArc.circle.x) < epsilon\n && Math.abs(y - lArc.circle.cy) < epsilon) {\n previous = lArc.P;\n disappearing.unshift(lArc);\n detachBeach(lArc);\n lArc = previous;\n }\n\n disappearing.unshift(lArc);\n detachCircle(lArc);\n\n var rArc = next;\n while (rArc.circle\n && Math.abs(x - rArc.circle.x) < epsilon\n && Math.abs(y - rArc.circle.cy) < epsilon) {\n next = rArc.N;\n disappearing.push(rArc);\n detachBeach(rArc);\n rArc = next;\n }\n\n disappearing.push(rArc);\n detachCircle(rArc);\n\n var nArcs = disappearing.length,\n iArc;\n for (iArc = 1; iArc < nArcs; ++iArc) {\n rArc = disappearing[iArc];\n lArc = disappearing[iArc - 1];\n setEdgeEnd(rArc.edge, lArc.site, rArc.site, vertex);\n }\n\n lArc = disappearing[0];\n rArc = disappearing[nArcs - 1];\n rArc.edge = createEdge(lArc.site, rArc.site, null, vertex);\n\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nexport function addBeach(site) {\n var x = site[0],\n directrix = site[1],\n lArc,\n rArc,\n dxl,\n dxr,\n node = beaches._;\n\n while (node) {\n dxl = leftBreakPoint(node, directrix) - x;\n if (dxl > epsilon) node = node.L; else {\n dxr = x - rightBreakPoint(node, directrix);\n if (dxr > epsilon) {\n if (!node.R) {\n lArc = node;\n break;\n }\n node = node.R;\n } else {\n if (dxl > -epsilon) {\n lArc = node.P;\n rArc = node;\n } else if (dxr > -epsilon) {\n lArc = node;\n rArc = node.N;\n } else {\n lArc = rArc = node;\n }\n break;\n }\n }\n }\n\n createCell(site);\n var newArc = createBeach(site);\n beaches.insert(lArc, newArc);\n\n if (!lArc && !rArc) return;\n\n if (lArc === rArc) {\n detachCircle(lArc);\n rArc = createBeach(lArc.site);\n beaches.insert(newArc, rArc);\n newArc.edge = rArc.edge = createEdge(lArc.site, newArc.site);\n attachCircle(lArc);\n attachCircle(rArc);\n return;\n }\n\n if (!rArc) { // && lArc\n newArc.edge = createEdge(lArc.site, newArc.site);\n return;\n }\n\n // else lArc !== rArc\n detachCircle(lArc);\n detachCircle(rArc);\n\n var lSite = lArc.site,\n ax = lSite[0],\n ay = lSite[1],\n bx = site[0] - ax,\n by = site[1] - ay,\n rSite = rArc.site,\n cx = rSite[0] - ax,\n cy = rSite[1] - ay,\n d = 2 * (bx * cy - by * cx),\n hb = bx * bx + by * by,\n hc = cx * cx + cy * cy,\n vertex = [(cy * hb - by * hc) / d + ax, (bx * hc - cx * hb) / d + ay];\n\n setEdgeEnd(rArc.edge, lSite, rSite, vertex);\n newArc.edge = createEdge(lSite, site, null, vertex);\n rArc.edge = createEdge(site, rSite, null, vertex);\n attachCircle(lArc);\n attachCircle(rArc);\n}\n\nfunction leftBreakPoint(arc, directrix) {\n var site = arc.site,\n rfocx = site[0],\n rfocy = site[1],\n pby2 = rfocy - directrix;\n\n if (!pby2) return rfocx;\n\n var lArc = arc.P;\n if (!lArc) return -Infinity;\n\n site = lArc.site;\n var lfocx = site[0],\n lfocy = site[1],\n plby2 = lfocy - directrix;\n\n if (!plby2) return lfocx;\n\n var hl = lfocx - rfocx,\n aby2 = 1 / pby2 - 1 / plby2,\n b = hl / plby2;\n\n if (aby2) return (-b + Math.sqrt(b * b - 2 * aby2 * (hl * hl / (-2 * plby2) - lfocy + plby2 / 2 + rfocy - pby2 / 2))) / aby2 + rfocx;\n\n return (rfocx + lfocx) / 2;\n}\n\nfunction rightBreakPoint(arc, directrix) {\n var rArc = arc.N;\n if (rArc) return leftBreakPoint(rArc, directrix);\n var site = arc.site;\n return site[1] === directrix ? site[0] : Infinity;\n}\n","import {addBeach, removeBeach} from \"./Beach\";\nimport {sortCellHalfedges, cellHalfedgeStart, clipCells} from \"./Cell\";\nimport {firstCircle} from \"./Circle\";\nimport {clipEdges} from \"./Edge\";\nimport RedBlackTree from \"./RedBlackTree\";\n\nexport var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var beaches;\nexport var cells;\nexport var circles;\nexport var edges;\n\nfunction triangleArea(a, b, c) {\n return (a[0] - c[0]) * (b[1] - a[1]) - (a[0] - b[0]) * (c[1] - a[1]);\n}\n\nfunction lexicographic(a, b) {\n return b[1] - a[1]\n || b[0] - a[0];\n}\n\nexport default function Diagram(sites, extent) {\n var site = sites.sort(lexicographic).pop(),\n x,\n y,\n circle;\n\n edges = [];\n cells = new Array(sites.length);\n beaches = new RedBlackTree;\n circles = new RedBlackTree;\n\n while (true) {\n circle = firstCircle;\n if (site && (!circle || site[1] < circle.y || (site[1] === circle.y && site[0] < circle.x))) {\n if (site[0] !== x || site[1] !== y) {\n addBeach(site);\n x = site[0], y = site[1];\n }\n site = sites.pop();\n } else if (circle) {\n removeBeach(circle.arc);\n } else {\n break;\n }\n }\n\n sortCellHalfedges();\n\n if (extent) {\n var x0 = +extent[0][0],\n y0 = +extent[0][1],\n x1 = +extent[1][0],\n y1 = +extent[1][1];\n clipEdges(x0, y0, x1, y1);\n clipCells(x0, y0, x1, y1);\n }\n\n this.edges = edges;\n this.cells = cells;\n\n beaches =\n circles =\n edges =\n cells = null;\n}\n\nDiagram.prototype = {\n constructor: Diagram,\n\n polygons: function() {\n var edges = this.edges;\n\n return this.cells.map(function(cell) {\n var polygon = cell.halfedges.map(function(i) { return cellHalfedgeStart(cell, edges[i]); });\n polygon.data = cell.site.data;\n return polygon;\n });\n },\n\n triangles: function() {\n var triangles = [],\n edges = this.edges;\n\n this.cells.forEach(function(cell, i) {\n if (!(m = (halfedges = cell.halfedges).length)) return;\n var site = cell.site,\n halfedges,\n j = -1,\n m,\n s0,\n e1 = edges[halfedges[m - 1]],\n s1 = e1.left === site ? e1.right : e1.left;\n\n while (++j < m) {\n s0 = s1;\n e1 = edges[halfedges[j]];\n s1 = e1.left === site ? e1.right : e1.left;\n if (s0 && s1 && i < s0.index && i < s1.index && triangleArea(site, s0, s1) < 0) {\n triangles.push([site.data, s0.data, s1.data]);\n }\n }\n });\n\n return triangles;\n },\n\n links: function() {\n return this.edges.filter(function(edge) {\n return edge.right;\n }).map(function(edge) {\n return {\n source: edge.left.data,\n target: edge.right.data\n };\n });\n },\n\n find: function(x, y, radius) {\n var that = this, i0, i1 = that._found || 0, n = that.cells.length, cell;\n\n // Use the previously-found cell, or start with an arbitrary one.\n while (!(cell = that.cells[i1])) if (++i1 >= n) return null;\n var dx = x - cell.site[0], dy = y - cell.site[1], d2 = dx * dx + dy * dy;\n\n // Traverse the half-edges to find a closer cell, if any.\n do {\n cell = that.cells[i0 = i1], i1 = null;\n cell.halfedges.forEach(function(e) {\n var edge = that.edges[e], v = edge.left;\n if ((v === cell.site || !v) && !(v = edge.right)) return;\n var vx = x - v[0], vy = y - v[1], v2 = vx * vx + vy * vy;\n if (v2 < d2) d2 = v2, i1 = v.index;\n });\n } while (i1 !== null);\n\n that._found = i0;\n\n return radius == null || d2 <= radius * radius ? cell.site : null;\n }\n}\n","var rho = Math.SQRT2,\n rho2 = 2,\n rho4 = 4,\n epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\n// p0 = [ux0, uy0, w0]\n// p1 = [ux1, uy1, w1]\nexport default function(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000;\n\n return i;\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updateMergeRequestLocked\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestSetLockedInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestSetLocked\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"discussionLocked\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":188}};\n doc.loc.source = {\"body\":\"mutation updateMergeRequestLocked($input: MergeRequestSetLockedInput!) {\\n mergeRequestSetLocked(input: $input) {\\n mergeRequest {\\n id\\n discussionLocked\\n }\\n errors\\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[\"updateMergeRequestLocked\"] = oneQuery(doc, \"updateMergeRequestLocked\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:{ 'inline-block': !_vm.isMergeRequest },attrs:{\"data-testid\":\"sidebar-todo\"}},[(_vm.isNotificationsTodosButtons)?_c('todo-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.top\",modifiers:{\"hover\":true,\"top\":true}}],staticClass:\"hide-collapsed\",attrs:{\"title\":_vm.tootltipTitle,\"issuable-type\":_vm.issuableType,\"issuable-id\":_vm.issuableId,\"is-todo\":_vm.hasTodo,\"disabled\":_vm.isLoading,\"is-icon-button\":true},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleTodo.apply(null, arguments)}}},[_c('gl-animated-todo-icon',{class:{ '!gl-text-blue-500': _vm.hasTodo },attrs:{\"is-on\":_vm.hasTodo}})],1):_c('todo-button',{staticClass:\"hide-collapsed\",attrs:{\"issuable-type\":_vm.issuableType,\"issuable-id\":_vm.issuableId,\"is-todo\":_vm.hasTodo,\"loading\":_vm.isLoading,\"size\":_vm.isMergeRequest ? 'medium' : 'small'},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleTodo.apply(null, arguments)}}}),_vm._v(\" \"),(_vm.isClassicSidebar && !_vm.isMergeRequest)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon sidebar-collapsed-container !gl-rounded-none !gl-shadow-none\",class:{ '!gl-text-blue-500': _vm.hasTodo },attrs:{\"title\":_vm.tootltipTitle,\"category\":\"tertiary\",\"type\":\"reset\"},on:{\"click\":function($event){$event.stopPropagation();$event.preventDefault();return _vm.toggleTodo.apply(null, arguments)}}},[_c('gl-animated-todo-icon',{attrs:{\"is-on\":_vm.hasTodo}})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlTooltipDirective, GlAnimatedTodoIcon } from '@gitlab/ui';\nimport { produce } from 'immer';\nimport { createAlert } from '~/alert';\nimport { TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport Tracking from '~/tracking';\nimport { todoMutationTypes } from '../../constants';\nimport { todoQueries, todoMutations } from '../../queries/constants';\nimport { todoLabel } from '../../utils';\nimport TodoButton from './todo_button.vue';\n\nconst trackingMixin = Tracking.mixin();\n\nexport default {\n components: {\n GlButton,\n TodoButton,\n GlAnimatedTodoIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [glFeatureFlagsMixin(), trackingMixin],\n inject: {\n isClassicSidebar: {\n default: false,\n },\n },\n props: {\n issuableId: {\n type: String,\n required: true,\n },\n issuableIid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n todoId: null,\n loading: false,\n };\n },\n apollo: {\n todoId: {\n query() {\n return todoQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.issuableIid),\n };\n },\n skip() {\n return !this.issuableIid;\n },\n update(data) {\n return data.workspace?.issuable?.currentUserTodos.nodes[0]?.id;\n },\n result({ data }) {\n if (!data) {\n return;\n }\n\n const currentUserTodos = data.workspace?.issuable?.currentUserTodos?.nodes ?? [];\n this.todoId = currentUserTodos[0]?.id;\n this.$emit('todoUpdated', currentUserTodos.length > 0);\n },\n error() {\n createAlert({\n message: sprintf(__('Something went wrong while setting %{issuableType} to-do item.'), {\n issuableType: this.issuableType,\n }),\n });\n },\n subscribeToMore: {\n document() {\n return todoQueries[this.issuableType].subscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return !todoQueries[this.issuableType].subscription;\n },\n },\n },\n },\n computed: {\n isMergeRequest() {\n return this.issuableType === TYPE_MERGE_REQUEST;\n },\n todoIdQuery() {\n return todoQueries[this.issuableType].query;\n },\n todoIdQueryVariables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.issuableIid),\n };\n },\n isLoading() {\n return this.$apollo.queries?.todoId?.loading || this.loading;\n },\n hasTodo() {\n return Boolean(this.todoId);\n },\n todoMutationType() {\n if (this.hasTodo) {\n return todoMutationTypes.markDone;\n }\n return todoMutationTypes.create;\n },\n tootltipTitle() {\n return todoLabel(this.hasTodo);\n },\n isNotificationsTodosButtons() {\n return this.glFeatures.notificationsTodosButtons;\n },\n },\n methods: {\n toggleTodo() {\n this.loading = true;\n this.$apollo\n .mutate({\n mutation: todoMutations[this.todoMutationType],\n variables: {\n input: {\n targetId: !this.hasTodo ? this.issuableId : undefined,\n id: this.hasTodo ? this.todoId : undefined,\n },\n },\n update: (\n store,\n {\n data: {\n todoMutation: { todo },\n },\n },\n ) => {\n const queryProps = {\n query: this.todoIdQuery,\n variables: this.todoIdQueryVariables,\n };\n const sourceData = store.readQuery(queryProps);\n const data = produce(sourceData, (draftState) => {\n draftState.workspace.issuable.currentUserTodos.nodes = this.hasTodo ? [] : [todo];\n });\n store.writeQuery({\n data,\n ...queryProps,\n });\n },\n })\n .then(\n ({\n data: {\n todoMutation: { errors },\n },\n }) => {\n if (errors.length) {\n createAlert({\n message: errors[0],\n });\n }\n this.track('click_todo', {\n label: 'right_sidebar',\n property: this.hasTodo,\n });\n },\n )\n .catch(() => {\n createAlert({\n message: sprintf(__('Something went wrong while setting %{issuableType} to-do item.'), {\n issuableType: this.issuableType,\n }),\n });\n })\n .finally(() => {\n this.loading = false;\n });\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"sidebar-todo\" :class=\"{ 'inline-block': !isMergeRequest }\">\n <todo-button\n v-if=\"isNotificationsTodosButtons\"\n v-gl-tooltip.hover.top\n :title=\"tootltipTitle\"\n :issuable-type=\"issuableType\"\n :issuable-id=\"issuableId\"\n :is-todo=\"hasTodo\"\n :disabled=\"isLoading\"\n :is-icon-button=\"true\"\n class=\"hide-collapsed\"\n @click.stop.prevent=\"toggleTodo\"\n >\n <gl-animated-todo-icon :class=\"{ '!gl-text-blue-500': hasTodo }\" :is-on=\"hasTodo\" />\n </todo-button>\n <todo-button\n v-else\n :issuable-type=\"issuableType\"\n :issuable-id=\"issuableId\"\n :is-todo=\"hasTodo\"\n :loading=\"isLoading\"\n :size=\"isMergeRequest ? 'medium' : 'small'\"\n class=\"hide-collapsed\"\n @click.stop.prevent=\"toggleTodo\"\n />\n <gl-button\n v-if=\"isClassicSidebar && !isMergeRequest\"\n v-gl-tooltip.left.viewport\n :title=\"tootltipTitle\"\n category=\"tertiary\"\n type=\"reset\"\n class=\"sidebar-collapsed-icon sidebar-collapsed-container !gl-rounded-none !gl-shadow-none\"\n :class=\"{ '!gl-text-blue-500': hasTodo }\"\n @click.stop.prevent=\"toggleTodo\"\n >\n <gl-animated-todo-icon :is-on=\"hasTodo\" />\n </gl-button>\n </div>\n</template>\n","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!./sidebar_todo_widget.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!./sidebar_todo_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_todo_widget.vue?vue&type=template&id=0ce572ce\"\nimport script from \"./sidebar_todo_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_todo_widget.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 { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_TEXT } from '../../constants/components';\nimport { PROP_TYPE_STRING, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../constants/props';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'p'),\n textClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_TEXT);\n\n// --- Main component ---\n\n// @vue/component\nconst BDropdownText = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_TEXT,\n functional: true,\n props,\n render(h, _ref) {\n let {\n props,\n data,\n children\n } = _ref;\n const {\n tag,\n textClass,\n variant\n } = props;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'b-dropdown-text',\n class: [textClass, {\n [`text-${variant}`]: variant\n }],\n props,\n attrs: data.attrs || {},\n ref: 'text'\n }, children)]);\n }\n});\n\nexport { BDropdownText, props };\n","import { BDropdownText } from '../../../vendor/bootstrap-vue/src/components/dropdown/dropdown-text';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlDropdownText',\n components: {\n BDropdownText\n },\n inheritAttrs: false\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-dropdown-text',_vm._g(_vm._b({staticClass:\"gl-dropdown-text\"},'b-dropdown-text',_vm.$attrs,false),_vm.$listeners),[_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","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"sharedData\"},\"variableDefinitions\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sharedData\"},\"arguments\":[],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"client\"},\"arguments\":[]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"showDiscardChangesModal\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"formTouched\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"history\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"profileType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cachedPayload\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"profileType\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"resetAndClose\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":214}};\n doc.loc.source = {\"body\":\"query sharedData {\\n sharedData @client {\\n showDiscardChangesModal\\n formTouched\\n history {\\n profileType\\n mode\\n }\\n cachedPayload {\\n profileType\\n mode\\n }\\n resetAndClose\\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[\"sharedData\"] = oneQuery(doc, \"sharedData\");\n \n","import { STATUS_ALL, STATUS_CLOSED, STATUS_OPEN, STATUS_MERGED } from '~/issues/constants';\nimport { __ } from '~/locale';\n\nexport const issuableListTabs = [\n {\n id: 'state-opened',\n name: STATUS_OPEN,\n title: __('Open'),\n titleTooltip: __('Filter by issues that are currently opened.'),\n },\n {\n id: 'state-closed',\n name: STATUS_CLOSED,\n title: __('Closed'),\n titleTooltip: __('Filter by issues that are currently closed.'),\n },\n {\n id: 'state-all',\n name: STATUS_ALL,\n title: __('All'),\n titleTooltip: __('Show all issues.'),\n },\n];\n\nexport const mergeRequestListTabs = [\n {\n id: 'state-opened',\n name: STATUS_OPEN,\n title: __('Open'),\n titleTooltip: __('Filter by merge requests that are currently opened.'),\n },\n {\n id: 'state-merged',\n name: STATUS_MERGED,\n title: __('Merged'),\n titleTooltip: __('Filter by merge requests that are merged.'),\n },\n {\n id: 'state-closed',\n name: STATUS_CLOSED,\n title: __('Closed'),\n titleTooltip: __('Filter by merge requests that are currently closed.'),\n },\n {\n id: 'state-all',\n name: STATUS_ALL,\n title: __('All'),\n titleTooltip: __('Show all merge requests.'),\n },\n];\n\nexport const availableSortOptions = [\n {\n id: 1,\n title: __('Created date'),\n sortDirection: {\n descending: 'created_desc',\n ascending: 'created_asc',\n },\n },\n {\n id: 2,\n title: __('Updated date'),\n sortDirection: {\n descending: 'updated_desc',\n ascending: 'updated_asc',\n },\n },\n];\n\nexport const DEFAULT_PAGE_SIZE = 20;\n\nexport const DEFAULT_SKELETON_COUNT = 5;\n\nexport const PAGE_SIZE_STORAGE_KEY = 'issuable_list_page_size';\n","import { closest, getAttr, getById, select, matches } from '../../../utils/dom';\nimport { EVENT_FILTER } from './constants';\n\nconst TABLE_TAG_NAMES = ['TD', 'TH', 'TR'];\n\n// Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\nconst filterEvent = event => {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n /* istanbul ignore next */\n return false;\n }\n const el = event.target;\n // Exit early when element is disabled or a table element\n if (el.disabled || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false;\n }\n // Ignore the click when it was inside a dropdown menu\n if (closest('.dropdown-menu', el)) {\n return true;\n }\n const label = el.tagName === 'LABEL' ? el : closest('label', el);\n // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n if (label) {\n const labelFor = getAttr(label, 'for');\n const input = labelFor ? getById(labelFor) : select('input, select, textarea', label);\n if (input && !input.disabled) {\n return true;\n }\n }\n // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n return matches(el, EVENT_FILTER);\n};\n\nexport { filterEvent };\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"\\n/* TODO: Use max-height prop when gitlab-ui got updated.\\nSee https://gitlab.com/gitlab-org/gitlab-ui/-/issues/2374 */\\n[data-v-5fa5a073] .gl-new-dropdown-inner {\\n max-height: 310px;\\n}\\n\", \"\"]);\n\n","import {min} from \"d3-array\";\n\nfunction targetDepth(d) {\n return d.target.depth;\n}\n\nexport function left(node) {\n return node.depth;\n}\n\nexport function right(node, n) {\n return n - 1 - node.height;\n}\n\nexport function justify(node, n) {\n return node.sourceLinks.length ? node.depth : n - 1;\n}\n\nexport function center(node) {\n return node.targetLinks.length ? node.depth\n : node.sourceLinks.length ? min(node.sourceLinks, targetDepth) - 1\n : 0;\n}\n","export default function constant(x) {\n return function() {\n return x;\n };\n}\n","import {max, min, sum} from \"d3-array\";\nimport {justify} from \"./align.js\";\nimport constant from \"./constant.js\";\n\nfunction ascendingSourceBreadth(a, b) {\n return ascendingBreadth(a.source, b.source) || a.index - b.index;\n}\n\nfunction ascendingTargetBreadth(a, b) {\n return ascendingBreadth(a.target, b.target) || a.index - b.index;\n}\n\nfunction ascendingBreadth(a, b) {\n return a.y0 - b.y0;\n}\n\nfunction value(d) {\n return d.value;\n}\n\nfunction defaultId(d) {\n return d.index;\n}\n\nfunction defaultNodes(graph) {\n return graph.nodes;\n}\n\nfunction defaultLinks(graph) {\n return graph.links;\n}\n\nfunction find(nodeById, id) {\n const node = nodeById.get(id);\n if (!node) throw new Error(\"missing: \" + id);\n return node;\n}\n\nfunction computeLinkBreadths({nodes}) {\n for (const node of nodes) {\n let y0 = node.y0;\n let y1 = y0;\n for (const link of node.sourceLinks) {\n link.y0 = y0 + link.width / 2;\n y0 += link.width;\n }\n for (const link of node.targetLinks) {\n link.y1 = y1 + link.width / 2;\n y1 += link.width;\n }\n }\n}\n\nexport default function Sankey() {\n let x0 = 0, y0 = 0, x1 = 1, y1 = 1; // extent\n let dx = 24; // nodeWidth\n let dy = 8, py; // nodePadding\n let id = defaultId;\n let align = justify;\n let sort;\n let linkSort;\n let nodes = defaultNodes;\n let links = defaultLinks;\n let iterations = 6;\n\n function sankey() {\n const graph = {nodes: nodes.apply(null, arguments), links: links.apply(null, arguments)};\n computeNodeLinks(graph);\n computeNodeValues(graph);\n computeNodeDepths(graph);\n computeNodeHeights(graph);\n computeNodeBreadths(graph);\n computeLinkBreadths(graph);\n return graph;\n }\n\n sankey.update = function(graph) {\n computeLinkBreadths(graph);\n return graph;\n };\n\n sankey.nodeId = function(_) {\n return arguments.length ? (id = typeof _ === \"function\" ? _ : constant(_), sankey) : id;\n };\n\n sankey.nodeAlign = function(_) {\n return arguments.length ? (align = typeof _ === \"function\" ? _ : constant(_), sankey) : align;\n };\n\n sankey.nodeSort = function(_) {\n return arguments.length ? (sort = _, sankey) : sort;\n };\n\n sankey.nodeWidth = function(_) {\n return arguments.length ? (dx = +_, sankey) : dx;\n };\n\n sankey.nodePadding = function(_) {\n return arguments.length ? (dy = py = +_, sankey) : dy;\n };\n\n sankey.nodes = function(_) {\n return arguments.length ? (nodes = typeof _ === \"function\" ? _ : constant(_), sankey) : nodes;\n };\n\n sankey.links = function(_) {\n return arguments.length ? (links = typeof _ === \"function\" ? _ : constant(_), sankey) : links;\n };\n\n sankey.linkSort = function(_) {\n return arguments.length ? (linkSort = _, sankey) : linkSort;\n };\n\n sankey.size = function(_) {\n return arguments.length ? (x0 = y0 = 0, x1 = +_[0], y1 = +_[1], sankey) : [x1 - x0, y1 - y0];\n };\n\n sankey.extent = function(_) {\n return arguments.length ? (x0 = +_[0][0], x1 = +_[1][0], y0 = +_[0][1], y1 = +_[1][1], sankey) : [[x0, y0], [x1, y1]];\n };\n\n sankey.iterations = function(_) {\n return arguments.length ? (iterations = +_, sankey) : iterations;\n };\n\n function computeNodeLinks({nodes, links}) {\n for (const [i, node] of nodes.entries()) {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n }\n const nodeById = new Map(nodes.map((d, i) => [id(d, i, nodes), d]));\n for (const [i, link] of links.entries()) {\n link.index = i;\n let {source, target} = link;\n if (typeof source !== \"object\") source = link.source = find(nodeById, source);\n if (typeof target !== \"object\") target = link.target = find(nodeById, target);\n source.sourceLinks.push(link);\n target.targetLinks.push(link);\n }\n if (linkSort != null) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(linkSort);\n targetLinks.sort(linkSort);\n }\n }\n }\n\n function computeNodeValues({nodes}) {\n for (const node of nodes) {\n node.value = node.fixedValue === undefined\n ? Math.max(sum(node.sourceLinks, value), sum(node.targetLinks, value))\n : node.fixedValue;\n }\n }\n\n function computeNodeDepths({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.depth = x;\n for (const {target} of node.sourceLinks) {\n next.add(target);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeHeights({nodes}) {\n const n = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let x = 0;\n while (current.size) {\n for (const node of current) {\n node.height = x;\n for (const {source} of node.targetLinks) {\n next.add(source);\n }\n }\n if (++x > n) throw new Error(\"circular link\");\n current = next;\n next = new Set;\n }\n }\n\n function computeNodeLayers({nodes}) {\n const x = max(nodes, d => d.depth) + 1;\n const kx = (x1 - x0 - dx) / (x - 1);\n const columns = new Array(x);\n for (const node of nodes) {\n const i = Math.max(0, Math.min(x - 1, Math.floor(align.call(null, node, x))));\n node.layer = i;\n node.x0 = x0 + i * kx;\n node.x1 = node.x0 + dx;\n if (columns[i]) columns[i].push(node);\n else columns[i] = [node];\n }\n if (sort) for (const column of columns) {\n column.sort(sort);\n }\n return columns;\n }\n\n function initializeNodeBreadths(columns) {\n const ky = min(columns, c => (y1 - y0 - (c.length - 1) * py) / sum(c, value));\n for (const nodes of columns) {\n let y = y0;\n for (const node of nodes) {\n node.y0 = y;\n node.y1 = y + node.value * ky;\n y = node.y1 + py;\n for (const link of node.sourceLinks) {\n link.width = link.value * ky;\n }\n }\n y = (y1 - y + py) / (nodes.length + 1);\n for (let i = 0; i < nodes.length; ++i) {\n const node = nodes[i];\n node.y0 += y * (i + 1);\n node.y1 += y * (i + 1);\n }\n reorderLinks(nodes);\n }\n }\n\n function computeNodeBreadths(graph) {\n const columns = computeNodeLayers(graph);\n py = Math.min(dy, (y1 - y0) / (max(columns, c => c.length) - 1));\n initializeNodeBreadths(columns);\n for (let i = 0; i < iterations; ++i) {\n const alpha = Math.pow(0.99, i);\n const beta = Math.max(1 - alpha, (i + 1) / iterations);\n relaxRightToLeft(columns, alpha, beta);\n relaxLeftToRight(columns, alpha, beta);\n }\n }\n\n // Reposition each node based on its incoming (target) links.\n function relaxLeftToRight(columns, alpha, beta) {\n for (let i = 1, n = columns.length; i < n; ++i) {\n const column = columns[i];\n for (const target of column) {\n let y = 0;\n let w = 0;\n for (const {source, value} of target.targetLinks) {\n let v = value * (target.layer - source.layer);\n y += targetTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - target.y0) * alpha;\n target.y0 += dy;\n target.y1 += dy;\n reorderNodeLinks(target);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n // Reposition each node based on its outgoing (source) links.\n function relaxRightToLeft(columns, alpha, beta) {\n for (let n = columns.length, i = n - 2; i >= 0; --i) {\n const column = columns[i];\n for (const source of column) {\n let y = 0;\n let w = 0;\n for (const {target, value} of source.sourceLinks) {\n let v = value * (target.layer - source.layer);\n y += sourceTop(source, target) * v;\n w += v;\n }\n if (!(w > 0)) continue;\n let dy = (y / w - source.y0) * alpha;\n source.y0 += dy;\n source.y1 += dy;\n reorderNodeLinks(source);\n }\n if (sort === undefined) column.sort(ascendingBreadth);\n resolveCollisions(column, beta);\n }\n }\n\n function resolveCollisions(nodes, alpha) {\n const i = nodes.length >> 1;\n const subject = nodes[i];\n resolveCollisionsBottomToTop(nodes, subject.y0 - py, i - 1, alpha);\n resolveCollisionsTopToBottom(nodes, subject.y1 + py, i + 1, alpha);\n resolveCollisionsBottomToTop(nodes, y1, nodes.length - 1, alpha);\n resolveCollisionsTopToBottom(nodes, y0, 0, alpha);\n }\n\n // Push any overlapping nodes down.\n function resolveCollisionsTopToBottom(nodes, y, i, alpha) {\n for (; i < nodes.length; ++i) {\n const node = nodes[i];\n const dy = (y - node.y0) * alpha;\n if (dy > 1e-6) node.y0 += dy, node.y1 += dy;\n y = node.y1 + py;\n }\n }\n\n // Push any overlapping nodes up.\n function resolveCollisionsBottomToTop(nodes, y, i, alpha) {\n for (; i >= 0; --i) {\n const node = nodes[i];\n const dy = (node.y1 - y) * alpha;\n if (dy > 1e-6) node.y0 -= dy, node.y1 -= dy;\n y = node.y0 - py;\n }\n }\n\n function reorderNodeLinks({sourceLinks, targetLinks}) {\n if (linkSort === undefined) {\n for (const {source: {sourceLinks}} of targetLinks) {\n sourceLinks.sort(ascendingTargetBreadth);\n }\n for (const {target: {targetLinks}} of sourceLinks) {\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n function reorderLinks(nodes) {\n if (linkSort === undefined) {\n for (const {sourceLinks, targetLinks} of nodes) {\n sourceLinks.sort(ascendingTargetBreadth);\n targetLinks.sort(ascendingSourceBreadth);\n }\n }\n }\n\n // Returns the target.y0 that would produce an ideal link from source to target.\n function targetTop(source, target) {\n let y = source.y0 - (source.sourceLinks.length - 1) * py / 2;\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y += width + py;\n }\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y -= width;\n }\n return y;\n }\n\n // Returns the source.y0 that would produce an ideal link from source to target.\n function sourceTop(source, target) {\n let y = target.y0 - (target.targetLinks.length - 1) * py / 2;\n for (const {source: node, width} of target.targetLinks) {\n if (node === source) break;\n y += width + py;\n }\n for (const {target: node, width} of source.sourceLinks) {\n if (node === target) break;\n y -= width;\n }\n return y;\n }\n\n return sankey;\n}\n","export var slice = Array.prototype.slice;\n","export default function(x) {\n return function constant() {\n return x;\n };\n}\n","export function x(p) {\n return p[0];\n}\n\nexport function y(p) {\n return p[1];\n}\n","import {path} from \"d3-path\";\nimport {slice} from \"../array.js\";\nimport constant from \"../constant.js\";\nimport {x as pointX, y as pointY} from \"../point.js\";\nimport pointRadial from \"../pointRadial.js\";\n\nfunction linkSource(d) {\n return d.source;\n}\n\nfunction linkTarget(d) {\n return d.target;\n}\n\nfunction link(curve) {\n var source = linkSource,\n target = linkTarget,\n x = pointX,\n y = pointY,\n context = null;\n\n function link() {\n var buffer, argv = slice.call(arguments), s = source.apply(this, argv), t = target.apply(this, argv);\n if (!context) context = buffer = path();\n curve(context, +x.apply(this, (argv[0] = s, argv)), +y.apply(this, argv), +x.apply(this, (argv[0] = t, argv)), +y.apply(this, argv));\n if (buffer) return context = null, buffer + \"\" || null;\n }\n\n link.source = function(_) {\n return arguments.length ? (source = _, link) : source;\n };\n\n link.target = function(_) {\n return arguments.length ? (target = _, link) : target;\n };\n\n link.x = function(_) {\n return arguments.length ? (x = typeof _ === \"function\" ? _ : constant(+_), link) : x;\n };\n\n link.y = function(_) {\n return arguments.length ? (y = typeof _ === \"function\" ? _ : constant(+_), link) : y;\n };\n\n link.context = function(_) {\n return arguments.length ? ((context = _ == null ? null : _), link) : context;\n };\n\n return link;\n}\n\nfunction curveHorizontal(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0 = (x0 + x1) / 2, y0, x0, y1, x1, y1);\n}\n\nfunction curveVertical(context, x0, y0, x1, y1) {\n context.moveTo(x0, y0);\n context.bezierCurveTo(x0, y0 = (y0 + y1) / 2, x1, y0, x1, y1);\n}\n\nfunction curveRadial(context, x0, y0, x1, y1) {\n var p0 = pointRadial(x0, y0),\n p1 = pointRadial(x0, y0 = (y0 + y1) / 2),\n p2 = pointRadial(x1, y0),\n p3 = pointRadial(x1, y1);\n context.moveTo(p0[0], p0[1]);\n context.bezierCurveTo(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\nexport function linkHorizontal() {\n return link(curveHorizontal);\n}\n\nexport function linkVertical() {\n return link(curveVertical);\n}\n\nexport function linkRadial() {\n var l = link(curveRadial);\n l.angle = l.x, delete l.x;\n l.radius = l.y, delete l.y;\n return l;\n}\n","import {linkHorizontal} from \"d3-shape\";\n\nfunction horizontalSource(d) {\n return [d.source.x1, d.y0];\n}\n\nfunction horizontalTarget(d) {\n return [d.target.x0, d.y1];\n}\n\nexport default function() {\n return linkHorizontal()\n .source(horizontalSource)\n .target(horizontalTarget);\n}\n","import Vue from 'vue';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport CommitFormModal from './components/form_modal.vue';\nimport {\n I18N_MODAL,\n I18N_REVERT_MODAL,\n PREPENDED_MODAL_TEXT,\n OPEN_REVERT_MODAL,\n REVERT_MODAL_ID,\n} from './constants';\nimport createStore from './store';\n\nexport default function initInviteMembersModal(primaryActionEventName) {\n const el = document.querySelector('.js-revert-commit-modal');\n if (!el) {\n return false;\n }\n\n const {\n title,\n endpoint,\n branch,\n pushCode,\n branchCollaboration,\n existingBranch,\n branchesEndpoint,\n } = el.dataset;\n\n const store = createStore({\n endpoint,\n branchesEndpoint,\n branch,\n pushCode: parseBoolean(pushCode),\n branchCollaboration: parseBoolean(branchCollaboration),\n defaultBranch: branch,\n modalTitle: title,\n existingBranch,\n });\n\n return new Vue({\n el,\n store,\n provide: {\n prependedText: PREPENDED_MODAL_TEXT,\n },\n render: (createElement) =>\n createElement(CommitFormModal, {\n props: {\n i18n: { ...I18N_REVERT_MODAL, ...I18N_MODAL },\n openModal: OPEN_REVERT_MODAL,\n modalId: REVERT_MODAL_ID,\n primaryActionEventName,\n },\n }),\n });\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"moveIssue\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"moveIssueInput\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueMoveInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issueMove\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"moveIssueInput\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":150}};\n doc.loc.source = {\"body\":\"mutation moveIssue($moveIssueInput: IssueMoveInput!) {\\n issueMove(input: $moveIssueInput) {\\n issue {\\n id\\n webUrl\\n }\\n errors\\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[\"moveIssue\"] = oneQuery(doc, \"moveIssue\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-badge',{staticClass:\"gl-shrink-0\",attrs:{\"variant\":_vm.badgeProperties.variant,\"icon\":_vm.badgeProperties.icon,\"aria-label\":_vm.badgeProperties.text}},[_vm._v(\"\\n \"+_vm._s(_vm.badgeProperties.text)+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlBadge } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport {\n STATUS_CLOSED,\n STATUS_LOCKED,\n STATUS_MERGED,\n STATUS_OPEN,\n TYPE_EPIC,\n TYPE_ISSUE,\n TYPE_MERGE_REQUEST,\n} from '~/issues/constants';\n\nconst badgePropertiesMap = {\n [TYPE_EPIC]: {\n [STATUS_OPEN]: {\n icon: 'issue-open-m',\n text: __('Open'),\n variant: 'success',\n },\n [STATUS_CLOSED]: {\n icon: 'issue-close',\n text: __('Closed'),\n variant: 'info',\n },\n },\n [TYPE_ISSUE]: {\n [STATUS_OPEN]: {\n icon: 'issue-open-m',\n text: __('Open'),\n variant: 'success',\n },\n [STATUS_CLOSED]: {\n icon: 'issue-close',\n text: __('Closed'),\n variant: 'info',\n },\n [STATUS_LOCKED]: {\n icon: 'issue-open-m',\n text: __('Open'),\n variant: 'success',\n },\n },\n [TYPE_MERGE_REQUEST]: {\n [STATUS_OPEN]: {\n icon: 'merge-request',\n text: __('Open'),\n variant: 'success',\n },\n [STATUS_CLOSED]: {\n icon: 'merge-request-close',\n text: __('Closed'),\n variant: 'danger',\n },\n [STATUS_MERGED]: {\n icon: 'merge',\n text: __('Merged'),\n variant: 'info',\n },\n [STATUS_LOCKED]: {\n icon: 'merge-request',\n text: __('Open'),\n variant: 'success',\n },\n },\n};\n\nexport default {\n components: {\n GlBadge,\n },\n props: {\n issuableType: {\n type: String,\n required: false,\n default: '',\n },\n state: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n badgeProperties() {\n return badgePropertiesMap[this.issuableType][this.state];\n },\n },\n};\n</script>\n\n<template>\n <gl-badge\n :variant=\"badgeProperties.variant\"\n :icon=\"badgeProperties.icon\"\n :aria-label=\"badgeProperties.text\"\n class=\"gl-shrink-0\"\n >\n {{ badgeProperties.text }}\n </gl-badge>\n</template>\n","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!./status_badge.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!./status_badge.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./status_badge.vue?vue&type=template&id=7240f6d0\"\nimport script from \"./status_badge.vue?vue&type=script&lang=js\"\nexport * from \"./status_badge.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 { NAME_MODAL } from '../../constants/components';\nimport { EVENT_NAME_SHOW, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../constants/key-codes';\nimport { matches, select, hasAttr, setAttr, getAttr, isDisabled } from '../../utils/dom';\nimport { getRootActionEventName, eventOff, eventOn } from '../../utils/events';\nimport { isString } from '../../utils/inspect';\nimport { keys } from '../../utils/object';\nimport { getEventRoot } from '../../utils/get-event-root';\nimport { getInstanceFromDirective } from '../../utils/get-instance-from-directive';\n\n// Emitted show event for modal\nconst ROOT_ACTION_EVENT_NAME_SHOW = getRootActionEventName(NAME_MODAL, EVENT_NAME_SHOW);\n\n// Prop name we use to store info on root element\nconst PROPERTY = '__bv_modal_directive__';\nconst getTarget = _ref => {\n let {\n modifiers = {},\n arg,\n value\n } = _ref;\n // Try value, then arg, otherwise pick last modifier\n return isString(value) ? value : isString(arg) ? arg : keys(modifiers).reverse()[0];\n};\nconst getTriggerElement = el => {\n // If root element is a dropdown-item or nav-item, we\n // need to target the inner link or button instead\n return el && matches(el, '.dropdown-menu > li, li.nav-item') ? select('a, button', el) || el : el;\n};\nconst setRole = trigger => {\n // Ensure accessibility on non button elements\n if (trigger && trigger.tagName !== 'BUTTON') {\n // Only set a role if the trigger element doesn't have one\n if (!hasAttr(trigger, 'role')) {\n setAttr(trigger, 'role', 'button');\n }\n // Add a tabindex is not a button or link, and tabindex is not provided\n if (trigger.tagName !== 'A' && !hasAttr(trigger, 'tabindex')) {\n setAttr(trigger, 'tabindex', '0');\n }\n }\n};\nconst bind = (el, binding, vnode) => {\n const target = getTarget(binding);\n const trigger = getTriggerElement(el);\n if (target && trigger) {\n const handler = event => {\n // `currentTarget` is the element with the listener on it\n const currentTarget = event.currentTarget;\n if (!isDisabled(currentTarget)) {\n const type = event.type;\n const key = event.keyCode;\n // Open modal only if trigger is not disabled\n if (type === 'click' || type === 'keydown' && (key === CODE_ENTER || key === CODE_SPACE)) {\n getEventRoot(getInstanceFromDirective(vnode, binding)).$emit(ROOT_ACTION_EVENT_NAME_SHOW, target, currentTarget);\n }\n }\n };\n el[PROPERTY] = {\n handler,\n target,\n trigger\n };\n // If element is not a button, we add `role=\"button\"` for accessibility\n setRole(trigger);\n // Listen for click events\n eventOn(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n if (trigger.tagName !== 'BUTTON' && getAttr(trigger, 'role') === 'button') {\n // If trigger isn't a button but has role button,\n // we also listen for `keydown.space` && `keydown.enter`\n eventOn(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n }\n};\nconst unbind = el => {\n const oldProp = el[PROPERTY] || {};\n const trigger = oldProp.trigger;\n const handler = oldProp.handler;\n if (trigger && handler) {\n eventOff(trigger, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(trigger, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'click', handler, EVENT_OPTIONS_PASSIVE);\n eventOff(el, 'keydown', handler, EVENT_OPTIONS_PASSIVE);\n }\n delete el[PROPERTY];\n};\nconst componentUpdated = (el, binding, vnode) => {\n const oldProp = el[PROPERTY] || {};\n const target = getTarget(binding);\n const trigger = getTriggerElement(el);\n if (target !== oldProp.target || trigger !== oldProp.trigger) {\n // We bind and rebind if the target or trigger changes\n unbind(el);\n bind(el, binding, vnode);\n }\n // If trigger element is not a button, ensure `role=\"button\"`\n // is still set for accessibility\n setRole(trigger);\n};\nconst updated = () => {};\n\n/*\n * Export our directive\n */\nconst VBModal = {\n inserted: componentUpdated,\n updated,\n componentUpdated,\n unbind\n};\n\nexport { VBModal };\n","(function(h,C){typeof exports==\"object\"&&typeof module!=\"undefined\"?C(exports):typeof define==\"function\"&&define.amd?define([\"exports\"],C):(h=typeof globalThis!=\"undefined\"?globalThis:h||self,C(h.modernScreenshot={}))})(this,function(h){var Ue;\"use strict\";var Qt=Object.defineProperty,Zt=Object.defineProperties;var er=Object.getOwnPropertyDescriptors;var Z=Object.getOwnPropertySymbols;var Le=Object.prototype.hasOwnProperty,Me=Object.prototype.propertyIsEnumerable;var Oe=Math.pow,Be=(h,C,T)=>C in h?Qt(h,C,{enumerable:!0,configurable:!0,writable:!0,value:T}):h[C]=T,D=(h,C)=>{for(var T in C||(C={}))Le.call(C,T)&&Be(h,T,C[T]);if(Z)for(var T of Z(C))Me.call(C,T)&&Be(h,T,C[T]);return h},L=(h,C)=>Zt(h,er(C));var We=(h,C)=>{var T={};for(var N in h)Le.call(h,N)&&C.indexOf(N)<0&&(T[N]=h[N]);if(h!=null&&Z)for(var N of Z(h))C.indexOf(N)<0&&Me.call(h,N)&&(T[N]=h[N]);return T};var E=(h,C,T)=>new Promise((N,M)=>{var z=R=>{try{W(T.next(R))}catch(j){M(j)}},O=R=>{try{W(T.throw(R))}catch(j){M(j)}},W=R=>R.done?N(R.value):Promise.resolve(R.value).then(z,O);W((T=T.apply(h,C)).next())});function C(e,t){return e[13]=1,e[14]=t>>8,e[15]=t&255,e[16]=t>>8,e[17]=t&255,e}const T=\"p\".charCodeAt(0),N=\"H\".charCodeAt(0),M=\"Y\".charCodeAt(0),z=\"s\".charCodeAt(0);let O;function W(){const e=new Int32Array(256);for(let t=0;t<256;t++){let r=t;for(let n=0;n<8;n++)r=r&1?3988292384^r>>>1:r>>>1;e[t]=r}return e}function R(e){let t=-1;O||(O=W());for(let r=0;r<e.length;r++)t=O[(t^e[r])&255]^t>>>8;return t^-1}function j(e){const t=e.length-1;for(let r=t;r>=4;r--)if(e[r-4]===9&&e[r-3]===T&&e[r-2]===N&&e[r-1]===M&&e[r]===z)return r-3;return 0}function ae(e,t,r=!1){const n=new Uint8Array(13);t*=39.3701,n[0]=T,n[1]=N,n[2]=M,n[3]=z,n[4]=t>>>24,n[5]=t>>>16,n[6]=t>>>8,n[7]=t&255,n[8]=n[4],n[9]=n[5],n[10]=n[6],n[11]=n[7],n[12]=1;const a=R(n),s=new Uint8Array(4);if(s[0]=a>>>24,s[1]=a>>>16,s[2]=a>>>8,s[3]=a&255,r){const o=j(e);return e.set(n,o),e.set(s,o+13),e}else{const o=new Uint8Array(4);o[0]=0,o[1]=0,o[2]=0,o[3]=9;const i=new Uint8Array(54);return i.set(e,0),i.set(o,33),i.set(n,37),i.set(s,50),i}}const je=\"AAlwSFlz\",qe=\"AAAJcEhZ\",Ve=\"AAAACXBI\";function He(e){let t=e.indexOf(je);return t===-1&&(t=e.indexOf(qe)),t===-1&&(t=e.indexOf(Ve)),t}const ee=\"[modern-screenshot]\",F=typeof window!=\"undefined\",ze=F&&\"Worker\"in window,se=F&&\"atob\"in window,Xe=F&&\"btoa\"in window,te=F?(Ue=window.navigator)==null?void 0:Ue.userAgent:\"\",ie=te.includes(\"Chrome\"),X=te.includes(\"AppleWebKit\")&&!ie,re=te.includes(\"Firefox\"),Ge=e=>e&&\"__CONTEXT__\"in e,Ye=e=>e.constructor.name===\"CSSFontFaceRule\",Je=e=>e.constructor.name===\"CSSImportRule\",k=e=>e.nodeType===1,q=e=>typeof e.className==\"object\",ce=e=>e.tagName===\"image\",Ke=e=>e.tagName===\"use\",V=e=>k(e)&&typeof e.style!=\"undefined\"&&!q(e),Qe=e=>e.nodeType===8,Ze=e=>e.nodeType===3,_=e=>e.tagName===\"IMG\",G=e=>e.tagName===\"VIDEO\",et=e=>e.tagName===\"CANVAS\",le=e=>e.tagName===\"TEXTAREA\",tt=e=>e.tagName===\"INPUT\",rt=e=>e.tagName===\"STYLE\",nt=e=>e.tagName===\"SCRIPT\",ot=e=>e.tagName===\"SELECT\",at=e=>e.tagName===\"SLOT\",st=e=>e.tagName===\"IFRAME\",A=(...e)=>console.warn(ee,...e),it=e=>console.time(`${ee} ${e}`),ct=e=>console.timeEnd(`${ee} ${e}`),lt=e=>{var r;const t=(r=e==null?void 0:e.createElement)==null?void 0:r.call(e,\"canvas\");return t&&(t.height=t.width=1),t&&\"toDataURL\"in t&&Boolean(t.toDataURL(\"image/webp\").includes(\"image/webp\"))},ne=e=>e.startsWith(\"data:\");function ue(e,t){if(e.match(/^[a-z]+:\\/\\//i))return e;if(F&&e.match(/^\\/\\//))return window.location.protocol+e;if(e.match(/^[a-z]+:/i)||!F)return e;const r=Y().implementation.createHTMLDocument(),n=r.createElement(\"base\"),a=r.createElement(\"a\");return r.head.appendChild(n),r.body.appendChild(a),t&&(n.href=t),a.href=e,a.href}function Y(e){var t;return(t=e&&k(e)?e==null?void 0:e.ownerDocument:e)!=null?t:window.document}const J=\"http://www.w3.org/2000/svg\";function fe(e,t,r){const n=Y(r).createElementNS(J,\"svg\");return n.setAttributeNS(null,\"width\",e.toString()),n.setAttributeNS(null,\"height\",t.toString()),n.setAttributeNS(null,\"viewBox\",`0 0 ${e} ${t}`),n}function de(e,t){let r=new XMLSerializer().serializeToString(e);return t&&(r=r.replace(/[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F\\uD800-\\uDFFF\\uFFFE\\uFFFF]/ug,\"\")),`data:image/svg+xml;charset=utf-8,${encodeURIComponent(r)}`}function ut(e,t=\"image/png\",r=1){return E(this,null,function*(){try{return yield new Promise((n,a)=>{e.toBlob(s=>{s?n(s):a(new Error(\"Blob is null\"))},t,r)})}catch(n){if(se)return A(\"Failed canvas to blob\",{type:t,quality:r},n),ft(e.toDataURL(t,r));throw n}})}function ft(e){var i,l;const[t,r]=e.split(\",\"),n=(l=(i=t.match(/data:(.+);/))==null?void 0:i[1])!=null?l:void 0,a=window.atob(r),s=a.length,o=new Uint8Array(s);for(let u=0;u<s;u+=1)o[u]=a.charCodeAt(u);return new Blob([o],{type:n})}function me(e,t){return new Promise((r,n)=>{const a=new FileReader;a.onload=()=>r(a.result),a.onerror=()=>n(a.error),a.onabort=()=>n(new Error(`Failed read blob to ${t}`)),t===\"dataUrl\"?a.readAsDataURL(e):t===\"arrayBuffer\"&&a.readAsArrayBuffer(e)})}const dt=e=>me(e,\"dataUrl\"),mt=e=>me(e,\"arrayBuffer\");function U(e,t){const r=Y(t).createElement(\"img\");return r.decoding=\"sync\",r.loading=\"eager\",r.src=e,r}function $(e,t){return new Promise(r=>{const{timeout:n,ownerDocument:a,onError:s}=t!=null?t:{},o=typeof e==\"string\"?U(e,Y(a)):e;let i=null,l=null;function u(){r(o),i&&clearTimeout(i),l==null||l()}if(n&&(i=setTimeout(u,n)),G(o)){const c=o.currentSrc||o.src;if(!c)return o.poster?$(o.poster,t).then(r):u();if(o.readyState>=2)return u();const f=u,d=m=>{A(\"Failed video load\",c,m),s==null||s(m),u()};l=()=>{o.removeEventListener(\"loadeddata\",f),o.removeEventListener(\"error\",d)},o.addEventListener(\"loadeddata\",f,{once:!0}),o.addEventListener(\"error\",d,{once:!0})}else{const c=ce(o)?o.href.baseVal:o.currentSrc||o.src;if(!c)return u();const f=()=>E(this,null,function*(){if(_(o)&&\"decode\"in o)try{yield o.decode()}catch(m){A(\"Failed to decode image, trying to render anyway\",o.dataset.originalSrc||c,m)}u()}),d=m=>{A(\"Failed image load\",o.dataset.originalSrc||c,m),u()};if(_(o)&&o.complete)return f();l=()=>{o.removeEventListener(\"load\",f),o.removeEventListener(\"error\",d)},o.addEventListener(\"load\",f,{once:!0}),o.addEventListener(\"error\",d,{once:!0})}})}function ge(e,t){return E(this,null,function*(){V(e)&&(_(e)||G(e)?yield $(e,{timeout:t}):yield Promise.all([\"img\",\"video\"].flatMap(r=>Array.from(e.querySelectorAll(r)).map(n=>$(n,{timeout:t})))))})}const he=function(){let t=0;const r=()=>`0000${(Math.random()*Oe(36,4)<<0).toString(36)}`.slice(-4);return()=>(t+=1,`u${r()}${t}`)}();function we(e){return e==null?void 0:e.split(\",\").map(t=>t.trim().replace(/\"|'/g,\"\").toLowerCase()).filter(Boolean)}function gt(e){return{time:t=>e&&it(t),timeEnd:t=>e&&ct(t),warn:(...t)=>e&&A(...t)}}function ht(e){return{cache:e?\"no-cache\":\"force-cache\"}}function x(e,t){return E(this,null,function*(){return Ge(e)?e:pe(e,L(D({},t),{autoDestruct:!0}))})}function pe(e,t){return E(this,null,function*(){var m,w,p,b,g;const{scale:r=1,workerUrl:n,workerNumber:a=1}=t||{},s=Boolean(t==null?void 0:t.debug),o=(m=t==null?void 0:t.features)!=null?m:!0,i=(w=e.ownerDocument)!=null?w:F?window.document:void 0,l=(b=(p=e.ownerDocument)==null?void 0:p.defaultView)!=null?b:F?window:void 0,u=new Map,c=L(D({width:0,height:0,quality:1,type:\"image/png\",scale:r,backgroundColor:null,style:null,filter:null,maximumCanvasSize:0,timeout:3e4,progress:null,debug:s,fetch:D({requestInit:ht((g=t==null?void 0:t.fetch)==null?void 0:g.bypassingCache),placeholderImage:\"data:image/png;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\",bypassingCache:!1},t==null?void 0:t.fetch),fetchFn:null,font:{},drawImageInterval:100,workerUrl:null,workerNumber:a,onCloneNode:null,onEmbedNode:null,onCreateForeignObjectSvg:null,includeStyleProperties:null,autoDestruct:!1},t),{__CONTEXT__:!0,log:gt(s),node:e,ownerDocument:i,ownerWindow:l,dpi:r===1?null:96*r,svgStyleElement:ye(i),svgDefsElement:i==null?void 0:i.createElementNS(J,\"defs\"),svgStyles:new Map,defaultComputedStyles:new Map,workers:[...new Array(ze&&n&&a?a:0)].map(()=>{try{const S=new Worker(n);return S.onmessage=y=>E(this,null,function*(){var P,_e,Q,$e;const{url:v,result:I}=y.data;I?(_e=(P=u.get(v))==null?void 0:P.resolve)==null||_e.call(P,I):($e=(Q=u.get(v))==null?void 0:Q.reject)==null||$e.call(Q,new Error(`Error receiving message from worker: ${v}`))}),S.onmessageerror=y=>{var I,P;const{url:v}=y.data;(P=(I=u.get(v))==null?void 0:I.reject)==null||P.call(I,new Error(`Error receiving message from worker: ${v}`))},S}catch(S){return A(\"Failed to new Worker\",S),null}}).filter(Boolean),fontFamilies:new Set,fontCssTexts:new Map,acceptOfImage:`${[lt(i)&&\"image/webp\",\"image/svg+xml\",\"image/*\",\"*/*\"].filter(Boolean).join(\",\")};q=0.8`,requests:u,drawImageCount:0,tasks:[],features:o,isEnable:S=>{var y,v;return S===\"restoreScrollPosition\"?typeof o==\"boolean\"?!1:(y=o[S])!=null?y:!1:typeof o==\"boolean\"?o:(v=o[S])!=null?v:!0}});c.log.time(\"wait until load\"),yield ge(e,c.timeout),c.log.timeEnd(\"wait until load\");const{width:f,height:d}=wt(e,c);return c.width=f,c.height=d,c})}function ye(e){if(!e)return;const t=e.createElement(\"style\"),r=t.ownerDocument.createTextNode(`\n.______background-clip--text {\n background-clip: text;\n -webkit-background-clip: text;\n}\n`);return t.appendChild(r),t}function wt(e,t){let{width:r,height:n}=t;if(k(e)&&(!r||!n)){const a=e.getBoundingClientRect();r=r||a.width||Number(e.getAttribute(\"width\"))||0,n=n||a.height||Number(e.getAttribute(\"height\"))||0}return{width:r,height:n}}function pt(e,t){return E(this,null,function*(){const{log:r,timeout:n,drawImageCount:a,drawImageInterval:s}=t;r.time(\"image to canvas\");const o=yield $(e,{timeout:n}),{canvas:i,context2d:l}=yt(e.ownerDocument,t),u=()=>{try{l==null||l.drawImage(o,0,0,i.width,i.height)}catch(c){A(\"Failed to drawImage\",c)}};if(u(),t.isEnable(\"fixSvgXmlDecode\"))for(let c=0;c<a;c++)yield new Promise(f=>{setTimeout(()=>{u(),f()},c+s)});return t.drawImageCount=0,r.timeEnd(\"image to canvas\"),i})}function yt(e,t){const{width:r,height:n,scale:a,backgroundColor:s,maximumCanvasSize:o}=t,i=e.createElement(\"canvas\");i.width=Math.floor(r*a),i.height=Math.floor(n*a),i.style.width=`${r}px`,i.style.height=`${n}px`,o&&(i.width>o||i.height>o)&&(i.width>o&&i.height>o?i.width>i.height?(i.height*=o/i.width,i.width=o):(i.width*=o/i.height,i.height=o):i.width>o?(i.height*=o/i.width,i.width=o):(i.width*=o/i.height,i.height=o));const l=i.getContext(\"2d\");return l&&s&&(l.fillStyle=s,l.fillRect(0,0,i.width,i.height)),{canvas:i,context2d:l}}const bt=[\"width\",\"height\",\"-webkit-text-fill-color\"],St=[\"stroke\",\"fill\"];function be(e,t,r){var b;const{defaultComputedStyles:n,ownerDocument:a}=r,s=e.nodeName.toLowerCase(),o=q(e)&&s!==\"svg\",i=o?St.map(g=>[g,e.getAttribute(g)]).filter(([,g])=>g!==null):[],l=[o&&\"svg\",s,i.map((g,S)=>`${g}=${S}`).join(\",\"),t].filter(Boolean).join(\":\");if(n.has(l))return n.get(l);let u=r.sandbox;if(!u)try{a&&(u=a.createElement(\"iframe\"),u.id=`__SANDBOX__-${he()}`,u.width=\"0\",u.height=\"0\",u.style.visibility=\"hidden\",u.style.position=\"fixed\",a.body.appendChild(u),(b=u.contentWindow)==null||b.document.write('<!DOCTYPE html><meta charset=\"UTF-8\"><title></title><body>'),r.sandbox=u)}catch(g){A(\"Failed to create iframe sandbox\",g)}if(!u)return new Map;const c=u.contentWindow;if(!c)return new Map;const f=c.document;let d,m;o?(d=f.createElementNS(J,\"svg\"),m=d.ownerDocument.createElementNS(d.namespaceURI,s),i.forEach(([g,S])=>{m.setAttributeNS(null,g,S)}),d.appendChild(m)):d=m=f.createElement(s),m.textContent=\" \",f.body.appendChild(d);const w=c.getComputedStyle(m,t),p=new Map;for(let g=w.length,S=0;S<g;S++){const y=w.item(S);bt.includes(y)||p.set(y,w.getPropertyValue(y))}return f.body.removeChild(d),n.set(l,p),p}function Se(e,t,r){var i;const n=new Map,a=[],s=new Map;if(r)for(const l of r)o(l);else for(let l=e.length,u=0;u<l;u++){const c=e.item(u);o(c)}for(let l=a.length,u=0;u<l;u++)(i=s.get(a[u]))==null||i.forEach((c,f)=>n.set(f,c));function o(l){const u=e.getPropertyValue(l),c=e.getPropertyPriority(l),f=l.lastIndexOf(\"-\"),d=f>-1?l.substring(0,f):void 0;if(d){let m=s.get(d);m||(m=new Map,s.set(d,m)),m.set(l,[u,c])}t.get(l)===u&&!c||(d?a.push(d):n.set(l,[u,c]))}return n}const Et=[\":before\",\":after\"],Ct=[\":-webkit-scrollbar\",\":-webkit-scrollbar-button\",\":-webkit-scrollbar-thumb\",\":-webkit-scrollbar-track\",\":-webkit-scrollbar-track-piece\",\":-webkit-scrollbar-corner\",\":-webkit-resizer\"];function Tt(e,t,r,n){const{ownerWindow:a,svgStyleElement:s,svgStyles:o,currentNodeStyle:i}=n;if(!s||!a)return;function l(u){var S;const c=a.getComputedStyle(e,u);let f=c.getPropertyValue(\"content\");if(!f||f===\"none\")return;f=f.replace(/(')|(\")|(counter\\(.+\\))/g,\"\");const d=[he()],m=be(e,u,n);i==null||i.forEach((y,v)=>{m.delete(v)});const w=Se(c,m,n.includeStyleProperties);w.delete(\"content\"),w.delete(\"-webkit-locale\"),((S=w.get(\"background-clip\"))==null?void 0:S[0])===\"text\"&&t.classList.add(\"______background-clip--text\");const p=[`content: '${f}';`];if(w.forEach(([y,v],I)=>{p.push(`${I}: ${y}${v?\" !important\":\"\"};`)}),p.length===1)return;try{t.className=[t.className,...d].join(\" \")}catch(y){return}const b=p.join(`\n `);let g=o.get(b);g||(g=[],o.set(b,g)),g.push(`.${d[0]}:${u}`)}Et.forEach(l),r&&Ct.forEach(l)}function vt(e,t){le(e)&&(t.innerHTML=e.value),(le(e)||tt(e)||ot(e))&&t.setAttribute(\"value\",e.value)}function At(e,t,r,n){var f,d,m,w;const{ownerWindow:a,includeStyleProperties:s,currentParentNodeStyle:o}=n,i=t.style,l=a.getComputedStyle(e),u=be(e,null,n);o==null||o.forEach((p,b)=>{u.delete(b)});const c=Se(l,u,s);return c.delete(\"transition-property\"),c.delete(\"all\"),c.delete(\"d\"),c.delete(\"content\"),r&&(c.delete(\"margin-top\"),c.delete(\"margin-right\"),c.delete(\"margin-bottom\"),c.delete(\"margin-left\"),c.delete(\"margin-block-start\"),c.delete(\"margin-block-end\"),c.delete(\"margin-inline-start\"),c.delete(\"margin-inline-end\"),c.set(\"box-sizing\",[\"border-box\",\"\"])),((f=c.get(\"background-clip\"))==null?void 0:f[0])===\"text\"&&t.classList.add(\"______background-clip--text\"),ie&&(c.has(\"font-kerning\")||c.set(\"font-kerning\",[\"normal\",\"\"]),(((d=c.get(\"overflow-x\"))==null?void 0:d[0])===\"hidden\"||((m=c.get(\"overflow-y\"))==null?void 0:m[0])===\"hidden\")&&((w=c.get(\"text-overflow\"))==null?void 0:w[0])===\"ellipsis\"&&e.scrollWidth===e.clientWidth&&c.set(\"text-overflow\",[\"clip\",\"\"])),c.forEach(([p,b],g)=>{i.setProperty(g,p,b)}),c}function Nt(e,t){var r;try{if((r=e==null?void 0:e.contentDocument)!=null&&r.body)return oe(e.contentDocument.body,t)}catch(n){A(\"Failed to clone iframe\",n)}return e.cloneNode(!1)}function Ee(e){if(e.ownerDocument)try{const a=e.toDataURL();if(a!==\"data:,\")return U(a,e.ownerDocument)}catch(a){}const t=e.cloneNode(!1),r=e.getContext(\"2d\"),n=t.getContext(\"2d\");try{return r&&n&&n.putImageData(r.getImageData(0,0,e.width,e.height),0,0),t}catch(a){A(\"Failed to clone canvas\",a)}return t}function It(e){return E(this,null,function*(){if(e.ownerDocument&&!e.currentSrc&&e.poster)return U(e.poster,e.ownerDocument);const t=e.cloneNode(!1);t.crossOrigin=\"anonymous\",e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc);const r=t.ownerDocument;if(r){let n=!0;if(yield $(t,{onError:()=>n=!1}),!n)return e.poster?U(e.poster,e.ownerDocument):t;t.currentTime=e.currentTime,yield new Promise(s=>{t.addEventListener(\"seeked\",s,{once:!0})});const a=r.createElement(\"canvas\");a.width=e.offsetWidth,a.height=e.offsetHeight;try{const s=a.getContext(\"2d\");s&&s.drawImage(t,0,0,a.width,a.height)}catch(s){return A(\"Failed to clone video\",s),e.poster?U(e.poster,e.ownerDocument):t}return Ee(a)}return t})}function kt(e){const t=e.cloneNode(!1);return e.currentSrc&&e.currentSrc!==e.src&&(t.src=e.currentSrc,t.srcset=\"\"),t.loading===\"lazy\"&&(t.loading=\"eager\"),t}function xt(e,t){return et(e)?Ee(e):st(e)?Nt(e,t):_(e)?kt(e):G(e)?It(e):e.cloneNode(!1)}const Ce=new Set([\"symbol\"]);function Te(e,t,r,n){return E(this,null,function*(){if(k(r)&&(rt(r)||nt(r))||n.filter&&!n.filter(r))return;Ce.has(t.nodeName)||Ce.has(r.nodeName)?n.currentParentNodeStyle=void 0:n.currentParentNodeStyle=n.currentNodeStyle;const a=yield oe(r,n);n.isEnable(\"restoreScrollPosition\")&&Dt(e,a),t.appendChild(a)})}function ve(e,t,r){return E(this,null,function*(){var a,s;const n=(s=k(e)?(a=e.shadowRoot)==null?void 0:a.firstChild:void 0)!=null?s:e.firstChild;for(let o=n;o;o=o.nextSibling)if(!Qe(o))if(k(o)&&at(o)&&typeof o.assignedNodes==\"function\"){const i=o.assignedNodes();for(let l=0;l<i.length;l++)yield Te(e,t,i[l],r)}else yield Te(e,t,o,r)})}function Dt(e,t){if(!V(e)||!V(t))return;const{scrollTop:r,scrollLeft:n}=e;if(!r&&!n)return;const{transform:a}=t.style,s=new DOMMatrix(a),{a:o,b:i,c:l,d:u}=s;s.a=1,s.b=0,s.c=0,s.d=1,s.translateSelf(-n,-r),s.a=o,s.b=i,s.c=l,s.d=u,t.style.transform=s.toString()}function Rt(e,t){const{backgroundColor:r,width:n,height:a,style:s}=t,o=e.style;if(r&&o.setProperty(\"background-color\",r,\"important\"),n&&o.setProperty(\"width\",`${n}px`,\"important\"),a&&o.setProperty(\"height\",`${a}px`,\"important\"),s)for(const i in s)o[i]=s[i]}const Pt=/^[\\w-:]+$/;function oe(e,t,r=!1){return E(this,null,function*(){var i,l,u,c;const{ownerDocument:n,ownerWindow:a,fontFamilies:s}=t;if(n&&Ze(e))return n.createTextNode(e.data);if(n&&a&&k(e)&&(V(e)||q(e))){const f=yield xt(e,t);if(t.isEnable(\"removeAbnormalAttributes\")){const w=f.getAttributeNames();for(let p=w.length,b=0;b<p;b++){const g=w[b];Pt.test(g)||f.removeAttribute(g)}}const d=t.currentNodeStyle=At(e,f,r,t);r&&Rt(f,t);let m=!1;if(t.isEnable(\"copyScrollbar\")){const w=[(i=d.get(\"overflow-x\"))==null?void 0:i[0],(l=d.get(\"overflow-y\"))==null?void 0:l[1]];m=w.includes(\"scroll\")||(w.includes(\"auto\")||w.includes(\"overlay\"))&&(e.scrollHeight>e.clientHeight||e.scrollWidth>e.clientWidth)}return Tt(e,f,m,t),vt(e,f),(c=we((u=d.get(\"font-family\"))==null?void 0:u[0]))==null||c.forEach(w=>s.add(w)),G(e)||(yield ve(e,f,t)),f}const o=e.cloneNode(!1);return yield ve(e,o,t),o})}function Ae(e){if(e.ownerDocument=void 0,e.ownerWindow=void 0,e.svgStyleElement=void 0,e.svgDefsElement=void 0,e.svgStyles.clear(),e.defaultComputedStyles.clear(),e.sandbox){try{e.sandbox.remove()}catch(t){}e.sandbox=void 0}e.workers=[],e.fontFamilies.clear(),e.fontCssTexts.clear(),e.requests.clear(),e.tasks=[]}function Ft(e){const i=e,{url:t,timeout:r,responseType:n}=i,a=We(i,[\"url\",\"timeout\",\"responseType\"]),s=new AbortController,o=r?setTimeout(()=>s.abort(),r):void 0;return fetch(t,D({signal:s.signal},a)).then(l=>{if(!l.ok)throw new Error(\"Failed fetch, not 2xx response\",{cause:l});switch(n){case\"dataUrl\":return l.blob().then(dt);case\"text\":default:return l.text()}}).finally(()=>clearTimeout(o))}function H(e,t){const{url:r,requestType:n=\"text\",responseType:a=\"text\",imageDom:s}=t;let o=r;const{timeout:i,acceptOfImage:l,requests:u,fetchFn:c,fetch:{requestInit:f,bypassingCache:d,placeholderImage:m},workers:w}=e;n===\"image\"&&(X||re)&&e.drawImageCount++;let p=u.get(r);if(!p){d&&d instanceof RegExp&&d.test(o)&&(o+=(/\\?/.test(o)?\"&\":\"?\")+new Date().getTime());const b=D({url:o,timeout:i,responseType:a,headers:n===\"image\"?{accept:l}:void 0},f);p={type:n,resolve:void 0,reject:void 0,response:null},p.response=(()=>E(this,null,function*(){if(c&&n===\"image\"){const g=yield c(r);if(g)return g}return!X&&r.startsWith(\"http\")&&w.length?new Promise((g,S)=>{w[u.size&w.length-1].postMessage(D({rawUrl:r},b)),p.resolve=g,p.reject=S}):Ft(b)}))().catch(g=>{if(u.delete(r),n===\"image\"&&m)return A(\"Failed to fetch image base64, trying to use placeholder image\",o),typeof m==\"string\"?m:m(s);throw g}),u.set(r,p)}return p.response}function Ne(e,t,r,n){return E(this,null,function*(){if(!Ie(e))return e;for(const[a,s]of Ut(e,t))try{const o=yield H(r,{url:s,requestType:n?\"image\":\"text\",responseType:\"dataUrl\"});e=e.replace(_t(a),`$1${o}$3`)}catch(o){A(\"Failed to fetch css data url\",a,o)}return e})}function Ie(e){return/url\\((['\"]?)([^'\"]+?)\\1\\)/.test(e)}const ke=/url\\((['\"]?)([^'\"]+?)\\1\\)/g;function Ut(e,t){const r=[];return e.replace(ke,(n,a,s)=>(r.push([s,ue(s,t)]),n)),r.filter(([n])=>!ne(n))}function _t(e){const t=e.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g,\"\\\\$1\");return new RegExp(`(url\\\\(['\"]?)(${t})(['\"]?\\\\))`,\"g\")}function $t(e,t){return E(this,null,function*(){const{ownerDocument:r,svgStyleElement:n,fontFamilies:a,fontCssTexts:s,tasks:o,font:i}=t;if(!(!r||!n||!a.size))if(i&&i.cssText){const l=De(i.cssText,t);n.appendChild(r.createTextNode(`${l}\n`))}else{const l=Array.from(r.styleSheets).filter(c=>{try{return\"cssRules\"in c&&Boolean(c.cssRules.length)}catch(f){return A(`Error while reading CSS rules from ${c.href}`,f),!1}});yield Promise.all(l.flatMap(c=>Array.from(c.cssRules).map((f,d)=>E(this,null,function*(){if(Je(f)){let m=d+1;const w=f.href;let p=\"\";try{p=yield H(t,{url:w,requestType:\"text\",responseType:\"text\"})}catch(g){A(`Error fetch remote css import from ${w}`,g)}const b=p.replace(ke,(g,S,y)=>g.replace(y,ue(y,w)));for(const g of Lt(b))try{c.insertRule(g,g.startsWith(\"@import\")?m+=1:c.cssRules.length)}catch(S){A(\"Error inserting rule from remote css import\",{rule:g,error:S})}}})))),l.flatMap(c=>Array.from(c.cssRules)).filter(c=>{var f;return Ye(c)&&Ie(c.style.getPropertyValue(\"src\"))&&((f=we(c.style.getPropertyValue(\"font-family\")))==null?void 0:f.some(d=>a.has(d)))}).forEach(c=>{const f=c,d=s.get(f.cssText);d?n.appendChild(r.createTextNode(`${d}\n`)):o.push(Ne(f.cssText,f.parentStyleSheet?f.parentStyleSheet.href:null,t).then(m=>{m=De(m,t),s.set(f.cssText,m),n.appendChild(r.createTextNode(`${m}\n`))}))})}})}const Bt=/(\\/\\*[\\s\\S]*?\\*\\/)/gi,xe=/((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})/gi;function Lt(e){if(e==null)return[];const t=[];let r=e.replace(Bt,\"\");for(;;){const s=xe.exec(r);if(!s)break;t.push(s[0])}r=r.replace(xe,\"\");const n=/@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi,a=new RegExp(\"((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})\",\"gi\");for(;;){let s=n.exec(r);if(s)a.lastIndex=n.lastIndex;else if(s=a.exec(r),s)n.lastIndex=a.lastIndex;else break;t.push(s[0])}return t}const Mt=/url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g,Ot=/src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;function De(e,t){const{font:r}=t,n=r?r==null?void 0:r.preferredFormat:void 0;return n?e.replace(Ot,a=>{for(;;){const[s,,o]=Mt.exec(a)||[];if(!o)return\"\";if(o===n)return`src: ${s};`}}):e}function Wt(e,t){if(_(e)){const r=e.currentSrc||e.src;if(!ne(r))return[H(t,{url:r,imageDom:e,requestType:\"image\",responseType:\"dataUrl\"}).then(n=>{n&&(e.srcset=\"\",e.dataset.originalSrc=r,e.src=n||\"\")})];(X||re)&&t.drawImageCount++}else if(q(e)&&!ne(e.href.baseVal)){const r=e.href.baseVal;return[H(t,{url:r,imageDom:e,requestType:\"image\",responseType:\"dataUrl\"}).then(n=>{n&&(e.dataset.originalSrc=r,e.href.baseVal=n||\"\")})]}return[]}const jt=[\"background-image\",\"border-image-source\",\"-webkit-border-image\",\"-webkit-mask-image\",\"list-style-image\"];function qt(e,t){return jt.map(r=>{const n=e.getPropertyValue(r);return!n||n===\"none\"?null:((X||re)&&t.drawImageCount++,Ne(n,null,t,!0).then(a=>{!a||n===a||e.setProperty(r,a,e.getPropertyPriority(r))}))}).filter(Boolean)}function Vt(e,t){var i;const{ownerDocument:r,svgDefsElement:n}=t,a=(i=e.getAttribute(\"href\"))!=null?i:e.getAttribute(\"xlink:href\");if(!a)return[];const[s,o]=a.split(\"#\");if(o){const l=`#${o}`,u=r==null?void 0:r.querySelector(`svg ${l}`);if(s&&e.setAttribute(\"href\",l),n!=null&&n.querySelector(l))return[];if(u)return n==null||n.appendChild(u.cloneNode(!0)),[];if(s)return[H(t,{url:s,responseType:\"text\"}).then(c=>{n==null||n.insertAdjacentHTML(\"beforeend\",c)})]}return[]}function Re(e,t){const{tasks:r}=t;k(e)&&((_(e)||ce(e))&&r.push(...Wt(e,t)),Ke(e)&&r.push(...Vt(e,t))),V(e)&&r.push(...qt(e.style,t)),e.childNodes.forEach(n=>{Re(n,t)})}function Pe(e,t){return E(this,null,function*(){const r=yield x(e,t);if(k(r.node)&&q(r.node))return r.node;const{ownerDocument:n,log:a,tasks:s,svgStyleElement:o,svgDefsElement:i,svgStyles:l,font:u,progress:c,autoDestruct:f,onCloneNode:d,onEmbedNode:m,onCreateForeignObjectSvg:w}=r;a.time(\"clone node\");const p=yield oe(r.node,r,!0);if(o&&n){let v=\"\";l.forEach((I,P)=>{v+=`${I.join(`,\n`)} {\n ${P}\n}\n`}),o.appendChild(n.createTextNode(v))}a.timeEnd(\"clone node\"),d==null||d(p),u!==!1&&k(p)&&(a.time(\"embed web font\"),yield $t(p,r),a.timeEnd(\"embed web font\")),a.time(\"embed node\"),Re(p,r);const b=s.length;let g=0;const S=()=>E(this,null,function*(){for(;;){const v=s.pop();if(!v)break;try{yield v}catch(I){A(\"Failed to run task\",I)}c==null||c(++g,b)}});c==null||c(g,b),yield Promise.all([...Array(4)].map(S)),a.timeEnd(\"embed node\"),m==null||m(p);const y=Ht(p,r);return i&&y.insertBefore(i,y.children[0]),o&&y.insertBefore(o,y.children[0]),f&&Ae(r),w==null||w(y),y})}function Ht(e,t){const{width:r,height:n}=t,a=fe(r,n,e.ownerDocument),s=a.ownerDocument.createElementNS(a.namespaceURI,\"foreignObject\");return s.setAttributeNS(null,\"x\",\"0%\"),s.setAttributeNS(null,\"y\",\"0%\"),s.setAttributeNS(null,\"width\",\"100%\"),s.setAttributeNS(null,\"height\",\"100%\"),s.append(e),a.appendChild(s),a}function K(e,t){return E(this,null,function*(){var o;const r=yield x(e,t),n=yield Pe(r),a=de(n,r.isEnable(\"removeControlCharacter\"));r.autoDestruct||(r.svgStyleElement=ye(r.ownerDocument),r.svgDefsElement=(o=r.ownerDocument)==null?void 0:o.createElementNS(J,\"defs\"),r.svgStyles.clear());const s=U(a,n.ownerDocument);return yield pt(s,r)})}function zt(e,t){return E(this,null,function*(){const r=yield x(e,t),{log:n,type:a,quality:s,dpi:o}=r,i=yield K(r);n.time(\"canvas to blob\");const l=yield ut(i,a,s);if([\"image/png\",\"image/jpeg\"].includes(a)&&o){const u=yield mt(l.slice(0,33));let c=new Uint8Array(u);return a===\"image/png\"?c=ae(c,o):a===\"image/jpeg\"&&(c=C(c,o)),n.timeEnd(\"canvas to blob\"),new Blob([c,l.slice(33)],{type:a})}return n.timeEnd(\"canvas to blob\"),l})}function B(e,t){return E(this,null,function*(){const r=yield x(e,t),{log:n,quality:a,type:s,dpi:o}=r,i=yield K(r);n.time(\"canvas to data url\");let l=i.toDataURL(s,a);if([\"image/png\",\"image/jpeg\"].includes(s)&&o&&se&&Xe){const[u,c]=l.split(\",\");let f=0,d=!1;if(s===\"image/png\"){const y=He(c);y>=0?(f=Math.ceil((y+28)/3)*4,d=!0):f=33/3*4}else s===\"image/jpeg\"&&(f=18/3*4);const m=c.substring(0,f),w=c.substring(f),p=window.atob(m),b=new Uint8Array(p.length);for(let y=0;y<b.length;y++)b[y]=p.charCodeAt(y);const g=s===\"image/png\"?ae(b,o,d):C(b,o),S=window.btoa(String.fromCharCode(...g));l=[u,\",\",S,w].join(\"\")}return n.timeEnd(\"canvas to data url\"),l})}function Fe(e,t){return E(this,null,function*(){const r=yield x(e,t),{width:n,height:a,ownerDocument:s}=r,o=yield B(r),i=fe(n,a,s),l=i.ownerDocument.createElementNS(i.namespaceURI,\"image\");return l.setAttributeNS(null,\"href\",o),l.setAttributeNS(null,\"height\",\"100%\"),l.setAttributeNS(null,\"width\",\"100%\"),i.appendChild(l),de(i,r.isEnable(\"removeControlCharacter\"))})}function Xt(e,t){return E(this,null,function*(){const r=yield x(e,t),{ownerDocument:n,width:a,height:s,scale:o,type:i}=r,l=i===\"image/svg+xml\"?yield Fe(r):yield B(r),u=U(l,n);return u.width=Math.floor(a*o),u.height=Math.floor(s*o),u.style.width=`${a}px`,u.style.height=`${s}px`,u})}function Gt(e,t){return E(this,null,function*(){return B(yield x(e,L(D({},t),{type:\"image/jpeg\"})))})}function Yt(e,t){return E(this,null,function*(){const r=yield x(e,t),n=yield K(r);return n.getContext(\"2d\").getImageData(0,0,n.width,n.height).data})}function Jt(e,t){return E(this,null,function*(){return B(yield x(e,L(D({},t),{type:\"image/png\"})))})}function Kt(e,t){return E(this,null,function*(){return B(yield x(e,L(D({},t),{type:\"image/webp\"})))})}h.createContext=pe,h.destroyContext=Ae,h.domToBlob=zt,h.domToCanvas=K,h.domToDataUrl=B,h.domToForeignObjectSvg=Pe,h.domToImage=Xt,h.domToJpeg=Gt,h.domToPixel=Yt,h.domToPng=Jt,h.domToSvg=Fe,h.domToWebp=Kt,h.loadMedia=$,h.waitUntilLoad=ge,Object.defineProperty(h,Symbol.toStringTag,{value:\"Module\"})});\n","var pi = Math.PI,\n tau = 2 * pi,\n epsilon = 1e-6,\n tauEpsilon = tau - epsilon;\n\nfunction Path() {\n this._x0 = this._y0 = // start of current subpath\n this._x1 = this._y1 = null; // end of current subpath\n this._ = \"\";\n}\n\nfunction path() {\n return new Path;\n}\n\nPath.prototype = path.prototype = {\n constructor: Path,\n moveTo: function(x, y) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y);\n },\n closePath: function() {\n if (this._x1 !== null) {\n this._x1 = this._x0, this._y1 = this._y0;\n this._ += \"Z\";\n }\n },\n lineTo: function(x, y) {\n this._ += \"L\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n quadraticCurveTo: function(x1, y1, x, y) {\n this._ += \"Q\" + (+x1) + \",\" + (+y1) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n bezierCurveTo: function(x1, y1, x2, y2, x, y) {\n this._ += \"C\" + (+x1) + \",\" + (+y1) + \",\" + (+x2) + \",\" + (+y2) + \",\" + (this._x1 = +x) + \",\" + (this._y1 = +y);\n },\n arcTo: function(x1, y1, x2, y2, r) {\n x1 = +x1, y1 = +y1, x2 = +x2, y2 = +y2, r = +r;\n var x0 = this._x1,\n y0 = this._y1,\n x21 = x2 - x1,\n y21 = y2 - y1,\n x01 = x0 - x1,\n y01 = y0 - y1,\n l01_2 = x01 * x01 + y01 * y01;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x1,y1).\n if (this._x1 === null) {\n this._ += \"M\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Or, is (x1,y1) coincident with (x0,y0)? Do nothing.\n else if (!(l01_2 > epsilon));\n\n // Or, are (x0,y0), (x1,y1) and (x2,y2) collinear?\n // Equivalently, is (x1,y1) coincident with (x2,y2)?\n // Or, is the radius zero? Line to (x1,y1).\n else if (!(Math.abs(y01 * x21 - y21 * x01) > epsilon) || !r) {\n this._ += \"L\" + (this._x1 = x1) + \",\" + (this._y1 = y1);\n }\n\n // Otherwise, draw an arc!\n else {\n var x20 = x2 - x0,\n y20 = y2 - y0,\n l21_2 = x21 * x21 + y21 * y21,\n l20_2 = x20 * x20 + y20 * y20,\n l21 = Math.sqrt(l21_2),\n l01 = Math.sqrt(l01_2),\n l = r * Math.tan((pi - Math.acos((l21_2 + l01_2 - l20_2) / (2 * l21 * l01))) / 2),\n t01 = l / l01,\n t21 = l / l21;\n\n // If the start tangent is not coincident with (x0,y0), line to.\n if (Math.abs(t01 - 1) > epsilon) {\n this._ += \"L\" + (x1 + t01 * x01) + \",\" + (y1 + t01 * y01);\n }\n\n this._ += \"A\" + r + \",\" + r + \",0,0,\" + (+(y01 * x20 > x01 * y20)) + \",\" + (this._x1 = x1 + t21 * x21) + \",\" + (this._y1 = y1 + t21 * y21);\n }\n },\n arc: function(x, y, r, a0, a1, ccw) {\n x = +x, y = +y, r = +r, ccw = !!ccw;\n var dx = r * Math.cos(a0),\n dy = r * Math.sin(a0),\n x0 = x + dx,\n y0 = y + dy,\n cw = 1 ^ ccw,\n da = ccw ? a0 - a1 : a1 - a0;\n\n // Is the radius negative? Error.\n if (r < 0) throw new Error(\"negative radius: \" + r);\n\n // Is this path empty? Move to (x0,y0).\n if (this._x1 === null) {\n this._ += \"M\" + x0 + \",\" + y0;\n }\n\n // Or, is (x0,y0) not coincident with the previous point? Line to (x0,y0).\n else if (Math.abs(this._x1 - x0) > epsilon || Math.abs(this._y1 - y0) > epsilon) {\n this._ += \"L\" + x0 + \",\" + y0;\n }\n\n // Is this arc empty? We’re done.\n if (!r) return;\n\n // Does the angle go the wrong way? Flip the direction.\n if (da < 0) da = da % tau + tau;\n\n // Is this a complete circle? Draw two arcs to complete the circle.\n if (da > tauEpsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (x - dx) + \",\" + (y - dy) + \"A\" + r + \",\" + r + \",0,1,\" + cw + \",\" + (this._x1 = x0) + \",\" + (this._y1 = y0);\n }\n\n // Is this arc non-empty? Draw an arc!\n else if (da > epsilon) {\n this._ += \"A\" + r + \",\" + r + \",0,\" + (+(da >= pi)) + \",\" + cw + \",\" + (this._x1 = x + r * Math.cos(a1)) + \",\" + (this._y1 = y + r * Math.sin(a1));\n }\n },\n rect: function(x, y, w, h) {\n this._ += \"M\" + (this._x0 = this._x1 = +x) + \",\" + (this._y0 = this._y1 = +y) + \"h\" + (+w) + \"v\" + (+h) + \"h\" + (-w) + \"Z\";\n },\n toString: function() {\n return this._;\n }\n};\n\nexport default path;\n","export function initPipelineCountListener(el) {\n if (!el) return;\n\n el.addEventListener('update-pipelines-count', (event) => {\n if (event.detail.pipelineCount) {\n const badge = document.querySelector('.js-pipelines-mr-count');\n\n badge.textContent = event.detail.pipelineCount;\n }\n });\n}\n","// JS-YAML's default schema for `safeLoad` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on standard YAML's Core schema and includes most of\n// extra types described at YAML tag repository. (http://yaml.org/type/)\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./core')\n ],\n implicit: [\n require('../type/timestamp'),\n require('../type/merge')\n ],\n explicit: [\n require('../type/binary'),\n require('../type/omap'),\n require('../type/pairs'),\n require('../type/set')\n ]\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlBoolean(data) {\n if (data === null) return false;\n\n var max = data.length;\n\n return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) ||\n (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE'));\n}\n\nfunction constructYamlBoolean(data) {\n return data === 'true' ||\n data === 'True' ||\n data === 'TRUE';\n}\n\nfunction isBoolean(object) {\n return Object.prototype.toString.call(object) === '[object Boolean]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:bool', {\n kind: 'scalar',\n resolve: resolveYamlBoolean,\n construct: constructYamlBoolean,\n predicate: isBoolean,\n represent: {\n lowercase: function (object) { return object ? 'true' : 'false'; },\n uppercase: function (object) { return object ? 'TRUE' : 'FALSE'; },\n camelcase: function (object) { return object ? 'True' : 'False'; }\n },\n defaultStyle: 'lowercase'\n});\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestApprovalStateUpdatedEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestApprovalStateUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalsLeft\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalsRequired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalState\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"suggestedApprovers\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"invalidApproversRules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalsRequired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvedBy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canApprove\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":731}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n\\nsubscription mergeRequestApprovalStateUpdatedEE($issuableId: IssuableID!) {\\n mergeRequestApprovalStateUpdated(issuableId: $issuableId) {\\n ... on MergeRequest {\\n id\\n approved\\n approvalsLeft\\n approvalsRequired\\n approvalState {\\n suggestedApprovers {\\n nodes {\\n ...User\\n }\\n }\\n invalidApproversRules {\\n id\\n name\\n }\\n rules {\\n id\\n approved\\n approvalsRequired\\n name\\n type\\n }\\n }\\n approvedBy {\\n nodes {\\n ...User\\n }\\n }\\n userPermissions {\\n canApprove\\n }\\n }\\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(\"~/graphql_shared/fragments/user.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[\"mergeRequestApprovalStateUpdatedEE\"] = oneQuery(doc, \"mergeRequestApprovalStateUpdatedEE\");\n \n","var baseDelay = require('./_baseDelay'),\n baseRest = require('./_baseRest'),\n toNumber = require('./toNumber');\n\n/**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\nvar delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n});\n\nmodule.exports = delay;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"data-track-action\":\"click_button\",\"data-track-label\":\"reply_comment_button\",\"category\":\"tertiary\",\"icon\":\"reply\",\"title\":_vm.$options.i18n.buttonText,\"aria-label\":_vm.$options.i18n.buttonText},on:{\"click\":function($event){return _vm.$emit('startReplying')}}})\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!./reply_button.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!./reply_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlButton } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n i18n: {\n buttonText: __('Reply to comment'),\n },\n name: 'ReplyButton',\n components: {\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n};\n</script>\n\n<template>\n <gl-button\n v-gl-tooltip\n data-track-action=\"click_button\"\n data-track-label=\"reply_comment_button\"\n category=\"tertiary\"\n icon=\"reply\"\n :title=\"$options.i18n.buttonText\"\n :aria-label=\"$options.i18n.buttonText\"\n @click=\"$emit('startReplying')\"\n />\n</template>\n","import { render, staticRenderFns } from \"./reply_button.vue?vue&type=template&id=1546171c\"\nimport script from \"./reply_button.vue?vue&type=script&lang=js\"\nexport * from \"./reply_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","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","'use strict';\n\n\nvar yaml = require('./lib/js-yaml.js');\n\n\nmodule.exports = yaml;\n","import { trimFirstCharOfLineContent } from '~/diffs/store/utils'; // eslint-disable-line import/no-deprecated\nimport createGqClient, { fetchPolicies } from '~/lib/graphql';\nimport AjaxCache from '~/lib/utils/ajax_cache';\nimport { sprintf, __ } from '~/locale';\n\n// factory function because global flag makes RegExp stateful\nconst createQuickActionsRegex = () => /^\\/\\w+.*$/gm;\n\nexport const findNoteObjectById = (notes, id) => notes.filter((n) => n.id === id)[0];\n\nexport const getQuickActionText = (note) => {\n let text = __('Applying command');\n const quickActions = AjaxCache.get(gl.GfmAutoComplete.dataSources.commands) || [];\n\n const executedCommands = quickActions.filter((command) => {\n const commandRegex = new RegExp(`/${command.name}`);\n return commandRegex.test(note);\n });\n\n if (executedCommands && executedCommands.length) {\n if (executedCommands.length > 1) {\n text = __('Applying multiple commands');\n } else {\n const commandDescription = executedCommands[0].description.toLowerCase();\n text = sprintf(__('Applying command to %{commandDescription}'), { commandDescription });\n }\n }\n\n return text;\n};\n\nexport const hasQuickActions = (note) => createQuickActionsRegex().test(note);\n\nexport const stripQuickActions = (note) => note.replace(createQuickActionsRegex(), '').trim();\n\nexport const prepareDiffLines = (diffLines) =>\n diffLines.map((line) => ({ ...trimFirstCharOfLineContent(line) })); // eslint-disable-line import/no-deprecated\n\nexport const gqClient = createGqClient(\n {},\n {\n fetchPolicy: fetchPolicies.NO_CACHE,\n },\n);\n","import $ from 'jquery';\nimport Vue from 'vue';\nimport { debounce } from 'lodash';\nimport actionCable from '~/actioncable_consumer';\nimport Api from '~/api';\nimport { createAlert, VARIANT_INFO } from '~/alert';\nimport { EVENT_ISSUABLE_VUE_APP_CHANGE } from '~/issuable/constants';\nimport { STATUS_CLOSED, STATUS_REOPENED, TYPE_ISSUE } from '~/issues/constants';\nimport axios from '~/lib/utils/axios_utils';\nimport { __, sprintf } from '~/locale';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { confidentialWidget } from '~/sidebar/components/confidential/sidebar_confidentiality_widget.vue';\nimport updateIssueLockMutation from '~/sidebar/queries/update_issue_lock.mutation.graphql';\nimport updateMergeRequestLockMutation from '~/sidebar/queries/update_merge_request_lock.mutation.graphql';\nimport loadAwardsHandler from '~/awards_handler';\nimport { isInMRPage } from '~/lib/utils/common_utils';\nimport { mergeUrlParams } from '~/lib/utils/url_utility';\nimport sidebarTimeTrackingEventHub from '~/sidebar/event_hub';\nimport TaskList from '~/task_list';\nimport mrWidgetEventHub from '~/vue_merge_request_widget/event_hub';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_NOTE } from '~/graphql_shared/constants';\nimport notesEventHub from '../event_hub';\n\nimport promoteTimelineEvent from '../graphql/promote_timeline_event.mutation.graphql';\n\nimport * as constants from '../constants';\nimport * as types from './mutation_types';\nimport * as utils from './utils';\n\nexport const updateLockedAttribute = ({ commit, getters }, { locked, fullPath }) => {\n const { iid, targetType } = getters.getNoteableData;\n\n return utils.gqClient\n .mutate({\n mutation:\n targetType === TYPE_ISSUE ? updateIssueLockMutation : updateMergeRequestLockMutation,\n variables: {\n input: {\n projectPath: fullPath,\n iid: String(iid),\n locked,\n },\n },\n })\n .then(({ data }) => {\n const discussionLocked =\n targetType === TYPE_ISSUE\n ? data.issueSetLocked.issue.discussionLocked\n : data.mergeRequestSetLocked.mergeRequest.discussionLocked;\n\n commit(types.SET_ISSUABLE_LOCK, discussionLocked);\n });\n};\n\nexport const expandDiscussion = ({ commit, dispatch }, data) => {\n if (data.discussionId) {\n dispatch('diffs/renderFileForDiscussionId', data.discussionId, { root: true });\n }\n\n commit(types.EXPAND_DISCUSSION, data);\n};\n\nexport const collapseDiscussion = ({ commit }, data) => commit(types.COLLAPSE_DISCUSSION, data);\n\nexport const setNotesData = ({ commit }, data) => commit(types.SET_NOTES_DATA, data);\n\nexport const setNoteableData = ({ commit }, data) => commit(types.SET_NOTEABLE_DATA, data);\n\nexport const setConfidentiality = ({ commit }, data) => commit(types.SET_ISSUE_CONFIDENTIAL, data);\n\nexport const setUserData = ({ commit }, data) => commit(types.SET_USER_DATA, data);\n\nexport const setLastFetchedAt = ({ commit }, data) => commit(types.SET_LAST_FETCHED_AT, data);\n\nexport const setInitialNotes = ({ commit }, discussions) =>\n commit(types.ADD_OR_UPDATE_DISCUSSIONS, discussions);\n\nexport const setTargetNoteHash = ({ commit }, data) => commit(types.SET_TARGET_NOTE_HASH, data);\n\nexport const setNotesFetchedState = ({ commit }, state) =>\n commit(types.SET_NOTES_FETCHED_STATE, state);\n\nexport const toggleDiscussion = ({ commit }, data) => commit(types.TOGGLE_DISCUSSION, data);\n\nexport const toggleAllDiscussions = ({ commit, getters }) => {\n const expanded = getters.allDiscussionsExpanded;\n commit(types.SET_EXPAND_ALL_DISCUSSIONS, !expanded);\n};\n\nexport const fetchDiscussions = (\n { commit, dispatch, getters },\n { path, filter, persistFilter },\n) => {\n let config =\n filter !== undefined\n ? { params: { notes_filter: filter, persist_filter: persistFilter } }\n : null;\n\n if (getters.noteableType === constants.MERGE_REQUEST_NOTEABLE_TYPE) {\n config = { params: { notes_filter: 0, persist_filter: false } };\n }\n\n if (\n getters.noteableType === constants.ISSUE_NOTEABLE_TYPE ||\n getters.noteableType === constants.MERGE_REQUEST_NOTEABLE_TYPE\n ) {\n return dispatch('fetchDiscussionsBatch', { path, config, perPage: 20 });\n }\n\n return axios.get(path, config).then(({ data }) => {\n commit(types.ADD_OR_UPDATE_DISCUSSIONS, data);\n commit(types.SET_FETCHING_DISCUSSIONS, false);\n\n dispatch('updateResolvableDiscussionsCounts');\n });\n};\n\nexport const fetchNotes = ({ dispatch, getters }) => {\n if (getters.isFetching) return null;\n\n dispatch('setFetchingState', true);\n\n return dispatch('fetchDiscussions', getters.getFetchDiscussionsConfig)\n .then(() => dispatch('initPolling'))\n .then(() => {\n dispatch('setLoadingState', false);\n dispatch('setNotesFetchedState', true);\n notesEventHub.$emit('fetchedNotesData');\n dispatch('setFetchingState', false);\n })\n .catch(() => {\n dispatch('setLoadingState', false);\n dispatch('setNotesFetchedState', true);\n createAlert({\n message: __('Something went wrong while fetching comments. Please try again.'),\n });\n });\n};\n\nexport const initPolling = ({ state, dispatch, getters, commit }) => {\n if (state.isPollingInitialized) {\n return;\n }\n\n dispatch('setLastFetchedAt', getters.getNotesDataByProp('lastFetchedAt'));\n\n const debouncedFetchUpdatedNotes = debounce(() => {\n dispatch('fetchUpdatedNotes');\n }, constants.FETCH_UPDATED_NOTES_DEBOUNCE_TIMEOUT);\n\n actionCable.subscriptions.create(\n {\n channel: 'Noteable::NotesChannel',\n project_id: state.notesData.projectId,\n group_id: state.notesData.groupId,\n noteable_type: state.notesData.noteableType,\n noteable_id: state.notesData.noteableId,\n },\n {\n connected() {\n dispatch('fetchUpdatedNotes');\n },\n received(data) {\n if (data.event === 'updated') {\n debouncedFetchUpdatedNotes();\n }\n },\n },\n );\n\n commit(types.SET_IS_POLLING_INITIALIZED, true);\n};\n\nexport const fetchDiscussionsBatch = ({ commit, dispatch }, { path, config, cursor, perPage }) => {\n const params = { ...config?.params, per_page: perPage };\n\n if (cursor) {\n params.cursor = cursor;\n }\n\n return axios.get(path, { params }).then(({ data, headers }) => {\n commit(types.ADD_OR_UPDATE_DISCUSSIONS, data);\n\n if (headers && headers['x-next-page-cursor']) {\n const nextConfig = { ...config };\n\n if (config?.params?.persist_filter) {\n delete nextConfig.params.notes_filter;\n delete nextConfig.params.persist_filter;\n }\n\n return dispatch('fetchDiscussionsBatch', {\n path,\n config: nextConfig,\n cursor: headers['x-next-page-cursor'],\n perPage: Math.min(Math.round(perPage * 1.5), 100),\n });\n }\n\n commit(types.SET_DONE_FETCHING_BATCH_DISCUSSIONS, true);\n commit(types.SET_FETCHING_DISCUSSIONS, false);\n dispatch('updateResolvableDiscussionsCounts');\n\n return undefined;\n });\n};\n\nexport const updateDiscussion = ({ commit, state }, discussion) => {\n if (discussion == null) return null;\n\n commit(types.UPDATE_DISCUSSION, discussion);\n\n return utils.findNoteObjectById(state.discussions, discussion.id);\n};\n\nexport const setDiscussionSortDirection = ({ commit }, { direction, persist = true }) => {\n commit(types.SET_DISCUSSIONS_SORT, { direction, persist });\n};\n\nexport const setTimelineView = ({ commit }, enabled) => {\n commit(types.SET_TIMELINE_VIEW, enabled);\n};\n\nexport const setSelectedCommentPosition = ({ commit }, position) => {\n commit(types.SET_SELECTED_COMMENT_POSITION, position);\n};\n\nexport const setSelectedCommentPositionHover = ({ commit }, position) => {\n commit(types.SET_SELECTED_COMMENT_POSITION_HOVER, position);\n};\n\nexport const removeNote = ({ commit, dispatch, state }, note) => {\n const discussion = state.discussions.find(({ id }) => id === note.discussion_id);\n\n commit(types.DELETE_NOTE, note);\n\n dispatch('updateMergeRequestWidget');\n dispatch('updateResolvableDiscussionsCounts');\n\n if (isInMRPage()) {\n dispatch('diffs/removeDiscussionsFromDiff', discussion);\n }\n};\n\nexport const deleteNote = ({ dispatch }, note) =>\n axios.delete(note.path).then(() => {\n dispatch('removeNote', note);\n });\n\nexport const updateNote = ({ commit, dispatch }, { endpoint, note }) =>\n axios.put(endpoint, note).then(({ data }) => {\n commit(types.UPDATE_NOTE, data);\n dispatch('startTaskList');\n });\n\nexport const updateOrCreateNotes = ({ commit, state, getters, dispatch }, notes) => {\n const { notesById } = getters;\n const debouncedFetchDiscussions = (isFetching) => {\n if (!isFetching) {\n commit(types.SET_FETCHING_DISCUSSIONS, true);\n dispatch('fetchDiscussions', { path: state.notesData.discussionsPath });\n } else {\n if (isFetching !== true) {\n clearTimeout(state.currentlyFetchingDiscussions);\n }\n\n commit(\n types.SET_FETCHING_DISCUSSIONS,\n setTimeout(() => {\n dispatch('fetchDiscussions', { path: state.notesData.discussionsPath });\n }, constants.DISCUSSION_FETCH_TIMEOUT),\n );\n }\n };\n\n notes.forEach((note) => {\n if (notesById[note.id]) {\n commit(types.UPDATE_NOTE, note);\n } else if (note.type === constants.DISCUSSION_NOTE || note.type === constants.DIFF_NOTE) {\n const discussion = utils.findNoteObjectById(state.discussions, note.discussion_id);\n\n if (discussion) {\n commit(types.ADD_NEW_REPLY_TO_DISCUSSION, note);\n } else if (note.type === constants.DIFF_NOTE && !note.base_discussion) {\n debouncedFetchDiscussions(state.currentlyFetchingDiscussions);\n } else {\n commit(types.ADD_NEW_NOTE, note);\n }\n } else {\n commit(types.ADD_NEW_NOTE, note);\n }\n });\n};\n\nexport const promoteCommentToTimelineEvent = (\n { commit },\n { noteId, addError, addGenericError },\n) => {\n commit(types.SET_PROMOTE_COMMENT_TO_TIMELINE_PROGRESS, true); // Set loading state\n return utils.gqClient\n .mutate({\n mutation: promoteTimelineEvent,\n variables: {\n input: {\n noteId: convertToGraphQLId(TYPENAME_NOTE, noteId),\n },\n },\n })\n .then(({ data = {} }) => {\n const errors = data.timelineEventPromoteFromNote?.errors;\n if (errors.length) {\n const errorMessage = sprintf(addError, {\n error: errors.join('. '),\n });\n throw new Error(errorMessage);\n } else {\n notesEventHub.$emit('comment-promoted-to-timeline-event');\n toast(__('Comment added to the timeline.'));\n }\n })\n .catch((error) => {\n const message = error.message || addGenericError;\n\n let captureError = false;\n let errorObj = null;\n\n if (message === addGenericError) {\n captureError = true;\n errorObj = error;\n }\n\n createAlert({\n message,\n captureError,\n error: errorObj,\n });\n })\n .finally(() => {\n commit(types.SET_PROMOTE_COMMENT_TO_TIMELINE_PROGRESS, false); // Revert loading state\n });\n};\n\nexport const replyToDiscussion = (\n { commit, state, getters, dispatch },\n { endpoint, data: reply },\n) =>\n axios.post(endpoint, reply).then(({ data }) => {\n if (data.discussion) {\n commit(types.UPDATE_DISCUSSION, data.discussion);\n\n updateOrCreateNotes({ commit, state, getters, dispatch }, data.discussion.notes);\n\n dispatch('updateMergeRequestWidget');\n dispatch('startTaskList');\n dispatch('updateResolvableDiscussionsCounts');\n } else {\n commit(types.ADD_NEW_REPLY_TO_DISCUSSION, data);\n }\n\n return data;\n });\n\nexport const createNewNote = ({ commit, dispatch }, { endpoint, data: reply }) =>\n axios.post(endpoint, reply).then(({ data }) => {\n if (!data.errors) {\n commit(types.ADD_NEW_NOTE, data);\n\n dispatch('updateMergeRequestWidget');\n dispatch('startTaskList');\n dispatch('updateResolvableDiscussionsCounts');\n }\n return data;\n });\n\nexport const removePlaceholderNotes = ({ commit }) => commit(types.REMOVE_PLACEHOLDER_NOTES);\n\nexport const resolveDiscussion = ({ state, dispatch, getters }, { discussionId }) => {\n const discussion = utils.findNoteObjectById(state.discussions, discussionId);\n const isResolved = getters.isDiscussionResolved(discussionId);\n\n if (!discussion) {\n return Promise.reject();\n }\n if (isResolved) {\n return Promise.resolve();\n }\n\n return dispatch('toggleResolveNote', {\n endpoint: discussion.resolve_path,\n isResolved,\n discussion: true,\n });\n};\n\nexport const toggleResolveNote = ({ commit, dispatch }, { endpoint, isResolved, discussion }) => {\n const method = isResolved\n ? constants.UNRESOLVE_NOTE_METHOD_NAME\n : constants.RESOLVE_NOTE_METHOD_NAME;\n const mutationType = discussion ? types.UPDATE_DISCUSSION : types.UPDATE_NOTE;\n\n return axios[method](endpoint).then(({ data }) => {\n commit(mutationType, data);\n\n dispatch('updateResolvableDiscussionsCounts');\n\n dispatch('updateMergeRequestWidget');\n });\n};\n\nexport const closeIssuable = ({ commit, dispatch, state }) => {\n dispatch('toggleStateButtonLoading', true);\n return axios.put(state.notesData.closePath).then(({ data }) => {\n commit(types.CLOSE_ISSUE);\n dispatch('emitStateChangedEvent', data);\n dispatch('toggleStateButtonLoading', false);\n });\n};\n\nexport const reopenIssuable = ({ commit, dispatch, state }) => {\n dispatch('toggleStateButtonLoading', true);\n return axios.put(state.notesData.reopenPath).then(({ data }) => {\n commit(types.REOPEN_ISSUE);\n dispatch('emitStateChangedEvent', data);\n dispatch('toggleStateButtonLoading', false);\n });\n};\n\nexport const toggleStateButtonLoading = ({ commit }, value) =>\n commit(types.TOGGLE_STATE_BUTTON_LOADING, value);\n\nexport const emitStateChangedEvent = ({ getters }, data) => {\n const event = new CustomEvent(EVENT_ISSUABLE_VUE_APP_CHANGE, {\n detail: {\n data,\n isClosed: getters.openState === STATUS_CLOSED,\n },\n });\n\n document.dispatchEvent(event);\n};\n\nexport const toggleIssueLocalState = ({ commit }, newState) => {\n if (newState === STATUS_CLOSED) {\n commit(types.CLOSE_ISSUE);\n } else if (newState === STATUS_REOPENED) {\n commit(types.REOPEN_ISSUE);\n }\n};\n\nexport const saveNote = ({ commit, dispatch }, noteData) => {\n // For MR discussuions we need to post as `note[note]` and issue we use `note.note`.\n // For batch comments, we use draft_note\n const note = noteData.data.draft_note || noteData.data['note[note]'] || noteData.data.note.note;\n let placeholderText = note;\n const hasQuickActions = utils.hasQuickActions(placeholderText);\n const replyId = noteData.data.in_reply_to_discussion_id;\n let methodToDispatch;\n const postData = { ...noteData };\n if (postData.isDraft === true) {\n methodToDispatch = replyId\n ? 'batchComments/addDraftToDiscussion'\n : 'batchComments/createNewDraft';\n if (!postData.draft_note && noteData.note) {\n postData.draft_note = postData.note;\n delete postData.note;\n }\n } else {\n methodToDispatch = replyId ? 'replyToDiscussion' : 'createNewNote';\n }\n\n commit(types.REMOVE_PLACEHOLDER_NOTES); // remove previous placeholders\n\n if (hasQuickActions) {\n placeholderText = utils.stripQuickActions(placeholderText);\n }\n\n if (placeholderText.length) {\n commit(types.SHOW_PLACEHOLDER_NOTE, {\n noteBody: placeholderText,\n replyId,\n });\n }\n\n if (hasQuickActions) {\n commit(types.SHOW_PLACEHOLDER_NOTE, {\n isSystemNote: true,\n noteBody: utils.getQuickActionText(note),\n replyId,\n });\n }\n\n const processQuickActions = (res) => {\n const { quick_actions_status: { messages = null, command_names: commandNames = [] } = {} } =\n res;\n if (commandNames?.indexOf('submit_review') >= 0) {\n dispatch('batchComments/clearDrafts');\n }\n\n /*\n The following reply means that quick actions have been successfully applied:\n\n {\"commands_changes\":{},\"valid\":false,\"errors\":{},\"quick_actions_status\":{\"messages\":[\"Commands applied\"],\"command_names\":[\"due\"],\"commands_only\":true}}\n */\n if (hasQuickActions && messages) {\n // synchronizing the quick action with the sidebar widget\n // this is a temporary solution until we have confidentiality real-time updates\n if (\n confidentialWidget.setConfidentiality &&\n messages.some((m) => m.includes('Made this issue confidential'))\n ) {\n confidentialWidget.setConfidentiality();\n }\n\n $('.js-gfm-input').trigger('clear-commands-cache.atwho');\n\n createAlert({\n message: messages || __('Commands applied'),\n variant: VARIANT_INFO,\n parent: noteData.flashContainer,\n });\n }\n\n return res;\n };\n\n const processEmojiAward = (res) => {\n const { commands_changes: commandsChanges } = res;\n const { emoji_award: emojiAward } = commandsChanges || {};\n if (!emojiAward) {\n return res;\n }\n\n const votesBlock = $('.js-awards-block').eq(0);\n\n return loadAwardsHandler()\n .then((awardsHandler) => {\n awardsHandler.addAwardToEmojiBar(votesBlock, emojiAward);\n awardsHandler.scrollToAwards();\n })\n .catch(() => {\n createAlert({\n message: __('Something went wrong while adding your award. Please try again.'),\n parent: noteData.flashContainer,\n });\n })\n .then(() => res);\n };\n\n const processTimeTracking = (res) => {\n const { commands_changes: commandsChanges } = res;\n const { spend_time: spendTime, time_estimate: timeEstimate } = commandsChanges || {};\n if (spendTime != null || timeEstimate != null) {\n sidebarTimeTrackingEventHub.$emit('timeTrackingUpdated', {\n commands_changes: commandsChanges,\n });\n }\n\n return res;\n };\n\n const removePlaceholder = (res) => {\n commit(types.REMOVE_PLACEHOLDER_NOTES);\n\n return res;\n };\n\n return dispatch(methodToDispatch, postData, { root: true })\n .then(processQuickActions)\n .then(processEmojiAward)\n .then(processTimeTracking)\n .then(removePlaceholder);\n};\n\nexport const setFetchingState = ({ commit }, fetchingState) =>\n commit(types.SET_NOTES_FETCHING_STATE, fetchingState);\n\n// eslint-disable-next-line max-params\nconst pollSuccessCallBack = async (resp, commit, state, getters, dispatch) => {\n if (state.isResolvingDiscussion) {\n return null;\n }\n\n if (resp.notes?.length) {\n await dispatch('updateOrCreateNotes', resp.notes);\n dispatch('startTaskList');\n dispatch('updateResolvableDiscussionsCounts');\n }\n\n commit(types.SET_LAST_FETCHED_AT, resp.last_fetched_at);\n\n return resp;\n};\n\nconst getFetchDataParams = (state) => {\n const endpoint = state.notesData.notesPath;\n const options = {\n headers: {\n 'X-Last-Fetched-At': state.lastFetchedAt ? `${state.lastFetchedAt}` : undefined,\n },\n };\n\n return { endpoint, options };\n};\n\nexport const fetchUpdatedNotes = ({ commit, state, getters, dispatch }) => {\n const { endpoint, options } = getFetchDataParams(state);\n\n return axios\n .get(endpoint, options)\n .then(({ data }) => {\n pollSuccessCallBack(data, commit, state, getters, dispatch);\n })\n .catch(() => {});\n};\n\nexport const toggleAward = ({ commit, getters }, { awardName, noteId }) => {\n commit(types.TOGGLE_AWARD, { awardName, note: getters.notesById[noteId] });\n};\n\nexport const toggleAwardRequest = ({ dispatch }, data) => {\n const { endpoint, awardName } = data;\n\n return axios.post(endpoint, { name: awardName }).then(() => {\n dispatch('toggleAward', data);\n });\n};\n\nexport const fetchDiscussionDiffLines = ({ commit }, discussion) =>\n axios.get(discussion.truncated_diff_lines_path).then(({ data }) => {\n commit(types.SET_DISCUSSION_DIFF_LINES, {\n discussionId: discussion.id,\n diffLines: data.truncated_diff_lines,\n });\n });\n\nexport const updateMergeRequestWidget = () => {\n mrWidgetEventHub.$emit('mr.discussion.updated');\n};\n\nexport const setLoadingState = ({ commit }, data) => {\n commit(types.SET_NOTES_LOADING_STATE, data);\n};\n\nexport const filterDiscussion = ({ commit, dispatch }, { path, filter, persistFilter }) => {\n commit(types.CLEAR_DISCUSSIONS);\n dispatch('setLoadingState', true);\n dispatch('fetchDiscussions', { path, filter, persistFilter })\n .then(() => {\n dispatch('setLoadingState', false);\n dispatch('setNotesFetchedState', true);\n })\n .catch(() => {\n dispatch('setLoadingState', false);\n dispatch('setNotesFetchedState', true);\n createAlert({\n message: __('Something went wrong while fetching comments. Please try again.'),\n });\n });\n};\n\nexport const setCommentsDisabled = ({ commit }, data) => {\n commit(types.DISABLE_COMMENTS, data);\n};\n\nexport const startTaskList = ({ dispatch }) =>\n Vue.nextTick(\n () =>\n new TaskList({\n dataType: 'note',\n fieldName: 'note',\n selector: '.notes .is-editable',\n onSuccess: () => dispatch('startTaskList'),\n }),\n );\n\nexport const updateResolvableDiscussionsCounts = ({ commit }) =>\n commit(types.UPDATE_RESOLVABLE_DISCUSSIONS_COUNTS);\n\nexport const submitSuggestion = (\n { commit, dispatch },\n { discussionId, suggestionId, flashContainer, message },\n) => {\n const dispatchResolveDiscussion = () =>\n dispatch('resolveDiscussion', { discussionId }).catch(() => {});\n\n commit(types.SET_RESOLVING_DISCUSSION, true);\n\n return Api.applySuggestion(suggestionId, message)\n .then(dispatchResolveDiscussion)\n .catch((err) => {\n const defaultMessage = __(\n 'Something went wrong while applying the suggestion. Please try again.',\n );\n\n const errorMessage = err.response.data?.message;\n\n const alertMessage = errorMessage || defaultMessage;\n\n createAlert({\n message: alertMessage,\n parent: flashContainer,\n });\n })\n .finally(() => {\n commit(types.SET_RESOLVING_DISCUSSION, false);\n });\n};\n\nexport const submitSuggestionBatch = ({ commit, dispatch, state }, { message, flashContainer }) => {\n const suggestionIds = state.batchSuggestionsInfo.map(({ suggestionId }) => suggestionId);\n\n const resolveAllDiscussions = () =>\n state.batchSuggestionsInfo.map((suggestionInfo) => {\n const { discussionId } = suggestionInfo;\n return dispatch('resolveDiscussion', { discussionId }).catch(() => {});\n });\n\n commit(types.SET_APPLYING_BATCH_STATE, true);\n commit(types.SET_RESOLVING_DISCUSSION, true);\n\n return Api.applySuggestionBatch(suggestionIds, message)\n .then(() => Promise.all(resolveAllDiscussions()))\n .then(() => commit(types.CLEAR_SUGGESTION_BATCH))\n .catch((err) => {\n const defaultMessage = __(\n 'Something went wrong while applying the batch of suggestions. Please try again.',\n );\n\n const errorMessage = err.response.data?.message;\n\n const alertMessage = errorMessage || defaultMessage;\n\n createAlert({\n message: alertMessage,\n parent: flashContainer,\n });\n })\n .finally(() => {\n commit(types.SET_APPLYING_BATCH_STATE, false);\n commit(types.SET_RESOLVING_DISCUSSION, false);\n });\n};\n\nexport const addSuggestionInfoToBatch = ({ commit }, { suggestionId, noteId, discussionId }) =>\n commit(types.ADD_SUGGESTION_TO_BATCH, { suggestionId, noteId, discussionId });\n\nexport const removeSuggestionInfoFromBatch = ({ commit }, suggestionId) =>\n commit(types.REMOVE_SUGGESTION_FROM_BATCH, suggestionId);\n\nexport const convertToDiscussion = ({ commit }, noteId) =>\n commit(types.CONVERT_TO_DISCUSSION, noteId);\n\nexport const removeConvertedDiscussion = ({ commit }, noteId) =>\n commit(types.REMOVE_CONVERTED_DISCUSSION, noteId);\n\nexport const setCurrentDiscussionId = ({ commit }, discussionId) =>\n commit(types.SET_CURRENT_DISCUSSION_ID, discussionId);\n\nexport const fetchDescriptionVersion = ({ dispatch }, { endpoint, startingVersion, versionId }) => {\n let requestUrl = endpoint;\n\n if (startingVersion) {\n requestUrl = mergeUrlParams({ start_version_id: startingVersion }, requestUrl);\n }\n dispatch('requestDescriptionVersion');\n\n return axios\n .get(requestUrl)\n .then((res) => {\n dispatch('receiveDescriptionVersion', { descriptionVersion: res.data, versionId });\n })\n .catch((error) => {\n dispatch('receiveDescriptionVersionError', error);\n createAlert({\n message: __('Something went wrong while fetching description changes. Please try again.'),\n });\n });\n};\n\nexport const requestDescriptionVersion = ({ commit }) => {\n commit(types.REQUEST_DESCRIPTION_VERSION);\n};\nexport const receiveDescriptionVersion = ({ commit }, descriptionVersion) => {\n commit(types.RECEIVE_DESCRIPTION_VERSION, descriptionVersion);\n};\nexport const receiveDescriptionVersionError = ({ commit }, error) => {\n commit(types.RECEIVE_DESCRIPTION_VERSION_ERROR, error);\n};\n\nexport const softDeleteDescriptionVersion = (\n { dispatch },\n { endpoint, startingVersion, versionId },\n) => {\n let requestUrl = endpoint;\n\n if (startingVersion) {\n requestUrl = mergeUrlParams({ start_version_id: startingVersion }, requestUrl);\n }\n dispatch('requestDeleteDescriptionVersion');\n\n return axios\n .delete(requestUrl)\n .then(() => {\n dispatch('receiveDeleteDescriptionVersion', versionId);\n })\n .catch((error) => {\n dispatch('receiveDeleteDescriptionVersionError', error);\n createAlert({\n message: __('Something went wrong while deleting description changes. Please try again.'),\n });\n\n // Throw an error here because a component like SystemNote -\n // needs to know if the request failed to reset its internal state.\n throw new Error();\n });\n};\n\nexport const requestDeleteDescriptionVersion = ({ commit }) => {\n commit(types.REQUEST_DELETE_DESCRIPTION_VERSION);\n};\nexport const receiveDeleteDescriptionVersion = ({ commit }, versionId) => {\n commit(types.RECEIVE_DELETE_DESCRIPTION_VERSION, { [versionId]: __('Deleted') });\n};\nexport const receiveDeleteDescriptionVersionError = ({ commit }, error) => {\n commit(types.RECEIVE_DELETE_DESCRIPTION_VERSION_ERROR, error);\n};\n\nexport const updateAssignees = ({ commit }, assignees) => {\n commit(types.UPDATE_ASSIGNEES, assignees);\n};\n\nexport const updateDiscussionPosition = ({ commit }, updatedPosition) => {\n commit(types.UPDATE_DISCUSSION_POSITION, updatedPosition);\n};\n\nexport const updateMergeRequestFilters = ({ commit }, newFilters) =>\n commit(types.SET_MERGE_REQUEST_FILTERS, newFilters);\n","export const ADD_NEW_NOTE = 'ADD_NEW_NOTE';\nexport const ADD_NEW_REPLY_TO_DISCUSSION = 'ADD_NEW_REPLY_TO_DISCUSSION';\nexport const ADD_OR_UPDATE_DISCUSSIONS = 'ADD_OR_UPDATE_DISCUSSIONS';\nexport const CLEAR_DISCUSSIONS = 'CLEAR_DISCUSSIONS';\nexport const DELETE_NOTE = 'DELETE_NOTE';\nexport const REMOVE_PLACEHOLDER_NOTES = 'REMOVE_PLACEHOLDER_NOTES';\nexport const SET_NOTES_DATA = 'SET_NOTES_DATA';\nexport const SET_NOTEABLE_DATA = 'SET_NOTEABLE_DATA';\nexport const SET_USER_DATA = 'SET_USER_DATA';\nexport const SET_LAST_FETCHED_AT = 'SET_LAST_FETCHED_AT';\nexport const SET_TARGET_NOTE_HASH = 'SET_TARGET_NOTE_HASH';\nexport const SHOW_PLACEHOLDER_NOTE = 'SHOW_PLACEHOLDER_NOTE';\nexport const TOGGLE_AWARD = 'TOGGLE_AWARD';\nexport const UPDATE_NOTE = 'UPDATE_NOTE';\nexport const UPDATE_DISCUSSION = 'UPDATE_DISCUSSION';\nexport const UPDATE_DISCUSSION_POSITION = 'UPDATE_DISCUSSION_POSITION';\nexport const SET_DISCUSSION_DIFF_LINES = 'SET_DISCUSSION_DIFF_LINES';\nexport const SET_NOTES_FETCHING_STATE = 'SET_NOTES_FETCHING_STATE';\nexport const SET_NOTES_FETCHED_STATE = 'SET_NOTES_FETCHED_STATE';\nexport const SET_NOTES_LOADING_STATE = 'SET_NOTES_LOADING_STATE';\nexport const DISABLE_COMMENTS = 'DISABLE_COMMENTS';\nexport const APPLY_SUGGESTION = 'APPLY_SUGGESTION';\nexport const SET_APPLYING_BATCH_STATE = 'SET_APPLYING_BATCH_STATE';\nexport const ADD_SUGGESTION_TO_BATCH = 'ADD_SUGGESTION_TO_BATCH';\nexport const REMOVE_SUGGESTION_FROM_BATCH = 'REMOVE_SUGGESTION_FROM_BATCH';\nexport const CLEAR_SUGGESTION_BATCH = 'CLEAR_SUGGESTION_BATCH';\nexport const CONVERT_TO_DISCUSSION = 'CONVERT_TO_DISCUSSION';\nexport const REMOVE_CONVERTED_DISCUSSION = 'REMOVE_CONVERTED_DISCUSSION';\nexport const UPDATE_ASSIGNEES = 'UPDATE_ASSIGNEES';\nexport const SET_IS_POLLING_INITIALIZED = 'SET_IS_POLLING_INITIALIZED';\n\n// DISCUSSION\nexport const COLLAPSE_DISCUSSION = 'COLLAPSE_DISCUSSION';\nexport const EXPAND_DISCUSSION = 'EXPAND_DISCUSSION';\nexport const TOGGLE_DISCUSSION = 'TOGGLE_DISCUSSION';\nexport const SET_EXPAND_DISCUSSIONS = 'SET_EXPAND_DISCUSSIONS';\nexport const SET_EXPAND_ALL_DISCUSSIONS = 'SET_EXPAND_ALL_DISCUSSIONS';\nexport const UPDATE_RESOLVABLE_DISCUSSIONS_COUNTS = 'UPDATE_RESOLVABLE_DISCUSSIONS_COUNTS';\nexport const SET_CURRENT_DISCUSSION_ID = 'SET_CURRENT_DISCUSSION_ID';\nexport const SET_DISCUSSIONS_SORT = 'SET_DISCUSSIONS_SORT';\nexport const SET_TIMELINE_VIEW = 'SET_TIMELINE_VIEW';\nexport const SET_SELECTED_COMMENT_POSITION = 'SET_SELECTED_COMMENT_POSITION';\nexport const SET_SELECTED_COMMENT_POSITION_HOVER = 'SET_SELECTED_COMMENT_POSITION_HOVER';\nexport const SET_FETCHING_DISCUSSIONS = 'SET_FETCHING_DISCUSSIONS';\nexport const SET_RESOLVING_DISCUSSION = 'SET_RESOLVING_DISCUSSION';\nexport const SET_DONE_FETCHING_BATCH_DISCUSSIONS = 'SET_DONE_FETCHING_BATCH_DISCUSSIONS';\n\n// Issue\nexport const CLOSE_ISSUE = 'CLOSE_ISSUE';\nexport const REOPEN_ISSUE = 'REOPEN_ISSUE';\nexport const TOGGLE_STATE_BUTTON_LOADING = 'TOGGLE_STATE_BUTTON_LOADING';\nexport const SET_ISSUE_CONFIDENTIAL = 'SET_ISSUE_CONFIDENTIAL';\nexport const SET_ISSUABLE_LOCK = 'SET_ISSUABLE_LOCK';\n\n// Description version\nexport const REQUEST_DESCRIPTION_VERSION = 'REQUEST_DESCRIPTION_VERSION';\nexport const RECEIVE_DESCRIPTION_VERSION = 'RECEIVE_DESCRIPTION_VERSION';\nexport const RECEIVE_DESCRIPTION_VERSION_ERROR = 'RECEIVE_DESCRIPTION_VERSION_ERROR';\nexport const REQUEST_DELETE_DESCRIPTION_VERSION = 'REQUEST_DELETE_DESCRIPTION_VERSION';\nexport const RECEIVE_DELETE_DESCRIPTION_VERSION = 'RECEIVE_DELETE_DESCRIPTION_VERSION';\nexport const RECEIVE_DELETE_DESCRIPTION_VERSION_ERROR = 'RECEIVE_DELETE_DESCRIPTION_VERSION_ERROR';\n\n// Incidents\nexport const SET_PROMOTE_COMMENT_TO_TIMELINE_PROGRESS = 'SET_PROMOTE_COMMENT_TO_TIMELINE_PROGRESS';\n\nexport const SET_MERGE_REQUEST_FILTERS = 'SET_MERGE_REQUEST_FILTERS';\n","import { DESCRIPTION_TYPE, TIME_DIFFERENCE_VALUE } from '../constants';\n\n/**\n * Checks the time difference between two notes from their 'created_at' dates\n * returns an integer\n */\nexport const getTimeDifferenceMinutes = (noteBeggining, noteEnd) => {\n const descriptionNoteBegin = new Date(noteBeggining.created_at);\n const descriptionNoteEnd = new Date(noteEnd.created_at);\n const timeDifferenceMinutes = (descriptionNoteEnd - descriptionNoteBegin) / 1000 / 60;\n\n return Math.ceil(timeDifferenceMinutes);\n};\n\n/**\n * Checks if a note is a system note and if the content is description\n *\n * @param {Object} note\n * @returns {Boolean}\n */\nexport const isDescriptionSystemNote = (note) => note.system && note.note === DESCRIPTION_TYPE;\n\n/**\n * Collapses the system notes of a description type, e.g. Changed the description, n minutes ago\n * the notes will collapse as long as they happen no more than 10 minutes away from each away\n * in between the notes can be anything, another type of system note\n * (such as 'changed the weight') or a comment.\n *\n * @param {Array} notes\n * @returns {Array}\n */\nexport const collapseSystemNotes = (notes) => {\n let lastDescriptionSystemNote = null;\n let lastDescriptionSystemNoteIndex = -1;\n\n return notes.slice(0).reduce((acc, currentNote) => {\n const note = currentNote.notes[0];\n\n if (isDescriptionSystemNote(note)) {\n // is it the first one?\n if (!lastDescriptionSystemNote) {\n lastDescriptionSystemNote = note;\n lastDescriptionSystemNoteIndex = acc.length;\n } else if (lastDescriptionSystemNote) {\n const timeDifferenceMinutes = getTimeDifferenceMinutes(lastDescriptionSystemNote, note);\n\n // are they less than 10 minutes apart from the same user?\n if (\n timeDifferenceMinutes > TIME_DIFFERENCE_VALUE ||\n note.author.id !== lastDescriptionSystemNote.author.id ||\n lastDescriptionSystemNote.description_version_deleted\n ) {\n // update the previous system note\n lastDescriptionSystemNote = note;\n lastDescriptionSystemNoteIndex = acc.length;\n } else {\n // set the first version to fetch grouped system note versions\n note.start_description_version_id = lastDescriptionSystemNote.description_version_id;\n\n // delete the previous one\n acc.splice(lastDescriptionSystemNoteIndex, 1);\n\n // update the previous system note index\n lastDescriptionSystemNoteIndex = acc.length;\n }\n }\n }\n\n acc.push(currentNote);\n return acc;\n }, []);\n};\n","import { flattenDeep, clone } from 'lodash';\nimport { match } from '~/diffs/utils/diff_file';\nimport { isInMRPage } from '~/lib/utils/common_utils';\nimport { doesHashExistInUrl } from '~/lib/utils/url_utility';\nimport { badgeState } from '~/merge_requests/components/merge_request_header.vue';\nimport * as constants from '../constants';\nimport { collapseSystemNotes } from './collapse_utils';\n\nconst getDraftComments = (state) => {\n if (!state.batchComments) {\n return [];\n }\n\n return state.batchComments.drafts\n .filter((draft) => !draft.file_path && !draft.discussion_id)\n .map((x) => ({\n ...x,\n // Treat a top-level draft note as individual_note so it's not included in\n // expand/collapse threads\n individual_note: true,\n }))\n .sort((a, b) => a.id - b.id);\n};\n\nconst hideActivity = (filters, discussion) => {\n if (filters.length === constants.MR_FILTER_OPTIONS) return false;\n if (filters.length === 0) return true;\n\n const firstNote = discussion.notes[0];\n const hidingFilters = constants.MR_FILTER_OPTIONS.filter(({ value }) => !filters.includes(value));\n\n for (let i = 0, len = hidingFilters.length; i < len; i += 1) {\n const filter = hidingFilters[i];\n\n if (\n // For all of the below firstNote is the first note of a discussion, whether that be\n // the first in a discussion or a single note\n // If the filter option filters based on icon check against the first notes system note icon\n filter.systemNoteIcons?.includes(firstNote.system_note_icon_name) ||\n // If the filter option filters based on note type use the first notes type\n (filter.noteType?.includes(firstNote.type) && !firstNote.author?.bot) ||\n // If the filter option filters based on the note text then check if it is sytem\n // and filter based on the text of the system note\n (firstNote.system && filter.noteText?.some((t) => firstNote.note.includes(t))) ||\n // For individual notes we filter if the discussion is a single note and is not a sytem\n (filter.individualNote === discussion.individual_note &&\n !firstNote.system &&\n !firstNote.author?.bot) ||\n // For bot comments we filter on the authors `bot` boolean attribute\n (filter.bot && firstNote.author?.bot)\n ) {\n return true;\n }\n }\n\n return false;\n};\n\nexport const discussions = (state, getters, rootState) => {\n let discussionsInState = clone(state.discussions);\n // NOTE: not testing bc will be removed when backend is finished.\n\n if (state.noteableData.targetType === 'merge_request') {\n discussionsInState = discussionsInState.reduce((acc, discussion) => {\n if (hideActivity(state.mergeRequestFilters, discussion)) {\n return acc;\n }\n\n acc.push(discussion);\n\n return acc;\n }, []);\n }\n\n if (state.isTimelineEnabled) {\n discussionsInState = discussionsInState\n .reduce((acc, discussion) => {\n const transformedToIndividualNotes = discussion.notes.map((note) => ({\n ...discussion,\n id: note.id,\n created_at: note.created_at,\n individual_note: true,\n notes: [note],\n }));\n\n return acc.concat(transformedToIndividualNotes);\n }, [])\n .sort((a, b) => new Date(a.created_at) - new Date(b.created_at));\n }\n\n discussionsInState = collapseSystemNotes(discussionsInState);\n\n discussionsInState = discussionsInState.concat(getDraftComments(rootState));\n\n if (state.discussionSortOrder === constants.DESC) {\n discussionsInState = discussionsInState.reverse();\n }\n\n return discussionsInState;\n};\n\nexport const convertedDisscussionIds = (state) => state.convertedDisscussionIds;\n\nexport const targetNoteHash = (state) => state.targetNoteHash;\n\nexport const getNotesData = (state) => state.notesData;\n\nexport const isNotesFetched = (state) => state.isNotesFetched;\n\n/*\n * WARNING: This is an example of an \"unnecessary\" getter\n * more info found here: https://gitlab.com/groups/gitlab-org/-/epics/2913.\n */\n\nexport const sortDirection = (state) => state.discussionSortOrder;\n\nexport const persistSortOrder = (state) => state.persistSortOrder;\n\nexport const timelineEnabled = (state) => state.isTimelineEnabled;\n\nexport const isFetching = (state) => state.isFetching;\n\nexport const isLoading = (state) => state.isLoading;\n\nexport const getNotesDataByProp = (state) => (prop) => state.notesData[prop];\n\nexport const getNoteableData = (state) => state.noteableData;\n\nexport const getNoteableDataByProp = (state) => (prop) => state.noteableData[prop];\n\nexport const getBlockedByIssues = (state) => state.noteableData.blocked_by_issues;\n\nexport const userCanReply = (state) => Boolean(state.noteableData.current_user.can_create_note);\n\nexport const openState = (state) => (isInMRPage() ? badgeState.state : state.noteableData.state);\n\nexport const getUserData = (state) => state.userData || {};\n\nexport const getUserDataByProp = (state) => (prop) => state.userData && state.userData[prop];\n\nexport const descriptionVersions = (state) => state.descriptionVersions;\n\nexport const canUserAddIncidentTimelineEvents = (state) => {\n return Boolean(\n state.userData?.can_add_timeline_events &&\n state.noteableData.type === constants.NOTEABLE_TYPE_MAPPING.Incident,\n );\n};\n\nexport const notesById = (state) =>\n state.discussions.reduce((acc, note) => {\n note.notes.every((n) => Object.assign(acc, { [n.id]: n }));\n return acc;\n }, {});\n\nexport const noteableType = (state) => {\n const { ISSUE_NOTEABLE_TYPE, MERGE_REQUEST_NOTEABLE_TYPE, EPIC_NOTEABLE_TYPE } = constants;\n\n if (state.noteableData.noteableType === EPIC_NOTEABLE_TYPE) {\n return EPIC_NOTEABLE_TYPE;\n }\n\n return state.noteableData.merge_params ? MERGE_REQUEST_NOTEABLE_TYPE : ISSUE_NOTEABLE_TYPE;\n};\n\nconst reverseNotes = (array) => array.slice(0).reverse();\n\nconst isLastNote = (note, state) =>\n !note.system && state.userData && note.author && note.author.id === state.userData.id;\n\nexport const getCurrentUserLastNote = (state) =>\n flattenDeep(reverseNotes(state.discussions).map((note) => reverseNotes(note.notes))).find((el) =>\n isLastNote(el, state),\n );\n\nexport const getDiscussionLastNote = (state) => (discussion) =>\n reverseNotes(discussion.notes).find((el) => isLastNote(el, state));\n\nexport const unresolvedDiscussionsCount = (state) => state.unresolvedDiscussionsCount;\nexport const resolvableDiscussionsCount = (state) => state.resolvableDiscussionsCount;\n\nexport const showJumpToNextDiscussion =\n (state, getters) =>\n (mode = 'discussion') => {\n const orderedDiffs =\n mode !== 'discussion'\n ? getters.unresolvedDiscussionsIdsByDiff\n : getters.unresolvedDiscussionsIdsByDate;\n\n return orderedDiffs.length > 1;\n };\n\nexport const isDiscussionResolved = (state, getters) => (discussionId) =>\n getters.resolvedDiscussionsById[discussionId] !== undefined;\n\nexport const allResolvableDiscussions = (state) =>\n state.discussions.filter((d) => !d.individual_note && d.resolvable);\n\nexport const resolvedDiscussionsById = (state) => {\n const map = {};\n\n state.discussions\n .filter((d) => d.resolvable)\n .forEach((n) => {\n if (n.notes) {\n const resolved = n.notes.filter((note) => note.resolvable).every((note) => note.resolved);\n\n if (resolved) {\n map[n.id] = n;\n }\n }\n });\n\n return map;\n};\n\n// Gets Discussions IDs ordered by the date of their initial note\nexport const unresolvedDiscussionsIdsByDate = (state, getters) =>\n getters.allResolvableDiscussions\n .filter((d) => !d.resolved)\n .sort((a, b) => {\n const aDate = new Date(a.notes[0].created_at);\n const bDate = new Date(b.notes[0].created_at);\n\n if (aDate < bDate) {\n return -1;\n }\n\n return aDate === bDate ? 0 : 1;\n })\n .map((d) => d.id);\n\n// Gets Discussions IDs ordered by their position in the diff\n//\n// Sorts the array of resolvable yet unresolved discussions by\n// comparing file names first. If file names are the same, compares\n// line numbers.\nexport const unresolvedDiscussionsIdsByDiff = (state, getters, allState) => {\n const authoritativeFiles = allState.diffs.diffFiles;\n\n return getters.allResolvableDiscussions\n .filter((d) => !d.resolved && d.active)\n .sort((a, b) => {\n let order = 0;\n\n if (!a.diff_file || !b.diff_file) {\n return order;\n }\n\n const authoritativeA = authoritativeFiles.find((source) =>\n match({ fileA: source, fileB: a.diff_file, mode: 'mr' }),\n );\n const authoritativeB = authoritativeFiles.find((source) =>\n match({ fileA: source, fileB: b.diff_file, mode: 'mr' }),\n );\n\n if (authoritativeA && authoritativeB) {\n order = authoritativeA.order - authoritativeB.order;\n }\n\n // Get the line numbers, to compare within the same file\n const aLines = [a.position.new_line, a.position.old_line];\n const bLines = [b.position.new_line, b.position.old_line];\n\n return order < 0 ||\n (order === 0 &&\n // .max() because one of them might be zero (if removed/added)\n Math.max(aLines[0], aLines[1]) < Math.max(bLines[0], bLines[1]))\n ? -1\n : 1;\n })\n .map((d) => d.id);\n};\n\nexport const resolvedDiscussionCount = (state, getters) => {\n const resolvedMap = getters.resolvedDiscussionsById;\n\n return Object.keys(resolvedMap).length;\n};\n\nexport const discussionTabCounter = (state) =>\n state.discussions.reduce(\n (acc, discussion) =>\n acc + discussion.notes.filter((note) => !note.system && !note.placeholder).length,\n 0,\n );\n\n// Returns the list of discussion IDs ordered according to given parameter\n// @param {Boolean} diffOrder - is ordered by diff?\nexport const unresolvedDiscussionsIdsOrdered = (state, getters) => (diffOrder) => {\n if (diffOrder) {\n return getters.unresolvedDiscussionsIdsByDiff;\n }\n return getters.unresolvedDiscussionsIdsByDate;\n};\n\n// Checks if a given discussion is the last in the current order (diff or date)\n// @param {Boolean} discussionId - id of the discussion\n// @param {Boolean} diffOrder - is ordered by diff?\nexport const isLastUnresolvedDiscussion = (state, getters) => (discussionId, diffOrder) => {\n const idsOrdered = getters.unresolvedDiscussionsIdsOrdered(diffOrder);\n const lastDiscussionId = idsOrdered[idsOrdered.length - 1];\n\n return lastDiscussionId === discussionId;\n};\n\nexport const findUnresolvedDiscussionIdNeighbor =\n (state, getters) =>\n ({ discussionId, diffOrder, step }) => {\n const diffIds = getters.unresolvedDiscussionsIdsOrdered(diffOrder);\n const dateIds = getters.unresolvedDiscussionsIdsOrdered(false);\n const ids = diffIds.length ? diffIds : dateIds;\n const index = ids.indexOf(discussionId) + step;\n\n if (index < 0 && step < 0) {\n return ids[ids.length - 1];\n }\n\n if (index === ids.length && step > 0) {\n return ids[0];\n }\n\n return ids[index];\n };\n\n// Gets the ID of the discussion following the one provided, respecting order (diff or date)\n// @param {Boolean} discussionId - id of the current discussion\n// @param {Boolean} diffOrder - is ordered by diff?\nexport const nextUnresolvedDiscussionId = (state, getters) => (discussionId, diffOrder) =>\n getters.findUnresolvedDiscussionIdNeighbor({ discussionId, diffOrder, step: 1 });\n\nexport const previousUnresolvedDiscussionId = (state, getters) => (discussionId, diffOrder) =>\n getters.findUnresolvedDiscussionIdNeighbor({ discussionId, diffOrder, step: -1 });\n\n// @param {Boolean} diffOrder - is ordered by diff?\nexport const firstUnresolvedDiscussionId = (state, getters) => (diffOrder) => {\n if (diffOrder) {\n return getters.unresolvedDiscussionsIdsByDiff[0];\n }\n return getters.unresolvedDiscussionsIdsByDate[0];\n};\n\nexport const getDiscussion = (state) => (discussionId) =>\n state.discussions.find((discussion) => discussion.id === discussionId);\n\nexport const commentsDisabled = (state) => state.commentsDisabled;\n\nexport const suggestionsCount = (state, getters) =>\n Object.values(getters.notesById).filter((n) => n.suggestions?.length).length;\n\n// eslint-disable-next-line max-params\nexport const hasDrafts = (state, getters, rootState, rootGetters) =>\n Boolean(rootGetters['batchComments/hasDrafts']);\n\nexport const getSuggestionsFilePaths = (state) => () =>\n state.batchSuggestionsInfo.reduce((acc, suggestion) => {\n const discussion = state.discussions.find((d) => d.id === suggestion.discussionId);\n\n if (acc.indexOf(discussion?.diff_file?.file_path) === -1) {\n acc.push(discussion.diff_file.file_path);\n }\n\n return acc;\n }, []);\n\nexport const getFetchDiscussionsConfig = (state, getters) => {\n const defaultConfig = { path: getters.getNotesDataByProp('discussionsPath') };\n\n const currentFilter =\n getters.getNotesDataByProp('notesFilter') || constants.DISCUSSION_FILTERS_DEFAULT_VALUE;\n\n if (\n doesHashExistInUrl(constants.NOTE_UNDERSCORE) &&\n currentFilter !== constants.DISCUSSION_FILTERS_DEFAULT_VALUE\n ) {\n return {\n ...defaultConfig,\n filter: constants.DISCUSSION_FILTERS_DEFAULT_VALUE,\n persistFilter: false,\n };\n }\n return defaultConfig;\n};\n\nexport const allDiscussionsExpanded = (state) => {\n return state.discussions.every((discussion) => discussion.expanded);\n};\n","import { isEqual } from 'lodash';\nimport { STATUS_CLOSED, STATUS_REOPENED } from '~/issues/constants';\nimport { isInMRPage } from '~/lib/utils/common_utils';\nimport { uuids } from '~/lib/utils/uuids';\nimport * as constants from '../constants';\nimport * as types from './mutation_types';\nimport * as utils from './utils';\n\nexport default {\n [types.ADD_NEW_NOTE](state, data) {\n const note = data.discussion ? data.discussion.notes[0] : data;\n const { discussion_id: discussionId, type } = note;\n const [exists] = state.discussions.filter((n) => n.id === note.discussion_id);\n const isDiscussion = type === constants.DISCUSSION_NOTE || type === constants.DIFF_NOTE;\n\n if (!exists) {\n let discussion = data.discussion || note.base_discussion;\n\n if (!discussion) {\n discussion = {\n expanded: true,\n id: discussionId,\n individual_note: !isDiscussion,\n reply_id: discussionId,\n };\n\n if (isDiscussion && isInMRPage()) {\n discussion.resolvable = note.resolvable;\n discussion.resolved = false;\n discussion.active = true;\n discussion.resolve_path = note.resolve_path;\n discussion.resolve_with_issue_path = note.resolve_with_issue_path;\n discussion.diff_discussion = false;\n }\n }\n\n if (discussion.truncated_diff_lines) {\n discussion.truncated_diff_lines = utils.prepareDiffLines(discussion.truncated_diff_lines);\n }\n\n // note.base_discussion = undefined; // No point keeping a reference to this\n delete note.base_discussion;\n discussion.notes = [note];\n\n state.discussions.push(discussion);\n }\n },\n\n [types.ADD_NEW_REPLY_TO_DISCUSSION](state, note) {\n const discussion = utils.findNoteObjectById(state.discussions, note.discussion_id);\n const existingNote = discussion && utils.findNoteObjectById(discussion.notes, note.id);\n\n if (discussion && !existingNote) {\n discussion.notes.push(note);\n }\n },\n\n [types.DELETE_NOTE](state, note) {\n const noteObj = utils.findNoteObjectById(state.discussions, note.discussion_id);\n\n if (noteObj.individual_note) {\n state.discussions.splice(state.discussions.indexOf(noteObj), 1);\n } else {\n const comment = utils.findNoteObjectById(noteObj.notes, note.id);\n noteObj.notes.splice(noteObj.notes.indexOf(comment), 1);\n\n if (!noteObj.notes.length) {\n state.discussions.splice(state.discussions.indexOf(noteObj), 1);\n }\n }\n },\n\n [types.EXPAND_DISCUSSION](state, { discussionId }) {\n const discussion = utils.findNoteObjectById(state.discussions, discussionId);\n Object.assign(discussion, { expanded: true });\n },\n\n [types.COLLAPSE_DISCUSSION](state, { discussionId }) {\n const discussion = utils.findNoteObjectById(state.discussions, discussionId);\n Object.assign(discussion, { expanded: false });\n },\n\n [types.REMOVE_PLACEHOLDER_NOTES](state) {\n const { discussions } = state;\n\n for (let i = discussions.length - 1; i >= 0; i -= 1) {\n const note = discussions[i];\n const children = note.notes;\n\n if (children.length > 1) {\n // remove placeholder from discussions\n for (let j = children.length - 1; j >= 0; j -= 1) {\n if (children[j].isPlaceholderNote) {\n children.splice(j, 1);\n }\n }\n } else if (note.isPlaceholderNote) {\n // remove placeholders from state root\n discussions.splice(i, 1);\n }\n }\n },\n\n [types.SET_NOTES_DATA](state, data) {\n Object.assign(state, { notesData: data });\n },\n\n [types.SET_NOTEABLE_DATA](state, data) {\n Object.assign(state, { noteableData: data });\n },\n\n [types.SET_ISSUE_CONFIDENTIAL](state, data) {\n state.noteableData.confidential = data;\n },\n\n [types.SET_ISSUABLE_LOCK](state, locked) {\n state.noteableData.discussion_locked = locked;\n },\n\n [types.SET_USER_DATA](state, data) {\n Object.assign(state, { userData: data });\n },\n\n [types.CLEAR_DISCUSSIONS](state) {\n state.discussions = [];\n },\n\n [types.ADD_OR_UPDATE_DISCUSSIONS](state, discussionsData) {\n discussionsData.forEach((d) => {\n const discussion = { ...d };\n const diffData = {};\n\n if (discussion.diff_file) {\n diffData.file_hash = discussion.diff_file.file_hash;\n\n diffData.truncated_diff_lines = utils.prepareDiffLines(\n discussion.truncated_diff_lines || [],\n );\n }\n\n // To support legacy notes, should be very rare case.\n if (discussion.individual_note && discussion.notes.length > 1) {\n discussion.notes.forEach((n) => {\n const newDiscussion = {\n ...discussion,\n ...diffData,\n notes: [n], // override notes array to only have one item to mimick individual_note\n };\n const oldDiscussion = state.discussions.find(\n (existingDiscussion) =>\n existingDiscussion.id === discussion.id && existingDiscussion.notes[0].id === n.id,\n );\n\n if (oldDiscussion) {\n state.discussions.splice(state.discussions.indexOf(oldDiscussion), 1, newDiscussion);\n } else {\n state.discussions.push(newDiscussion);\n }\n });\n } else {\n const oldDiscussion = utils.findNoteObjectById(state.discussions, discussion.id);\n\n if (oldDiscussion) {\n state.discussions.splice(state.discussions.indexOf(oldDiscussion), 1, {\n ...discussion,\n ...diffData,\n expanded: oldDiscussion.expanded,\n });\n } else {\n state.discussions.push({ ...discussion, ...diffData });\n }\n }\n });\n },\n\n [types.SET_LAST_FETCHED_AT](state, fetchedAt) {\n Object.assign(state, { lastFetchedAt: fetchedAt });\n },\n\n [types.SET_TARGET_NOTE_HASH](state, hash) {\n Object.assign(state, { targetNoteHash: hash });\n },\n\n [types.SHOW_PLACEHOLDER_NOTE](state, data) {\n let notesArr = state.discussions;\n\n const existingDiscussion = utils.findNoteObjectById(notesArr, data.replyId);\n if (existingDiscussion) {\n notesArr = existingDiscussion.notes;\n }\n\n notesArr.push({\n id: uuids()[0],\n individual_note: true,\n isPlaceholderNote: true,\n placeholderType: data.isSystemNote ? constants.SYSTEM_NOTE : constants.NOTE,\n notes: [\n {\n body: data.noteBody,\n },\n ],\n });\n },\n\n [types.TOGGLE_AWARD](state, data) {\n const { awardName, note } = data;\n const { id, name, username } = state.userData;\n\n const hasEmojiAwardedByCurrentUser = note.award_emoji.filter(\n (emoji) => `${emoji.name}` === `${data.awardName}` && emoji.user.id === id,\n );\n\n if (hasEmojiAwardedByCurrentUser.length) {\n // If current user has awarded this emoji, remove it.\n note.award_emoji.splice(note.award_emoji.indexOf(hasEmojiAwardedByCurrentUser[0]), 1);\n } else {\n note.award_emoji.push({\n name: awardName,\n user: { id, name, username },\n });\n }\n },\n\n [types.TOGGLE_DISCUSSION](state, { discussionId, forceExpanded = null }) {\n const discussion = utils.findNoteObjectById(state.discussions, discussionId);\n Object.assign(discussion, {\n expanded: forceExpanded === null ? !discussion.expanded : forceExpanded,\n });\n },\n\n [types.SET_EXPAND_DISCUSSIONS](state, { discussionIds, expanded }) {\n if (discussionIds?.length) {\n discussionIds.forEach((discussionId) => {\n const discussion = utils.findNoteObjectById(state.discussions, discussionId);\n Object.assign(discussion, { expanded });\n });\n }\n },\n\n [types.SET_EXPAND_ALL_DISCUSSIONS](state, expanded) {\n state.discussions.forEach((discussion) => {\n Object.assign(discussion, { expanded });\n });\n },\n\n [types.SET_RESOLVING_DISCUSSION](state, isResolving) {\n state.isResolvingDiscussion = isResolving;\n },\n\n [types.UPDATE_NOTE](state, note) {\n const discussion = utils.findNoteObjectById(state.discussions, note.discussion_id);\n\n // Disable eslint here so we can delete the property that we no longer need\n // in the note object\n // eslint-disable-next-line no-param-reassign\n delete note.base_discussion;\n\n if (discussion.individual_note) {\n if (note.type === constants.DISCUSSION_NOTE) {\n discussion.individual_note = false;\n }\n\n discussion.notes.splice(0, 1, note);\n } else {\n const comment = utils.findNoteObjectById(discussion.notes, note.id);\n\n if (!isEqual(comment, note)) {\n discussion.notes.splice(discussion.notes.indexOf(comment), 1, note);\n }\n }\n\n if (note.resolvable && note.id === discussion.notes[0].id) {\n Object.assign(discussion, {\n resolvable: note.resolvable,\n resolved: note.resolved,\n resolved_at: note.resolved_at,\n resolved_by: note.resolved_by,\n resolved_by_push: note.resolved_by_push,\n });\n }\n },\n\n [types.APPLY_SUGGESTION](state, { noteId, discussionId, suggestionId }) {\n const noteObj = utils.findNoteObjectById(state.discussions, discussionId);\n const comment = utils.findNoteObjectById(noteObj.notes, noteId);\n\n comment.suggestions = comment.suggestions.map((suggestion) => ({\n ...suggestion,\n applied: suggestion.applied || suggestion.id === suggestionId,\n appliable: false,\n }));\n },\n\n [types.SET_APPLYING_BATCH_STATE](state, isApplyingBatch) {\n state.batchSuggestionsInfo.forEach((suggestionInfo) => {\n const { discussionId, noteId, suggestionId } = suggestionInfo;\n\n const noteObj = utils.findNoteObjectById(state.discussions, discussionId);\n const comment = utils.findNoteObjectById(noteObj.notes, noteId);\n\n comment.suggestions = comment.suggestions.map((suggestion) => ({\n ...suggestion,\n is_applying_batch: suggestion.id === suggestionId && isApplyingBatch,\n }));\n });\n },\n\n [types.ADD_SUGGESTION_TO_BATCH](state, { noteId, discussionId, suggestionId }) {\n state.batchSuggestionsInfo.push({\n suggestionId,\n noteId,\n discussionId,\n });\n },\n\n [types.REMOVE_SUGGESTION_FROM_BATCH](state, id) {\n const index = state.batchSuggestionsInfo.findIndex(({ suggestionId }) => suggestionId === id);\n if (index !== -1) {\n state.batchSuggestionsInfo.splice(index, 1);\n }\n },\n\n [types.CLEAR_SUGGESTION_BATCH](state) {\n state.batchSuggestionsInfo.splice(0, state.batchSuggestionsInfo.length);\n },\n\n [types.UPDATE_DISCUSSION](state, noteData) {\n const note = noteData;\n const selectedDiscussion = state.discussions.find((disc) => disc.id === note.id);\n note.expanded = true; // override expand flag to prevent collapse\n Object.assign(selectedDiscussion, { ...note });\n },\n\n [types.UPDATE_DISCUSSION_POSITION](state, { discussionId, position }) {\n const selectedDiscussion = state.discussions.find((disc) => disc.id === discussionId);\n if (selectedDiscussion) Object.assign(selectedDiscussion.position, { ...position });\n },\n\n [types.CLOSE_ISSUE](state) {\n Object.assign(state.noteableData, { state: STATUS_CLOSED });\n },\n\n [types.REOPEN_ISSUE](state) {\n Object.assign(state.noteableData, { state: STATUS_REOPENED });\n },\n\n [types.TOGGLE_STATE_BUTTON_LOADING](state, value) {\n Object.assign(state, { isToggleStateButtonLoading: value });\n },\n\n [types.SET_NOTES_FETCHED_STATE](state, value) {\n Object.assign(state, { isNotesFetched: value });\n },\n\n [types.SET_NOTES_LOADING_STATE](state, value) {\n state.isLoading = value;\n },\n\n [types.SET_NOTES_FETCHING_STATE](state, value) {\n state.isFetching = value;\n },\n\n [types.SET_DISCUSSION_DIFF_LINES](state, { discussionId, diffLines }) {\n const discussion = utils.findNoteObjectById(state.discussions, discussionId);\n\n discussion.truncated_diff_lines = utils.prepareDiffLines(diffLines);\n },\n\n [types.SET_DISCUSSIONS_SORT](state, { direction, persist }) {\n state.discussionSortOrder = direction;\n state.persistSortOrder = persist;\n },\n\n [types.SET_TIMELINE_VIEW](state, value) {\n state.isTimelineEnabled = value;\n },\n\n [types.SET_SELECTED_COMMENT_POSITION](state, position) {\n state.selectedCommentPosition = position;\n },\n\n [types.SET_SELECTED_COMMENT_POSITION_HOVER](state, position) {\n state.selectedCommentPositionHover = position;\n },\n\n [types.DISABLE_COMMENTS](state, value) {\n state.commentsDisabled = value;\n },\n [types.UPDATE_RESOLVABLE_DISCUSSIONS_COUNTS](state) {\n state.resolvableDiscussionsCount = state.discussions.filter(\n (discussion) => !discussion.individual_note && discussion.resolvable,\n ).length;\n state.unresolvedDiscussionsCount = state.discussions.filter(\n (discussion) =>\n !discussion.individual_note &&\n discussion.resolvable &&\n discussion.notes.some((note) => note.resolvable && !note.resolved),\n ).length;\n },\n\n [types.CONVERT_TO_DISCUSSION](state, discussionId) {\n const convertedDisscussionIds = [...state.convertedDisscussionIds, discussionId];\n Object.assign(state, { convertedDisscussionIds });\n },\n\n [types.REMOVE_CONVERTED_DISCUSSION](state, discussionId) {\n const convertedDisscussionIds = [...state.convertedDisscussionIds];\n\n convertedDisscussionIds.splice(convertedDisscussionIds.indexOf(discussionId), 1);\n Object.assign(state, { convertedDisscussionIds });\n },\n\n [types.SET_CURRENT_DISCUSSION_ID](state, discussionId) {\n state.currentDiscussionId = discussionId;\n },\n\n [types.REQUEST_DESCRIPTION_VERSION](state) {\n state.isLoadingDescriptionVersion = true;\n },\n [types.RECEIVE_DESCRIPTION_VERSION](state, { descriptionVersion, versionId }) {\n const descriptionVersions = { ...state.descriptionVersions, [versionId]: descriptionVersion };\n Object.assign(state, { descriptionVersions, isLoadingDescriptionVersion: false });\n },\n [types.RECEIVE_DESCRIPTION_VERSION_ERROR](state) {\n state.isLoadingDescriptionVersion = false;\n },\n [types.REQUEST_DELETE_DESCRIPTION_VERSION](state) {\n state.isLoadingDescriptionVersion = true;\n },\n [types.RECEIVE_DELETE_DESCRIPTION_VERSION](state, descriptionVersion) {\n state.isLoadingDescriptionVersion = false;\n Object.assign(state.descriptionVersions, descriptionVersion);\n },\n [types.RECEIVE_DELETE_DESCRIPTION_VERSION_ERROR](state) {\n state.isLoadingDescriptionVersion = false;\n },\n [types.UPDATE_ASSIGNEES](state, assignees) {\n state.noteableData.assignees = assignees;\n },\n [types.SET_FETCHING_DISCUSSIONS](state, value) {\n state.currentlyFetchingDiscussions = value;\n },\n [types.SET_DONE_FETCHING_BATCH_DISCUSSIONS](state, value) {\n state.doneFetchingBatchDiscussions = value;\n },\n [types.SET_PROMOTE_COMMENT_TO_TIMELINE_PROGRESS](state, value) {\n state.isPromoteCommentToTimelineEventInProgress = value;\n },\n [types.SET_IS_POLLING_INITIALIZED](state, value) {\n state.isPollingInitialized = value;\n },\n [types.SET_MERGE_REQUEST_FILTERS](state, value) {\n state.mergeRequestFilters = value;\n },\n};\n","import { ASC, MR_FILTER_OPTIONS } from '../constants';\n\nconst createState = () => ({\n discussions: [],\n discussionSortOrder: ASC,\n persistSortOrder: true,\n convertedDisscussionIds: [],\n targetNoteHash: null,\n lastFetchedAt: null,\n currentDiscussionId: null,\n batchSuggestionsInfo: [],\n currentlyFetchingDiscussions: false,\n doneFetchingBatchDiscussions: false,\n /**\n * selectedCommentPosition & selectedCommentPositionHover structures are the same as `position.line_range`:\n * {\n * start: { line_code: string, new_line: number, old_line:number, type: string },\n * end: { line_code: string, new_line: number, old_line:number, type: string },\n * }\n */\n selectedCommentPosition: null,\n selectedCommentPositionHover: null,\n\n // View layer\n isToggleStateButtonLoading: false,\n isNotesFetched: false,\n isLoading: true,\n isLoadingDescriptionVersion: false,\n isPromoteCommentToTimelineEventInProgress: false,\n\n // holds endpoints and permissions provided through haml\n notesData: {\n markdownDocsPath: '',\n },\n userData: {},\n noteableData: {\n discussion_locked: false,\n confidential: false, // TODO: Move data like this to Issue Store, should not be apart of notes.\n current_user: {},\n preview_note_path: 'path/to/preview',\n },\n isResolvingDiscussion: false,\n commentsDisabled: false,\n resolvableDiscussionsCount: 0,\n unresolvedDiscussionsCount: 0,\n descriptionVersions: {},\n isTimelineEnabled: false,\n isFetching: false,\n isPollingInitialized: false,\n mergeRequestFilters: MR_FILTER_OPTIONS.map((f) => f.value),\n});\n\nexport default createState;\n","import * as actions from '../actions';\nimport * as getters from '../getters';\nimport mutations from '../mutations';\nimport createState from '../state';\n\nexport default () => ({\n state: createState(),\n actions,\n getters,\n mutations,\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('li',{staticClass:\"timeline-entry\"},[_c('div',{staticClass:\"timeline-entry-inner\"},[_vm._t(\"default\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./timeline_entry_item.vue?vue&type=template&id=0702bda7\"\nvar script = {}\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 baseClone = require('./_baseClone');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nmodule.exports = clone;\n","/**\n * @gitlab/at.js - 1.5.7\n * Copyright (c) 2021 chord.luo <chord.luo@gmail.com>;\n * Homepage: https://gitlab.com/gitlab-org/frontend/At.js\n * License: MIT\n */\n(function (root, factory) {\n if (typeof define === 'function' && define.amd) {\n // AMD. Register as an anonymous module unless amdModuleId is set\n define([\"jquery\"], function (a0) {\n return (factory(a0));\n });\n } else if (typeof exports === 'object') {\n // Node. Does not work with strict CommonJS, but\n // only CommonJS-like environments that support module.exports,\n // like Node.\n module.exports = factory(require(\"jquery\"));\n } else {\n factory(jQuery);\n }\n}(this, function ($) {\nvar DEFAULT_CALLBACKS, KEY_CODE;\n\nKEY_CODE = {\n ESC: 27,\n TAB: 9,\n ENTER: 13,\n CTRL: 17,\n A: 65,\n P: 80,\n N: 78,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n BACKSPACE: 8,\n SPACE: 32\n};\n\nDEFAULT_CALLBACKS = {\n beforeSave: function(data) {\n return Controller.arrayToDefaultHash(data);\n },\n matcher: function(flag, subtext, should_startWithSpace, acceptSpaceBar) {\n var _a, _y, match, regexp, space;\n flag = flag.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, \"\\\\$&\");\n if (should_startWithSpace) {\n flag = '(?:^|\\\\s)' + flag;\n }\n _a = decodeURI(\"%C3%80\");\n _y = decodeURI(\"%C3%BF\");\n space = acceptSpaceBar ? \"\\ \" : \"\";\n regexp = new RegExp(flag + \"([A-Za-z\" + _a + \"-\" + _y + \"0-9_\" + space + \"\\'\\.\\+\\-]*)$|\" + flag + \"([^\\\\x00-\\\\xff]*)$\", 'gi');\n match = regexp.exec(subtext);\n if (match) {\n return match[2] || match[1];\n } else {\n return null;\n }\n },\n filter: function(query, data, searchKey) {\n var _results, i, item, len;\n _results = [];\n for (i = 0, len = data.length; i < len; i++) {\n item = data[i];\n if (~new String(item[searchKey]).toLowerCase().indexOf(query.toLowerCase())) {\n _results.push(item);\n }\n }\n return _results;\n },\n remoteFilter: null,\n sorter: function(query, items, searchKey) {\n var _results, i, item, len;\n if (!query) {\n return items;\n }\n _results = [];\n for (i = 0, len = items.length; i < len; i++) {\n item = items[i];\n item.atwho_order = new String(item[searchKey]).toLowerCase().indexOf(query.toLowerCase());\n if (item.atwho_order > -1) {\n _results.push(item);\n }\n }\n return _results.sort(function(a, b) {\n return a.atwho_order - b.atwho_order;\n });\n },\n tplEval: function(tpl, map) {\n var error, template;\n template = tpl;\n try {\n if (typeof tpl !== 'string') {\n template = tpl(map);\n }\n return template.replace(/\\$\\{([^\\}]*)\\}/g, function(tag, key, pos) {\n return map[key];\n });\n } catch (error1) {\n error = error1;\n return \"\";\n }\n },\n highlighter: function(li, query) {\n var regexp;\n if (!query) {\n return li;\n }\n regexp = new RegExp(\">\\\\s*([^\\<]*?)(\" + query.replace(\"+\", \"\\\\+\") + \")([^\\<]*)\\\\s*<\", 'ig');\n return li.replace(regexp, function(str, $1, $2, $3) {\n return '> ' + $1 + '<strong>' + $2 + '</strong>' + $3 + ' <';\n });\n },\n beforeInsert: function(value, $li, e) {\n return value;\n },\n beforeReposition: function(offset) {\n return offset;\n },\n afterMatchFailed: function(at, el) {}\n};\n\nvar App;\n\nApp = (function() {\n function App(inputor) {\n this.currentFlag = null;\n this.controllers = {};\n this.aliasMaps = {};\n this.$inputor = $(inputor);\n this.setupRootElement();\n this.listen();\n }\n\n App.prototype.createContainer = function(doc) {\n var ref;\n if ((ref = this.$el) != null) {\n ref.remove();\n }\n return $(doc.body).append(this.$el = $(\"<div class='atwho-container'></div>\"));\n };\n\n App.prototype.setupRootElement = function(iframe, asRoot) {\n var error;\n if (asRoot == null) {\n asRoot = false;\n }\n if (iframe) {\n this.window = iframe.contentWindow;\n this.document = iframe.contentDocument || this.window.document;\n this.iframe = iframe;\n } else {\n this.document = this.$inputor[0].ownerDocument;\n this.window = this.document.defaultView || this.document.parentWindow;\n try {\n this.iframe = this.window.frameElement;\n } catch (error1) {\n error = error1;\n this.iframe = null;\n if ($.fn.atwho.debug) {\n throw new Error(\"iframe auto-discovery is failed.\\nPlease use `setIframe` to set the target iframe manually.\\n\" + error);\n }\n }\n }\n return this.createContainer((this.iframeAsRoot = asRoot) ? this.document : document);\n };\n\n App.prototype.controller = function(at) {\n var c, current, currentFlag, ref;\n if (this.aliasMaps[at]) {\n current = this.controllers[this.aliasMaps[at]];\n } else {\n ref = this.controllers;\n for (currentFlag in ref) {\n c = ref[currentFlag];\n if (currentFlag === at) {\n current = c;\n break;\n }\n }\n }\n if (current) {\n return current;\n } else {\n return this.controllers[this.currentFlag];\n }\n };\n\n App.prototype.setContextFor = function(at) {\n this.currentFlag = at;\n return this;\n };\n\n App.prototype.reg = function(flag, setting) {\n var base, controller;\n controller = (base = this.controllers)[flag] || (base[flag] = this.$inputor.is('[contentEditable]') ? new EditableController(this, flag) : new TextareaController(this, flag));\n if (setting.alias) {\n this.aliasMaps[setting.alias] = flag;\n }\n controller.init(setting);\n return this;\n };\n\n App.prototype.listen = function() {\n return this.$inputor.on('compositionstart', (function(_this) {\n return function(e) {\n var ref;\n if ((ref = _this.controller()) != null) {\n ref.view.hide();\n }\n _this.isComposing = true;\n return null;\n };\n })(this)).on('compositionend', (function(_this) {\n return function(e) {\n _this.isComposing = false;\n setTimeout(function(e) {\n return _this.dispatch(e);\n });\n return null;\n };\n })(this)).on('keyup.atwhoInner', (function(_this) {\n return function(e) {\n return _this.onKeyup(e);\n };\n })(this)).on('keydown.atwhoInner', (function(_this) {\n return function(e) {\n return _this.onKeydown(e);\n };\n })(this)).on('blur.atwhoInner', (function(_this) {\n return function(e) {\n var c;\n if (c = _this.controller()) {\n c.expectedQueryCBId = null;\n return c.view.hide(e, c.getOpt(\"displayTimeout\"));\n }\n };\n })(this)).on('click.atwhoInner', (function(_this) {\n return function(e) {\n return _this.dispatch(e);\n };\n })(this)).on('scroll.atwhoInner', (function(_this) {\n return function() {\n var lastScrollTop;\n lastScrollTop = _this.$inputor.scrollTop();\n return function(e) {\n var currentScrollTop, ref;\n currentScrollTop = e.target.scrollTop;\n if (lastScrollTop !== currentScrollTop) {\n if ((ref = _this.controller()) != null) {\n ref.view.hide(e);\n }\n }\n lastScrollTop = currentScrollTop;\n return true;\n };\n };\n })(this)());\n };\n\n App.prototype.shutdown = function() {\n var _, c, ref;\n ref = this.controllers;\n for (_ in ref) {\n c = ref[_];\n c.destroy();\n delete this.controllers[_];\n }\n this.$inputor.off('.atwhoInner');\n return this.$el.remove();\n };\n\n App.prototype.dispatch = function(e) {\n var _, c, ref, results;\n if (void 0 === e) {\n return;\n }\n ref = this.controllers;\n results = [];\n for (_ in ref) {\n c = ref[_];\n results.push(c.lookUp(e));\n }\n return results;\n };\n\n App.prototype.onKeyup = function(e) {\n var ref;\n switch (e.keyCode) {\n case KEY_CODE.ESC:\n e.preventDefault();\n if ((ref = this.controller()) != null) {\n ref.view.hide();\n }\n break;\n case KEY_CODE.DOWN:\n case KEY_CODE.UP:\n case KEY_CODE.CTRL:\n case KEY_CODE.ENTER:\n $.noop();\n break;\n case KEY_CODE.P:\n case KEY_CODE.N:\n if (!e.ctrlKey) {\n this.dispatch(e);\n }\n break;\n default:\n this.dispatch(e);\n }\n };\n\n App.prototype.onKeydown = function(e) {\n var ref, view;\n view = (ref = this.controller()) != null ? ref.view : void 0;\n if (!(view && view.visible())) {\n return;\n }\n switch (e.keyCode) {\n case KEY_CODE.ESC:\n e.preventDefault();\n view.hide(e);\n break;\n case KEY_CODE.UP:\n e.preventDefault();\n view.prev();\n break;\n case KEY_CODE.DOWN:\n e.preventDefault();\n view.next();\n break;\n case KEY_CODE.P:\n if (!e.ctrlKey) {\n return;\n }\n e.preventDefault();\n view.prev();\n break;\n case KEY_CODE.N:\n if (!e.ctrlKey) {\n return;\n }\n e.preventDefault();\n view.next();\n break;\n case KEY_CODE.TAB:\n case KEY_CODE.ENTER:\n case KEY_CODE.SPACE:\n if (!view.visible()) {\n return;\n }\n if (!this.controller().getOpt('spaceSelectsMatch') && e.keyCode === KEY_CODE.SPACE) {\n return;\n }\n if (!this.controller().getOpt('tabSelectsMatch') && e.keyCode === KEY_CODE.TAB) {\n return;\n }\n if (view.highlighted()) {\n e.preventDefault();\n view.choose(e);\n } else {\n view.hide(e);\n }\n break;\n default:\n $.noop();\n }\n };\n\n return App;\n\n})();\n\nvar Controller,\n slice = [].slice;\n\nController = (function() {\n Controller.prototype.uid = function() {\n return (Math.random().toString(16) + \"000000000\").substr(2, 8) + (new Date().getTime());\n };\n\n function Controller(app, at1) {\n this.app = app;\n this.at = at1;\n this.$inputor = this.app.$inputor;\n this.id = this.$inputor[0].id || this.uid();\n this.expectedQueryCBId = null;\n this.setting = null;\n this.query = null;\n this.pos = 0;\n this.range = null;\n if ((this.$el = $(\"#atwho-ground-\" + this.id, this.app.$el)).length === 0) {\n this.app.$el.append(this.$el = $(\"<div id='atwho-ground-\" + this.id + \"'></div>\"));\n }\n this.model = new Model(this);\n this.view = new View(this);\n }\n\n Controller.prototype.init = function(setting) {\n this.setting = $.extend({}, this.setting || $.fn.atwho[\"default\"], setting);\n this.view.init();\n return this.model.reload(this.setting.data);\n };\n\n Controller.prototype.destroy = function() {\n this.trigger('beforeDestroy');\n this.model.destroy();\n this.view.destroy();\n return this.$el.remove();\n };\n\n Controller.prototype.callDefault = function() {\n var args, error, funcName;\n funcName = arguments[0], args = 2 <= arguments.length ? slice.call(arguments, 1) : [];\n try {\n return DEFAULT_CALLBACKS[funcName].apply(this, args);\n } catch (error1) {\n error = error1;\n return $.error(error + \" Or maybe At.js doesn't have function \" + funcName);\n }\n };\n\n Controller.prototype.trigger = function(name, data) {\n var alias, eventName;\n if (data == null) {\n data = [];\n }\n data.push(this);\n alias = this.getOpt('alias');\n eventName = alias ? name + \"-\" + alias + \".atwho\" : name + \".atwho\";\n return this.$inputor.trigger(eventName, data);\n };\n\n Controller.prototype.callbacks = function(funcName) {\n return this.getOpt(\"callbacks\")[funcName] || DEFAULT_CALLBACKS[funcName];\n };\n\n Controller.prototype.getOpt = function(at, default_value) {\n var e;\n try {\n return this.setting[at];\n } catch (error1) {\n e = error1;\n return null;\n }\n };\n\n Controller.prototype.insertContentFor = function($li) {\n var data, tpl;\n tpl = this.getOpt('insertTpl');\n data = $.extend({}, $li.data('item-data'), {\n 'atwho-at': this.at\n });\n return this.callbacks(\"tplEval\").call(this, tpl, data, \"onInsert\");\n };\n\n Controller.prototype.renderView = function(data) {\n var searchKey;\n searchKey = this.getOpt(\"searchKey\");\n data = this.callbacks(\"sorter\").call(this, this.query.text, data, searchKey);\n return this.view.render(data.slice(0, this.getOpt('limit')));\n };\n\n Controller.arrayToDefaultHash = function(data) {\n var i, item, len, results;\n if (!$.isArray(data)) {\n return data;\n }\n results = [];\n for (i = 0, len = data.length; i < len; i++) {\n item = data[i];\n if ($.isPlainObject(item)) {\n results.push(item);\n } else {\n results.push({\n name: item\n });\n }\n }\n return results;\n };\n\n Controller.prototype.lookUp = function(e) {\n var query, wait;\n if (e && e.type === 'click' && !this.getOpt('lookUpOnClick')) {\n return;\n }\n if (this.getOpt('suspendOnComposing') && this.app.isComposing) {\n return;\n }\n query = this.catchQuery(e);\n if (!query) {\n this.expectedQueryCBId = null;\n return query;\n }\n this.app.setContextFor(this.at);\n if (wait = this.getOpt('delay')) {\n this._delayLookUp(query, wait);\n } else {\n this._lookUp(query);\n }\n return query;\n };\n\n Controller.prototype._delayLookUp = function(query, wait) {\n var now, remaining;\n now = Date.now ? Date.now() : new Date().getTime();\n this.previousCallTime || (this.previousCallTime = now);\n remaining = wait - (now - this.previousCallTime);\n if ((0 < remaining && remaining < wait)) {\n this.previousCallTime = now;\n this._stopDelayedCall();\n return this.delayedCallTimeout = setTimeout((function(_this) {\n return function() {\n _this.previousCallTime = 0;\n _this.delayedCallTimeout = null;\n return _this._lookUp(query);\n };\n })(this), wait);\n } else {\n this._stopDelayedCall();\n if (this.previousCallTime !== now) {\n this.previousCallTime = 0;\n }\n return this._lookUp(query);\n }\n };\n\n Controller.prototype._stopDelayedCall = function() {\n if (this.delayedCallTimeout) {\n clearTimeout(this.delayedCallTimeout);\n return this.delayedCallTimeout = null;\n }\n };\n\n Controller.prototype._generateQueryCBId = function() {\n return {};\n };\n\n Controller.prototype._lookUp = function(query) {\n var _callback;\n _callback = function(queryCBId, data) {\n if (queryCBId !== this.expectedQueryCBId) {\n return;\n }\n if (data && data.length > 0) {\n return this.renderView(this.constructor.arrayToDefaultHash(data));\n } else {\n return this.view.hide();\n }\n };\n this.expectedQueryCBId = this._generateQueryCBId();\n return this.model.query(query.text, $.proxy(_callback, this, this.expectedQueryCBId));\n };\n\n return Controller;\n\n})();\n\nvar TextareaController,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\nTextareaController = (function(superClass) {\n extend(TextareaController, superClass);\n\n function TextareaController() {\n return TextareaController.__super__.constructor.apply(this, arguments);\n }\n\n TextareaController.prototype.catchQuery = function() {\n var caretPos, content, end, isString, query, start, subtext;\n content = this.$inputor.val();\n caretPos = this.$inputor.caret('pos', {\n iframe: this.app.iframe\n });\n subtext = content.slice(0, caretPos);\n query = this.callbacks(\"matcher\").call(this, this.at, subtext, this.getOpt('startWithSpace'), this.getOpt(\"acceptSpaceBar\"));\n isString = typeof query === 'string';\n if (isString && query.length < this.getOpt('minLen', 0)) {\n return;\n }\n if (isString && query.length <= this.getOpt('maxLen', 20)) {\n start = caretPos - query.length;\n end = start + query.length;\n this.pos = start;\n query = {\n 'text': query,\n 'headPos': start,\n 'endPos': end\n };\n this.trigger(\"matched\", [this.at, query.text]);\n } else {\n query = null;\n this.view.hide();\n }\n return this.query = query;\n };\n\n TextareaController.prototype.rect = function() {\n var c, iframeOffset, scaleBottom;\n if (!(c = this.$inputor.caret('offset', this.pos - 1, {\n iframe: this.app.iframe\n }))) {\n return;\n }\n if (this.app.iframe && !this.app.iframeAsRoot) {\n iframeOffset = $(this.app.iframe).offset();\n c.left += iframeOffset.left;\n c.top += iframeOffset.top;\n }\n scaleBottom = this.app.document.selection ? 0 : 2;\n return {\n left: c.left,\n top: c.top,\n bottom: c.top + c.height + scaleBottom\n };\n };\n\n TextareaController.prototype.insert = function(content, $li) {\n var $inputor, source, startStr, suffix, text;\n $inputor = this.$inputor;\n source = $inputor.val();\n startStr = source.slice(0, Math.max(this.query.headPos - this.at.length, 0));\n suffix = (suffix = this.getOpt('suffix')) === \"\" ? suffix : suffix || \" \";\n content += suffix;\n text = \"\" + startStr + content + (source.slice(this.query['endPos'] || 0));\n $inputor.val(text);\n $inputor.caret('pos', startStr.length + content.length, {\n iframe: this.app.iframe\n });\n if (!$inputor.is(':focus')) {\n $inputor.focus();\n }\n return $inputor.change();\n };\n\n return TextareaController;\n\n})(Controller);\n\nvar EditableController,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\nEditableController = (function(superClass) {\n extend(EditableController, superClass);\n\n function EditableController() {\n return EditableController.__super__.constructor.apply(this, arguments);\n }\n\n EditableController.prototype._getRange = function() {\n var sel;\n sel = this.app.window.getSelection();\n if (sel.rangeCount > 0) {\n return sel.getRangeAt(0);\n }\n };\n\n EditableController.prototype._setRange = function(position, node, range) {\n if (range == null) {\n range = this._getRange();\n }\n if (!(range && node)) {\n return;\n }\n node = $(node)[0];\n if (position === 'after') {\n range.setEndAfter(node);\n range.setStartAfter(node);\n } else {\n range.setEndBefore(node);\n range.setStartBefore(node);\n }\n range.collapse(false);\n return this._clearRange(range);\n };\n\n EditableController.prototype._clearRange = function(range) {\n var sel;\n if (range == null) {\n range = this._getRange();\n }\n sel = this.app.window.getSelection();\n if (this.ctrl_a_pressed == null) {\n sel.removeAllRanges();\n return sel.addRange(range);\n }\n };\n\n EditableController.prototype._movingEvent = function(e) {\n var ref;\n return e.type === 'click' || ((ref = e.which) === KEY_CODE.RIGHT || ref === KEY_CODE.LEFT || ref === KEY_CODE.UP || ref === KEY_CODE.DOWN);\n };\n\n EditableController.prototype._unwrap = function(node) {\n var next;\n node = $(node).unwrap().get(0);\n if ((next = node.nextSibling) && next.nodeValue) {\n node.nodeValue += next.nodeValue;\n $(next).remove();\n }\n return node;\n };\n\n EditableController.prototype.catchQuery = function(e) {\n var $inserted, $query, _range, index, inserted, isString, lastNode, matched, offset, query, query_content, range;\n if (!(range = this._getRange())) {\n return;\n }\n if (!range.collapsed) {\n return;\n }\n if (e.which === KEY_CODE.ENTER) {\n ($query = $(range.startContainer).closest('.atwho-query')).contents().unwrap();\n if ($query.is(':empty')) {\n $query.remove();\n }\n ($query = $(\".atwho-query\", this.app.document)).text($query.text()).contents().last().unwrap();\n this._clearRange();\n return;\n }\n if (/firefox/i.test(navigator.userAgent)) {\n if ($(range.startContainer).is(this.$inputor)) {\n this._clearRange();\n return;\n }\n if (e.which === KEY_CODE.BACKSPACE && range.startContainer.nodeType === document.ELEMENT_NODE && (offset = range.startOffset - 1) >= 0) {\n _range = range.cloneRange();\n _range.setStart(range.startContainer, offset);\n if ($(_range.cloneContents()).contents().last().is('.atwho-inserted')) {\n inserted = $(range.startContainer).contents().get(offset);\n this._setRange('after', $(inserted).contents().last());\n }\n } else if (e.which === KEY_CODE.LEFT && range.startContainer.nodeType === document.TEXT_NODE) {\n $inserted = $(range.startContainer.previousSibling);\n if ($inserted.is('.atwho-inserted') && range.startOffset === 0) {\n this._setRange('after', $inserted.contents().last());\n }\n }\n }\n $(range.startContainer).closest('.atwho-inserted').addClass('atwho-query').siblings().removeClass('atwho-query');\n if (($query = $(\".atwho-query\", this.app.document)).length > 0 && $query.is(':empty') && $query.text().length === 0) {\n $query.remove();\n }\n if (!this._movingEvent(e)) {\n $query.removeClass('atwho-inserted');\n }\n if ($query.length > 0) {\n switch (e.which) {\n case KEY_CODE.LEFT:\n this._setRange('before', $query.get(0), range);\n $query.removeClass('atwho-query');\n return;\n case KEY_CODE.RIGHT:\n this._setRange('after', $query.get(0).nextSibling, range);\n $query.removeClass('atwho-query');\n return;\n }\n }\n if ($query.length > 0 && (query_content = $query.attr('data-atwho-at-query'))) {\n $query.empty().html(query_content).attr('data-atwho-at-query', null);\n this._setRange('after', $query.get(0), range);\n }\n _range = range.cloneRange();\n _range.setStart(range.startContainer, 0);\n matched = this.callbacks(\"matcher\").call(this, this.at, _range.toString(), this.getOpt('startWithSpace'), this.getOpt(\"acceptSpaceBar\"));\n isString = typeof matched === 'string';\n if ($query.length === 0 && isString && (index = range.startOffset - this.at.length - matched.length) >= 0) {\n range.setStart(range.startContainer, index);\n $query = $('<span/>', this.app.document).attr(this.getOpt(\"editableAtwhoQueryAttrs\")).addClass('atwho-query');\n range.surroundContents($query.get(0));\n lastNode = $query.contents().last().get(0);\n if (lastNode) {\n if (/firefox/i.test(navigator.userAgent)) {\n range.setStart(lastNode, lastNode.length);\n range.setEnd(lastNode, lastNode.length);\n this._clearRange(range);\n } else {\n this._setRange('after', lastNode, range);\n }\n }\n }\n if (isString && matched.length < this.getOpt('minLen', 0)) {\n return;\n }\n if (isString && matched.length <= this.getOpt('maxLen', 20)) {\n query = {\n text: matched,\n el: $query\n };\n this.trigger(\"matched\", [this.at, query.text]);\n return this.query = query;\n } else {\n this.view.hide();\n this.query = {\n el: $query\n };\n if ($query.text().indexOf(this.at) >= 0) {\n if (this._movingEvent(e) && $query.hasClass('atwho-inserted')) {\n $query.removeClass('atwho-query');\n } else if (false !== this.callbacks('afterMatchFailed').call(this, this.at, $query)) {\n this._setRange(\"after\", this._unwrap($query.text($query.text()).contents().first()));\n }\n }\n return null;\n }\n };\n\n EditableController.prototype.rect = function() {\n var $iframe, iframeOffset, rect;\n rect = this.query.el.offset();\n if (!(rect && this.query.el[0].getClientRects().length)) {\n return;\n }\n if (this.app.iframe && !this.app.iframeAsRoot) {\n iframeOffset = ($iframe = $(this.app.iframe)).offset();\n rect.left += iframeOffset.left - this.$inputor.scrollLeft();\n rect.top += iframeOffset.top - this.$inputor.scrollTop();\n }\n rect.bottom = rect.top + this.query.el.height();\n return rect;\n };\n\n EditableController.prototype.insert = function(content, $li) {\n var data, overrides, range, suffix, suffixNode;\n if (!this.$inputor.is(':focus')) {\n this.$inputor.focus();\n }\n overrides = this.getOpt('functionOverrides');\n if (overrides.insert) {\n return overrides.insert.call(this, content, $li);\n }\n suffix = (suffix = this.getOpt('suffix')) === \"\" ? suffix : suffix || \"\\u00A0\";\n data = $li.data('item-data');\n this.query.el.removeClass('atwho-query').addClass('atwho-inserted').html(content).attr('data-atwho-at-query', \"\" + data['atwho-at'] + this.query.text).attr('contenteditable', \"false\");\n if (range = this._getRange()) {\n if (this.query.el.length) {\n range.setEndAfter(this.query.el[0]);\n }\n range.collapse(false);\n range.insertNode(suffixNode = this.app.document.createTextNode(\"\" + suffix));\n this._setRange('after', suffixNode, range);\n }\n if (!this.$inputor.is(':focus')) {\n this.$inputor.focus();\n }\n return this.$inputor.change();\n };\n\n return EditableController;\n\n})(Controller);\n\nvar Model;\n\nModel = (function() {\n function Model(context) {\n this.context = context;\n this.at = this.context.at;\n this.storage = this.context.$inputor;\n }\n\n Model.prototype.destroy = function() {\n return this.storage.data(this.at, null);\n };\n\n Model.prototype.saved = function() {\n return this.fetch() > 0;\n };\n\n Model.prototype.query = function(query, callback) {\n var _remoteFilter, data, searchKey;\n data = this.fetch();\n searchKey = this.context.getOpt(\"searchKey\");\n data = this.context.callbacks('filter').call(this.context, query, data, searchKey) || [];\n _remoteFilter = this.context.callbacks('remoteFilter');\n if (data.length > 0 || (!_remoteFilter && data.length === 0)) {\n return callback(data);\n } else {\n return _remoteFilter.call(this.context, query, callback);\n }\n };\n\n Model.prototype.fetch = function() {\n return this.storage.data(this.at) || [];\n };\n\n Model.prototype.save = function(data) {\n return this.storage.data(this.at, this.context.callbacks(\"beforeSave\").call(this.context, data || []));\n };\n\n Model.prototype.load = function(data) {\n if (!(this.saved() || !data)) {\n return this._load(data);\n }\n };\n\n Model.prototype.reload = function(data) {\n return this._load(data);\n };\n\n Model.prototype._load = function(data) {\n if (typeof data === \"string\") {\n throw new Error(\"@gitlab/at.js removed support for $.ajax\");\n } else {\n return this.save(data);\n }\n };\n\n return Model;\n\n})();\n\nvar View;\n\nView = (function() {\n function View(context) {\n this.context = context;\n this.$el = $(\"<div class='atwho-view'><ul class='atwho-view-ul'></ul></div>\");\n this.$elUl = this.$el.children();\n this.timeoutID = null;\n this.context.$el.append(this.$el);\n this.bindEvent();\n }\n\n View.prototype.init = function() {\n var header_tpl, id;\n id = this.context.getOpt(\"alias\") || this.context.at.charCodeAt(0);\n header_tpl = this.context.getOpt(\"headerTpl\");\n if (header_tpl && this.$el.children().length === 1) {\n this.$el.prepend(header_tpl);\n }\n return this.$el.attr({\n 'id': \"at-view-\" + id\n });\n };\n\n View.prototype.destroy = function() {\n return this.$el.remove();\n };\n\n View.prototype.bindEvent = function() {\n var $menu, lastCoordX, lastCoordY;\n $menu = this.$el.find('ul');\n lastCoordX = 0;\n lastCoordY = 0;\n return $menu.on('mousemove.atwho-view', 'li', (function(_this) {\n return function(e) {\n var $cur;\n if (lastCoordX === e.clientX && lastCoordY === e.clientY) {\n return;\n }\n lastCoordX = e.clientX;\n lastCoordY = e.clientY;\n $cur = $(e.currentTarget);\n if ($cur.hasClass('cur')) {\n return;\n }\n $menu.find('.cur').removeClass('cur');\n return $cur.addClass('cur');\n };\n })(this)).on('click.atwho-view', 'li', (function(_this) {\n return function(e) {\n $menu.find('.cur').removeClass('cur');\n $(e.currentTarget).addClass('cur');\n _this.choose(e);\n return e.preventDefault();\n };\n })(this));\n };\n\n View.prototype.visible = function() {\n return $.expr.filters.visible(this.$el[0]);\n };\n\n View.prototype.highlighted = function() {\n return this.$el.find(\".cur\").length > 0;\n };\n\n View.prototype.choose = function(e) {\n var $li, content;\n if (($li = this.$el.find(\".cur\")).length) {\n content = this.context.insertContentFor($li);\n this.context._stopDelayedCall();\n this.context.insert(this.context.callbacks(\"beforeInsert\").call(this.context, content, $li, e), $li);\n this.context.trigger(\"inserted\", [$li, e]);\n this.hide(e);\n }\n if (this.context.getOpt(\"hideWithoutSuffix\")) {\n return this.stopShowing = true;\n }\n };\n\n View.prototype.reposition = function(rect) {\n var _window, offset, overflowOffset, ref;\n _window = this.context.app.iframeAsRoot ? this.context.app.window : window;\n if (rect.bottom + this.$el.height() - $(_window).scrollTop() > $(_window).height()) {\n rect.bottom = rect.top - this.$el.height();\n }\n if (rect.left > (overflowOffset = $(_window).width() - this.$el.width() - 5)) {\n rect.left = overflowOffset;\n }\n offset = {\n left: rect.left,\n top: rect.bottom\n };\n if ((ref = this.context.callbacks(\"beforeReposition\")) != null) {\n ref.call(this.context, offset);\n }\n this.$el.offset(offset);\n return this.context.trigger(\"reposition\", [offset]);\n };\n\n View.prototype.next = function() {\n var cur, next, nextEl, offset;\n cur = this.$el.find('.cur').removeClass('cur');\n next = cur.next();\n if (!next.length) {\n next = this.$el.find('li:first');\n }\n next.addClass('cur');\n nextEl = next[0];\n offset = nextEl.offsetTop + nextEl.offsetHeight + (nextEl.nextSibling ? nextEl.nextSibling.offsetHeight : 0);\n return this.scrollTop(Math.max(0, offset - this.$el.height()));\n };\n\n View.prototype.prev = function() {\n var cur, offset, prev, prevEl;\n cur = this.$el.find('.cur').removeClass('cur');\n prev = cur.prev();\n if (!prev.length) {\n prev = this.$el.find('li:last');\n }\n prev.addClass('cur');\n prevEl = prev[0];\n offset = prevEl.offsetTop + prevEl.offsetHeight + (prevEl.nextSibling ? prevEl.nextSibling.offsetHeight : 0);\n return this.scrollTop(Math.max(0, offset - this.$el.height()));\n };\n\n View.prototype.scrollTop = function(scrollTop) {\n return this.$elUl.scrollTop(scrollTop);\n };\n\n View.prototype.show = function() {\n var rect;\n if (this.stopShowing) {\n this.stopShowing = false;\n return;\n }\n if (!this.visible()) {\n this.$el.show();\n this.$el.scrollTop(0);\n this.context.trigger('shown');\n }\n if (rect = this.context.rect()) {\n return this.reposition(rect);\n }\n };\n\n View.prototype.hide = function(e, time) {\n var callback;\n if (!this.visible()) {\n return;\n }\n if (isNaN(time)) {\n this.$el.hide();\n return this.context.trigger('hidden', [e]);\n } else {\n callback = (function(_this) {\n return function() {\n return _this.hide();\n };\n })(this);\n clearTimeout(this.timeoutID);\n return this.timeoutID = setTimeout(callback, time);\n }\n };\n\n View.prototype.render = function(list) {\n var $li, $ul, i, item, len, li, tpl;\n if (!($.isArray(list) && list.length > 0)) {\n this.hide();\n return;\n }\n this.$el.find('ul').empty();\n $ul = this.$el.find('ul');\n tpl = this.context.getOpt('displayTpl');\n for (i = 0, len = list.length; i < len; i++) {\n item = list[i];\n item = $.extend({}, item, {\n 'atwho-at': this.context.at\n });\n li = this.context.callbacks(\"tplEval\").call(this.context, tpl, item, \"onDisplay\");\n $li = $(this.context.callbacks(\"highlighter\").call(this.context, li, this.context.query.text));\n $li.data(\"item-data\", item);\n $ul.append($li);\n }\n this.show();\n if (this.context.getOpt('highlightFirst')) {\n return $ul.find(\"li:first\").addClass(\"cur\");\n }\n };\n\n return View;\n\n})();\n\nvar Api;\n\nApi = {\n load: function(at, data) {\n var c;\n if (c = this.controller(at)) {\n return c.model.load(data);\n }\n },\n isSelecting: function() {\n var ref;\n return !!((ref = this.controller()) != null ? ref.view.visible() : void 0);\n },\n hide: function() {\n var ref;\n return (ref = this.controller()) != null ? ref.view.hide() : void 0;\n },\n reposition: function() {\n var c;\n if (c = this.controller()) {\n return c.view.reposition(c.rect());\n }\n },\n setIframe: function(iframe, asRoot) {\n this.setupRootElement(iframe, asRoot);\n return null;\n },\n run: function() {\n return this.dispatch();\n },\n destroy: function() {\n this.shutdown();\n return this.$inputor.data('atwho', null);\n }\n};\n\n$.fn.atwho = function(method) {\n var _args, result;\n _args = arguments;\n result = null;\n this.filter('textarea, input, [contenteditable=\"\"], [contenteditable=true]').each(function() {\n var $this, app;\n if (!(app = ($this = $(this)).data(\"atwho\"))) {\n $this.data('atwho', (app = new App(this)));\n }\n if (typeof method === 'object' || !method) {\n return app.reg(method.at, method);\n } else if (Api[method] && app) {\n return result = Api[method].apply(app, Array.prototype.slice.call(_args, 1));\n } else {\n return $.error(\"Method \" + method + \" does not exist on jQuery.atwho\");\n }\n });\n if (result != null) {\n return result;\n } else {\n return this;\n }\n};\n\n$.fn.atwho[\"default\"] = {\n at: void 0,\n alias: void 0,\n data: null,\n displayTpl: \"<li>${name}</li>\",\n insertTpl: \"${atwho-at}${name}\",\n headerTpl: null,\n callbacks: DEFAULT_CALLBACKS,\n functionOverrides: {},\n searchKey: \"name\",\n suffix: void 0,\n hideWithoutSuffix: false,\n startWithSpace: true,\n acceptSpaceBar: false,\n highlightFirst: true,\n limit: 5,\n maxLen: 20,\n minLen: 0,\n displayTimeout: 300,\n delay: null,\n spaceSelectsMatch: false,\n tabSelectsMatch: true,\n editableAtwhoQueryAttrs: {},\n scrollDuration: 150,\n suspendOnComposing: true,\n lookUpOnClick: true\n};\n\n$.fn.atwho.debug = false;\n\n}));\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',_vm._b({attrs:{\"data-testid\":\"modal-commit\",\"modal-id\":_vm.modalId,\"size\":\"sm\",\"title\":_vm.modalTitle,\"action-cancel\":_vm.actionCancel,\"action-primary\":_vm.actionPrimary},on:{\"hidden\":_vm.resetModalHandler,\"primary\":_vm.handlePrimary}},'gl-modal',_vm.$attrs,false),[(_vm.prependedText.length)?_c('p',{attrs:{\"data-testid\":\"prepended-text\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.prependedText}})],1):_vm._e(),_vm._v(\" \"),_c('gl-form',{ref:\"form\",attrs:{\"action\":_vm.endpoint,\"method\":\"post\"}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"authenticity_token\"},domProps:{\"value\":_vm.$options.csrf.token}}),_vm._v(\" \"),(_vm.isCherryPick)?_c('gl-form-group',{attrs:{\"label\":_vm.i18n.projectLabel,\"label-for\":\"start_project\",\"data-testid\":\"dropdown-group\"}},[_c('input',{attrs:{\"id\":\"target_project_id\",\"type\":\"hidden\",\"name\":\"target_project_id\"},domProps:{\"value\":_vm.targetProjectId}}),_vm._v(\" \"),_c('projects-dropdown',{attrs:{\"value\":_vm.targetProjectName},on:{\"input\":_vm.setSelectedProject}})],1):_vm._e(),_vm._v(\" \"),_c('gl-form-group',{attrs:{\"label\":_vm.i18n.branchLabel,\"label-for\":\"start_branch\",\"data-testid\":\"dropdown-group\"}},[_c('input',{attrs:{\"id\":\"start_branch\",\"type\":\"hidden\",\"name\":\"start_branch\"},domProps:{\"value\":_vm.branch}}),_vm._v(\" \"),_c('branches-dropdown',{attrs:{\"value\":_vm.branch},on:{\"input\":_vm.setBranch}})],1),_vm._v(\" \"),(_vm.pushCode)?_c('gl-form-checkbox',{staticClass:\"gl-mt-3\",attrs:{\"name\":\"create_merge_request\"},model:{value:(_vm.checked),callback:function ($$v) {_vm.checked=$$v},expression:\"checked\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.i18n.startMergeRequest},scopedSlots:_vm._u([{key:\"newMergeRequest\",fn:function(){return [_c('strong',[_vm._v(_vm._s(_vm.i18n.newMergeRequest))])]},proxy:true}],null,false,1455792372)})],1):_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"create_merge_request\",\"value\":\"1\"}})],1),_vm._v(\" \"),(!_vm.pushCode)?_c('p',{staticClass:\"gl-mb-0 gl-mt-5\",attrs:{\"data-testid\":\"appended-text\"}},[(_vm.branchCollaboration)?_c('gl-sprintf',{attrs:{\"message\":_vm.i18n.existingBranch},scopedSlots:_vm._u([{key:\"branchName\",fn:function(){return [_c('strong',[_vm._v(_vm._s(_vm.existingBranch))])]},proxy:true}],null,false,2950121280)}):_c('gl-sprintf',{attrs:{\"message\":_vm.i18n.branchInFork}})],1):_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!./branches_dropdown.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!./branches_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport { debounce, uniqBy } from 'lodash';\nimport {\n I18N_NO_RESULTS_MESSAGE,\n I18N_BRANCH_HEADER,\n I18N_BRANCH_SEARCH_PLACEHOLDER,\n} from '../constants';\n\nexport default {\n name: 'BranchesDropdown',\n components: {\n GlCollapsibleListbox,\n },\n props: {\n value: {\n type: String,\n required: false,\n default: '',\n },\n },\n i18n: {\n noResultsMessage: I18N_NO_RESULTS_MESSAGE,\n branchHeaderTitle: I18N_BRANCH_HEADER,\n branchSearchPlaceholder: I18N_BRANCH_SEARCH_PLACEHOLDER,\n },\n data() {\n return {\n searchTerm: '',\n };\n },\n computed: {\n ...mapGetters(['joinedBranches']),\n ...mapState(['isFetching', 'branch']),\n listboxItems() {\n const selectedItem = { value: this.branch, text: this.branch };\n const transformedList = this.joinedBranches.map((value) => ({ value, text: value }));\n\n if (this.searchTerm) {\n return transformedList;\n }\n\n // Add selected item to top of list if not searching\n return uniqBy([selectedItem].concat(transformedList), 'value');\n },\n },\n mounted() {\n this.fetchBranches();\n },\n methods: {\n ...mapActions(['fetchBranches']),\n selectBranch(branch) {\n this.$emit('input', branch);\n },\n debouncedSearch: debounce(function debouncedSearch() {\n this.fetchBranches(this.searchTerm);\n }, 250),\n searchTermChanged(value) {\n this.searchTerm = value.trim();\n this.debouncedSearch(value);\n },\n },\n};\n</script>\n<template>\n <gl-collapsible-listbox\n class=\"gl-max-w-full\"\n :header-text=\"$options.i18n.branchHeaderTitle\"\n :toggle-text=\"value\"\n toggle-class=\"gl-w-full\"\n :items=\"listboxItems\"\n searchable\n :search-placeholder=\"$options.i18n.branchSearchPlaceholder\"\n :searching=\"isFetching\"\n :selected=\"value\"\n :no-results-text=\"$options.i18n.noResultsMessage\"\n @search=\"searchTermChanged\"\n @select=\"selectBranch\"\n />\n</template>\n","import { render, staticRenderFns } from \"./branches_dropdown.vue?vue&type=template&id=2a5aa854\"\nimport script from \"./branches_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./branches_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-collapsible-listbox',{staticClass:\"gl-max-w-full\",attrs:{\"header-text\":_vm.$options.i18n.branchHeaderTitle,\"toggle-text\":_vm.value,\"toggle-class\":\"gl-w-full\",\"items\":_vm.listboxItems,\"searchable\":\"\",\"search-placeholder\":_vm.$options.i18n.branchSearchPlaceholder,\"searching\":_vm.isFetching,\"selected\":_vm.value,\"no-results-text\":_vm.$options.i18n.noResultsMessage},on:{\"search\":_vm.searchTermChanged,\"select\":_vm.selectBranch}})\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!./projects_dropdown.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!./projects_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapState } from 'vuex';\nimport { debounce, uniqBy } from 'lodash';\nimport {\n I18N_NO_RESULTS_MESSAGE,\n I18N_PROJECT_HEADER,\n I18N_PROJECT_SEARCH_PLACEHOLDER,\n} from '../constants';\n\nexport default {\n name: 'ProjectsDropdown',\n components: {\n GlCollapsibleListbox,\n },\n props: {\n value: {\n type: String,\n required: false,\n default: '',\n },\n },\n i18n: {\n noResultsMessage: I18N_NO_RESULTS_MESSAGE,\n projectHeaderTitle: I18N_PROJECT_HEADER,\n projectSearchPlaceholder: I18N_PROJECT_SEARCH_PLACEHOLDER,\n },\n data() {\n return {\n filterTerm: '',\n };\n },\n computed: {\n ...mapGetters(['sortedProjects']),\n ...mapState(['targetProjectId']),\n filteredResults() {\n const lowerCasedFilterTerm = this.filterTerm.toLowerCase();\n return this.sortedProjects.filter((project) =>\n project.name.toLowerCase().includes(lowerCasedFilterTerm),\n );\n },\n listboxItems() {\n const selectedItem = { value: this.selectedProject.id, text: this.selectedProject.name };\n const transformedList = this.filteredResults.map(({ id, name }) => ({\n value: id,\n text: name,\n }));\n\n if (this.filterTerm) {\n return transformedList;\n }\n\n // Add selected item to top of list if not searching\n return uniqBy([selectedItem].concat(transformedList), 'value');\n },\n selectedProject() {\n return this.sortedProjects.find((project) => project.id === this.targetProjectId) || {};\n },\n },\n methods: {\n selectProject(value) {\n this.$emit('input', value);\n },\n debouncedSearch: debounce(function debouncedSearch(value) {\n this.filterTerm = value.trim();\n }, 250),\n },\n};\n</script>\n<template>\n <gl-collapsible-listbox\n class=\"gl-max-w-full\"\n :header-text=\"$options.i18n.projectHeaderTitle\"\n :items=\"listboxItems\"\n searchable\n :search-placeholder=\"$options.i18n.projectSearchPlaceholder\"\n :selected=\"selectedProject.id\"\n :toggle-text=\"selectedProject.name\"\n toggle-class=\"gl-w-full\"\n :no-results-text=\"$options.i18n.noResultsMessage\"\n @search=\"debouncedSearch\"\n @select=\"selectProject\"\n />\n</template>\n","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!./form_modal.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!./form_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlModal, GlForm, GlFormCheckbox, GlSprintf, GlFormGroup } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapState } from 'vuex';\nimport api from '~/api';\nimport { BV_SHOW_MODAL } from '~/lib/utils/constants';\nimport csrf from '~/lib/utils/csrf';\nimport eventHub from '../event_hub';\nimport BranchesDropdown from './branches_dropdown.vue';\nimport ProjectsDropdown from './projects_dropdown.vue';\n\nexport default {\n components: {\n BranchesDropdown,\n ProjectsDropdown,\n GlModal,\n GlForm,\n GlFormCheckbox,\n GlSprintf,\n GlFormGroup,\n },\n inject: {\n prependedText: {\n default: '',\n },\n },\n props: {\n i18n: {\n type: Object,\n required: true,\n },\n openModal: {\n type: String,\n required: true,\n },\n modalId: {\n type: String,\n required: true,\n },\n isCherryPick: {\n type: Boolean,\n required: false,\n default: false,\n },\n primaryActionEventName: {\n type: String,\n required: false,\n default: null,\n },\n },\n data() {\n return {\n checked: true,\n actionPrimary: {\n text: this.i18n.actionPrimaryText,\n attributes: {\n variant: 'confirm',\n category: 'primary',\n 'data-testid': 'submit-commit',\n },\n },\n actionCancel: {\n text: this.i18n.actionCancelText,\n attributes: { 'data-testid': 'cancel-commit' },\n },\n };\n },\n computed: {\n ...mapState([\n 'branch',\n 'endpoint',\n 'pushCode',\n 'branchCollaboration',\n 'modalTitle',\n 'existingBranch',\n 'targetProjectId',\n 'targetProjectName',\n 'branchesEndpoint',\n ]),\n },\n mounted() {\n eventHub.$on(this.openModal, this.show);\n },\n methods: {\n ...mapActions(['clearModal', 'setBranch', 'setSelectedBranch', 'setSelectedProject']),\n show() {\n this.$root.$emit(BV_SHOW_MODAL, this.modalId);\n },\n handlePrimary() {\n if (this.primaryActionEventName) {\n api.trackRedisHllUserEvent(this.primaryActionEventName);\n }\n\n this.$refs.form.$el.submit();\n },\n resetModalHandler() {\n this.clearModal();\n this.setSelectedBranch('');\n this.checked = true;\n },\n },\n csrf,\n};\n</script>\n<template>\n <gl-modal\n v-bind=\"$attrs\"\n data-testid=\"modal-commit\"\n :modal-id=\"modalId\"\n size=\"sm\"\n :title=\"modalTitle\"\n :action-cancel=\"actionCancel\"\n :action-primary=\"actionPrimary\"\n @hidden=\"resetModalHandler\"\n @primary=\"handlePrimary\"\n >\n <p v-if=\"prependedText.length\" data-testid=\"prepended-text\">\n <gl-sprintf :message=\"prependedText\" />\n </p>\n\n <gl-form ref=\"form\" :action=\"endpoint\" method=\"post\">\n <input type=\"hidden\" name=\"authenticity_token\" :value=\"$options.csrf.token\" />\n\n <gl-form-group\n v-if=\"isCherryPick\"\n :label=\"i18n.projectLabel\"\n label-for=\"start_project\"\n data-testid=\"dropdown-group\"\n >\n <input\n id=\"target_project_id\"\n type=\"hidden\"\n name=\"target_project_id\"\n :value=\"targetProjectId\"\n />\n\n <projects-dropdown :value=\"targetProjectName\" @input=\"setSelectedProject\" />\n </gl-form-group>\n\n <gl-form-group\n :label=\"i18n.branchLabel\"\n label-for=\"start_branch\"\n data-testid=\"dropdown-group\"\n >\n <input id=\"start_branch\" type=\"hidden\" name=\"start_branch\" :value=\"branch\" />\n\n <branches-dropdown :value=\"branch\" @input=\"setBranch\" />\n </gl-form-group>\n\n <gl-form-checkbox\n v-if=\"pushCode\"\n v-model=\"checked\"\n name=\"create_merge_request\"\n class=\"gl-mt-3\"\n >\n <gl-sprintf :message=\"i18n.startMergeRequest\">\n <template #newMergeRequest>\n <strong>{{ i18n.newMergeRequest }}</strong>\n </template>\n </gl-sprintf>\n </gl-form-checkbox>\n <input v-else type=\"hidden\" name=\"create_merge_request\" value=\"1\" />\n </gl-form>\n\n <p v-if=\"!pushCode\" class=\"gl-mb-0 gl-mt-5\" data-testid=\"appended-text\">\n <gl-sprintf v-if=\"branchCollaboration\" :message=\"i18n.existingBranch\">\n <template #branchName>\n <strong>{{ existingBranch }}</strong>\n </template>\n </gl-sprintf>\n <gl-sprintf v-else :message=\"i18n.branchInFork\" />\n </p>\n </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./projects_dropdown.vue?vue&type=template&id=31e2772d\"\nimport script from \"./projects_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./projects_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-collapsible-listbox',{staticClass:\"gl-max-w-full\",attrs:{\"header-text\":_vm.$options.i18n.projectHeaderTitle,\"items\":_vm.listboxItems,\"searchable\":\"\",\"search-placeholder\":_vm.$options.i18n.projectSearchPlaceholder,\"selected\":_vm.selectedProject.id,\"toggle-text\":_vm.selectedProject.name,\"toggle-class\":\"gl-w-full\",\"no-results-text\":_vm.$options.i18n.noResultsMessage},on:{\"search\":_vm.debouncedSearch,\"select\":_vm.selectProject}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./form_modal.vue?vue&type=template&id=1e9c1fcb\"\nimport script from \"./form_modal.vue?vue&type=script&lang=js\"\nexport * from \"./form_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","// Standard YAML's Failsafe schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2802346\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n explicit: [\n require('../type/str'),\n require('../type/seq'),\n require('../type/map')\n ]\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"editNoteForm\",staticClass:\"note-edit-form current-note-edit-form js-discussion-note-form\"},[(_vm.conflictWhileEditing)?_c('div',{staticClass:\"js-conflict-edit-warning alert alert-danger\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.changedCommentText.text,\"placeholders\":_vm.changedCommentText.placeholder},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.noteHash,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}}],null,false,2525184110)})],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"flash-container\"}),_vm._v(\" \"),_c('form',{staticClass:\"edit-note common-note-form js-quick-submit gfm-form\",attrs:{\"data-line-code\":_vm.lineCode}},[_c('comment-field-layout',{attrs:{\"is-internal-note\":_vm.discussionNote.internal,\"note\":_vm.updatedNoteBody,\"noteable-data\":_vm.getNoteableData}},[_c('markdown-editor',{ref:\"markdownEditor\",attrs:{\"value\":_vm.updatedNoteBody,\"render-markdown-path\":_vm.markdownPreviewPath,\"markdown-docs-path\":_vm.markdownDocsPath,\"code-suggestions-config\":_vm.codeSuggestionsConfig,\"add-spacing-classes\":false,\"help-page-path\":_vm.helpPagePath,\"note\":_vm.discussionNote,\"noteable-type\":_vm.noteableType,\"form-field-props\":_vm.formFieldProps,\"autosave-key\":_vm.autosaveKey,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"disabled\":_vm.shouldDisableField,\"supports-quick-actions\":\"\",\"autofocus\":_vm.autofocus,\"restore-from-autosave\":_vm.restoreFromAutosave},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.shiftKey)return null;if(!$event.metaKey)return null;_vm.handleKeySubmit((_vm.forceUpdate = true))},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.shiftKey)return null;if(!$event.ctrlKey)return null;_vm.handleKeySubmit((_vm.forceUpdate = true))},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.metaKey)return null;if($event.ctrlKey||$event.shiftKey||$event.altKey)return null;return _vm.handleKeySubmit()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.ctrlKey)return null;if($event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.handleKeySubmit()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.editMyLastNote()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;if($event.ctrlKey||$event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.cancelHandler(true)}],\"input\":_vm.onInput,\"handleSuggestDismissed\":() => _vm.$emit('handleSuggestDismissed')}})],1),_vm._v(\" \"),(_vm.glAbilities.measureCommentTemperature)?_c('comment-temperature',{ref:\"commentTemperature\",attrs:{\"item-id\":_vm.getNoteableData.id,\"item-type\":_vm.getNoteableData.noteableType,\"user-id\":_vm.currentUserId},on:{\"save\":function($event){return _vm.onSaveHandler()}},model:{value:(_vm.updatedNoteBody),callback:function ($$v) {_vm.updatedNoteBody=$$v},expression:\"updatedNoteBody\"}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"note-form-actions gl-font-size-0\"},[(_vm.showResolveDiscussionToggle)?[_c('label',[(_vm.discussionResolved)?[_c('gl-form-checkbox',{staticClass:\"js-unresolve-checkbox\",model:{value:(_vm.isUnresolving),callback:function ($$v) {_vm.isUnresolving=$$v},expression:\"isUnresolving\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Unresolve thread'))+\"\\n \")])]:[_c('gl-form-checkbox',{staticClass:\"js-resolve-checkbox\",model:{value:(_vm.isResolving),callback:function ($$v) {_vm.isResolving=$$v},expression:\"isResolving\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Resolve thread'))+\"\\n \")])]],2)]:_vm._e(),_vm._v(\" \"),(_vm.showBatchCommentsActions)?[_c('div',{staticClass:\"-gl-mb-3 gl-flex gl-flex-wrap\"},[_c('gl-button',{staticClass:\"gl-mb-3 sm:gl-mr-3\",attrs:{\"disabled\":_vm.isDisabled,\"category\":\"primary\",\"variant\":\"confirm\",\"data-testid\":\"start-review-button\"},on:{\"click\":_vm.handleAddToReview}},[(_vm.hasDrafts)?[_vm._v(_vm._s(_vm.__('Add to review')))]:[_vm._v(_vm._s(_vm.__('Start a review')))]],2),_vm._v(\" \"),_c('gl-button',{staticClass:\"js-comment-button gl-mb-3 sm:gl-mr-3\",attrs:{\"disabled\":_vm.isDisabled,\"category\":\"secondary\",\"variant\":\"confirm\",\"data-testid\":\"comment-now-button\"},on:{\"click\":function($event){return _vm.handleUpdate()}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Add comment now'))+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"note-edit-cancel js-close-discussion-note-form gl-mb-3\",attrs:{\"category\":\"secondary\",\"variant\":\"default\",\"data-testid\":\"cancelBatchCommentsEnabled\"},on:{\"click\":function($event){return _vm.cancelHandler(true)}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Cancel'))+\"\\n \")])],1)]:[_c('div',{staticClass:\"gl-display-sm-flex gl-font-size-0 gl-flex-wrap\"},[_c('gl-button',{staticClass:\"js-vue-issue-save js-comment-button gl-mb-3 sm:gl-mb-0 sm:gl-mr-3\",attrs:{\"disabled\":_vm.isDisabled,\"category\":\"primary\",\"variant\":\"confirm\",\"data-testid\":\"reply-comment-button\"},on:{\"click\":function($event){return _vm.handleUpdate()}}},[_vm._v(\"\\n \"+_vm._s(_vm.saveButtonTitle)+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"note-edit-cancel js-close-discussion-note-form\",attrs:{\"category\":\"secondary\",\"variant\":\"default\",\"data-testid\":\"cancel\"},on:{\"click\":function($event){return _vm.cancelHandler(true)}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Cancel'))+\"\\n \")])],1)]],2)],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!./note_form.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!./note_form.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlSprintf, GlLink, GlFormCheckbox } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions, mapState } from 'vuex';\nimport { mergeUrlParams } from '~/lib/utils/url_utility';\nimport { __ } from '~/locale';\nimport glAbilitiesMixin from '~/vue_shared/mixins/gl_abilities_mixin';\nimport MarkdownEditor from '~/vue_shared/components/markdown/markdown_editor.vue';\nimport { trackSavedUsingEditor } from '~/vue_shared/components/markdown/tracking';\nimport eventHub from '../event_hub';\nimport issuableStateMixin from '../mixins/issuable_state';\nimport resolvable from '../mixins/resolvable';\nimport { COMMENT_FORM } from '../i18n';\nimport { isSlashCommand } from '../utils';\nimport CommentFieldLayout from './comment_field_layout.vue';\n\nexport default {\n i18n: COMMENT_FORM,\n name: 'NoteForm',\n components: {\n MarkdownEditor,\n CommentFieldLayout,\n GlButton,\n GlSprintf,\n GlLink,\n GlFormCheckbox,\n CommentTemperature: () =>\n import(\n /* webpackChunkName: 'comment_temperature' */ 'ee_component/ai/components/comment_temperature.vue'\n ),\n },\n mixins: [issuableStateMixin, resolvable, glAbilitiesMixin()],\n props: {\n noteBody: {\n type: String,\n required: false,\n default: '',\n },\n noteId: {\n type: [String, Number],\n required: false,\n default: '',\n },\n saveButtonTitle: {\n type: String,\n required: false,\n default: __('Save comment'),\n },\n discussion: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n lineCode: {\n type: String,\n required: false,\n default: '',\n },\n resolveDiscussion: {\n type: Boolean,\n required: false,\n default: false,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n lines: {\n type: Array,\n required: false,\n default: () => [],\n },\n note: {\n type: Object,\n required: false,\n default: null,\n },\n diffFile: {\n type: Object,\n required: false,\n default: null,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n autosaveKey: {\n type: String,\n required: false,\n default: '',\n },\n showSuggestPopover: {\n type: Boolean,\n required: false,\n default: false,\n },\n isDraft: {\n type: Boolean,\n required: false,\n default: false,\n },\n autofocus: {\n type: Boolean,\n required: false,\n default: true,\n },\n restoreFromAutosave: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n updatedNoteBody: this.noteBody,\n conflictWhileEditing: false,\n isSubmitting: false,\n isMeasuringCommentTemperature: false,\n isResolving: this.resolveDiscussion,\n isUnresolving: !this.resolveDiscussion,\n onSaveHandler: null,\n resolveAsThread: true,\n isSubmittingWithKeydown: false,\n formFieldProps: {\n id: 'note_note',\n name: 'note[note]',\n 'aria-label': __('Reply to comment'),\n placeholder: this.$options.i18n.bodyPlaceholder,\n class: 'note-textarea js-gfm-input js-note-text markdown-area js-vue-issue-note-form',\n 'data-testid': 'reply-field',\n },\n };\n },\n computed: {\n ...mapGetters([\n 'getDiscussionLastNote',\n 'getNoteableData',\n 'getNoteableDataByProp',\n 'getNotesDataByProp',\n 'getUserDataByProp',\n ]),\n ...mapState({\n withBatchComments: (state) => state.batchComments?.withBatchComments,\n }),\n ...mapGetters('batchComments', ['hasDrafts']),\n autocompleteDataSources() {\n return gl.GfmAutoComplete?.dataSources;\n },\n showBatchCommentsActions() {\n return this.withBatchComments && this.noteId === '' && !this.discussion.for_commit;\n },\n showResolveDiscussionToggle() {\n if (!this.discussion?.notes) return false;\n\n return (\n this.discussion?.notes\n .filter((n) => n.resolvable)\n .some((n) => n.current_user?.can_resolve_discussion) || this.isDraft\n );\n },\n noteHash() {\n if (this.noteId) {\n return `#note_${this.noteId}`;\n }\n return '#';\n },\n noteableType() {\n return this.getNoteableData.noteableType;\n },\n diffParams() {\n if (this.diffFile) {\n return {\n filePath: this.diffFile.file_path,\n refs: this.diffFile.diff_refs,\n };\n }\n if (this.note && this.note.position) {\n return {\n filePath: this.note.position.new_path,\n refs: this.note.position,\n };\n }\n if (this.discussion && this.discussion.diff_file) {\n return {\n filePath: this.discussion.diff_file.file_path,\n refs: this.discussion.diff_file.diff_refs,\n };\n }\n\n return null;\n },\n markdownPreviewPath() {\n const notable = this.getNoteableDataByProp('preview_note_path');\n\n const previewSuggestions = this.line && this.diffParams;\n const params = previewSuggestions\n ? {\n preview_suggestions: previewSuggestions,\n line: this.line.new_line,\n file_path: this.diffParams.filePath,\n base_sha: this.diffParams.refs.base_sha,\n start_sha: this.diffParams.refs.start_sha,\n head_sha: this.diffParams.refs.head_sha,\n }\n : {};\n\n return mergeUrlParams(params, notable);\n },\n markdownDocsPath() {\n return this.getNotesDataByProp('markdownDocsPath');\n },\n currentUserId() {\n return this.getUserDataByProp('id');\n },\n isDisabled() {\n return !this.updatedNoteBody.length || this.isSubmitting;\n },\n isInternalNote() {\n return this.discussionNote.internal || this.discussion.confidential;\n },\n discussionNote() {\n const discussionNote = this.discussion.id\n ? this.getDiscussionLastNote(this.discussion)\n : this.note;\n return discussionNote || {};\n },\n canSuggest() {\n return (\n this.getNoteableData.can_receive_suggestion && this.line && this.line.can_receive_suggestion\n );\n },\n changedCommentText() {\n return {\n text: __(\n 'This comment changed after you started editing it. Review the %{startTag}updated comment%{endTag} to ensure information is not lost.',\n ),\n placeholder: { link: ['startTag', 'endTag'] },\n };\n },\n codeSuggestionsConfig() {\n return {\n canSuggest: this.canSuggest,\n line: this.line,\n lines: this.lines,\n showPopover: this.showSuggestPopover,\n diffFile: this.diffFile,\n };\n },\n shouldDisableField() {\n return this.isSubmitting && !this.isMeasuringCommentTemperature;\n },\n shouldMeasureNoteTemperature() {\n return !isSlashCommand(this.updatedNoteBody) && this.glAbilities.measureCommentTemperature;\n },\n },\n watch: {\n noteBody() {\n if (this.updatedNoteBody === this.noteBody) {\n this.updatedNoteBody = this.noteBody;\n } else {\n this.conflictWhileEditing = true;\n }\n },\n },\n mounted() {\n this.updatePlaceholder();\n },\n methods: {\n ...mapActions(['toggleResolveNote']),\n shouldToggleResolved(beforeSubmitDiscussionState) {\n return (\n this.showResolveDiscussionToggle && beforeSubmitDiscussionState !== this.newResolvedState()\n );\n },\n newResolvedState() {\n return (\n (this.discussionResolved && !this.isUnresolving) ||\n (!this.discussionResolved && this.isResolving)\n );\n },\n editMyLastNote() {\n if (this.updatedNoteBody === '') {\n const lastNoteInDiscussion = this.getDiscussionLastNote(this.discussion);\n\n if (lastNoteInDiscussion) {\n eventHub.$emit('enterEditMode', {\n noteId: lastNoteInDiscussion.id,\n });\n }\n }\n },\n cancelHandler(shouldConfirm = false) {\n // check if any dropdowns are active before sending the cancelation event\n if (\n !this.$refs.markdownEditor.$el\n .querySelector('textarea')\n ?.classList.contains('at-who-active')\n ) {\n this.$emit('cancelForm', shouldConfirm, this.noteBody !== this.updatedNoteBody);\n }\n },\n updatePlaceholder() {\n this.formFieldProps.placeholder = this.discussionNote?.internal\n ? this.$options.i18n.bodyPlaceholderInternal\n : this.$options.i18n.bodyPlaceholder;\n },\n onInput(value) {\n this.updatedNoteBody = value;\n },\n append(value) {\n this.$refs.markdownEditor.append(value);\n },\n handleKeySubmit(forceUpdate = false) {\n if (this.showBatchCommentsActions && !forceUpdate) {\n this.handleAddToReview();\n } else {\n this.isSubmittingWithKeydown = true;\n this.handleUpdate();\n }\n if (!this.isMeasuringCommentTemperature) {\n this.updatedNoteBody = '';\n }\n },\n runCommentTemperatureMeasurement(onSaveHandler) {\n this.isMeasuringCommentTemperature = true;\n this.$refs.commentTemperature.measureCommentTemperature();\n this.onSaveHandler = this[onSaveHandler].bind(this, { shouldMeasureTemperature: false });\n },\n handleUpdate({ shouldMeasureTemperature = true } = {}) {\n const beforeSubmitDiscussionState = this.discussionResolved;\n this.isSubmitting = true;\n if (shouldMeasureTemperature && this.shouldMeasureNoteTemperature) {\n this.runCommentTemperatureMeasurement('handleUpdate');\n return;\n }\n\n this.isMeasuringCommentTemperature = false;\n\n trackSavedUsingEditor(\n this.$refs.markdownEditor.isContentEditorActive,\n `${this.noteableType}_note`,\n );\n\n this.$emit(\n 'handleFormUpdate',\n this.updatedNoteBody,\n this.$refs.editNoteForm,\n () => {\n this.isSubmitting = false;\n\n if (this.shouldToggleResolved(beforeSubmitDiscussionState)) {\n this.resolveHandler(beforeSubmitDiscussionState);\n }\n },\n this.discussionResolved ? !this.isUnresolving : this.isResolving,\n );\n },\n handleAddToReview({ shouldMeasureTemperature = true } = {}) {\n const clickType = this.hasDrafts ? 'noteFormAddToReview' : 'noteFormStartReview';\n // check if draft should resolve thread\n const shouldResolve =\n (this.discussionResolved && !this.isUnresolving) ||\n (!this.discussionResolved && this.isResolving);\n this.isSubmitting = true;\n if (shouldMeasureTemperature && this.shouldMeasureNoteTemperature) {\n this.runCommentTemperatureMeasurement('handleAddToReview');\n return;\n }\n\n this.isMeasuringCommentTemperature = false;\n\n eventHub.$emit(clickType, { name: clickType });\n this.$emit(\n 'handleFormUpdateAddToReview',\n this.updatedNoteBody,\n shouldResolve,\n this.$refs.editNoteForm,\n () => {\n this.isSubmitting = false;\n },\n );\n },\n hasEmailParticipants() {\n return this.getNoteableData.issue_email_participants?.length;\n },\n },\n};\n</script>\n\n<template>\n <div ref=\"editNoteForm\" class=\"note-edit-form current-note-edit-form js-discussion-note-form\">\n <div v-if=\"conflictWhileEditing\" class=\"js-conflict-edit-warning alert alert-danger\">\n <gl-sprintf :message=\"changedCommentText.text\" :placeholders=\"changedCommentText.placeholder\">\n <template #link=\"{ content }\">\n <gl-link :href=\"noteHash\" target=\"_blank\">{{ content }}</gl-link>\n </template>\n </gl-sprintf>\n </div>\n <div class=\"flash-container\"></div>\n <form :data-line-code=\"lineCode\" class=\"edit-note common-note-form js-quick-submit gfm-form\">\n <comment-field-layout\n :is-internal-note=\"discussionNote.internal\"\n :note=\"updatedNoteBody\"\n :noteable-data=\"getNoteableData\"\n >\n <markdown-editor\n ref=\"markdownEditor\"\n :value=\"updatedNoteBody\"\n :render-markdown-path=\"markdownPreviewPath\"\n :markdown-docs-path=\"markdownDocsPath\"\n :code-suggestions-config=\"codeSuggestionsConfig\"\n :add-spacing-classes=\"false\"\n :help-page-path=\"helpPagePath\"\n :note=\"discussionNote\"\n :noteable-type=\"noteableType\"\n :form-field-props=\"formFieldProps\"\n :autosave-key=\"autosaveKey\"\n :autocomplete-data-sources=\"autocompleteDataSources\"\n :disabled=\"shouldDisableField\"\n supports-quick-actions\n :autofocus=\"autofocus\"\n :restore-from-autosave=\"restoreFromAutosave\"\n @keydown.shift.meta.enter=\"handleKeySubmit((forceUpdate = true))\"\n @keydown.shift.ctrl.enter=\"handleKeySubmit((forceUpdate = true))\"\n @keydown.meta.enter.exact=\"handleKeySubmit()\"\n @keydown.ctrl.enter.exact=\"handleKeySubmit()\"\n @keydown.exact.up=\"editMyLastNote()\"\n @keydown.exact.esc=\"cancelHandler(true)\"\n @input=\"onInput\"\n @handleSuggestDismissed=\"() => $emit('handleSuggestDismissed')\"\n />\n </comment-field-layout>\n <comment-temperature\n v-if=\"glAbilities.measureCommentTemperature\"\n ref=\"commentTemperature\"\n v-model=\"updatedNoteBody\"\n :item-id=\"getNoteableData.id\"\n :item-type=\"getNoteableData.noteableType\"\n :user-id=\"currentUserId\"\n @save=\"onSaveHandler()\"\n />\n <div class=\"note-form-actions gl-font-size-0\">\n <template v-if=\"showResolveDiscussionToggle\">\n <label>\n <template v-if=\"discussionResolved\">\n <gl-form-checkbox v-model=\"isUnresolving\" class=\"js-unresolve-checkbox\">\n {{ __('Unresolve thread') }}\n </gl-form-checkbox>\n </template>\n <template v-else>\n <gl-form-checkbox v-model=\"isResolving\" class=\"js-resolve-checkbox\">\n {{ __('Resolve thread') }}\n </gl-form-checkbox>\n </template>\n </label>\n </template>\n\n <template v-if=\"showBatchCommentsActions\">\n <div class=\"-gl-mb-3 gl-flex gl-flex-wrap\">\n <gl-button\n :disabled=\"isDisabled\"\n category=\"primary\"\n variant=\"confirm\"\n class=\"gl-mb-3 sm:gl-mr-3\"\n data-testid=\"start-review-button\"\n @click=\"handleAddToReview\"\n >\n <template v-if=\"hasDrafts\">{{ __('Add to review') }}</template>\n <template v-else>{{ __('Start a review') }}</template>\n </gl-button>\n <gl-button\n :disabled=\"isDisabled\"\n category=\"secondary\"\n variant=\"confirm\"\n data-testid=\"comment-now-button\"\n class=\"js-comment-button gl-mb-3 sm:gl-mr-3\"\n @click=\"handleUpdate()\"\n >\n {{ __('Add comment now') }}\n </gl-button>\n <gl-button\n class=\"note-edit-cancel js-close-discussion-note-form gl-mb-3\"\n category=\"secondary\"\n variant=\"default\"\n data-testid=\"cancelBatchCommentsEnabled\"\n @click=\"cancelHandler(true)\"\n >\n {{ __('Cancel') }}\n </gl-button>\n </div>\n </template>\n <template v-else>\n <div class=\"gl-display-sm-flex gl-font-size-0 gl-flex-wrap\">\n <gl-button\n :disabled=\"isDisabled\"\n category=\"primary\"\n variant=\"confirm\"\n data-testid=\"reply-comment-button\"\n class=\"js-vue-issue-save js-comment-button gl-mb-3 sm:gl-mb-0 sm:gl-mr-3\"\n @click=\"handleUpdate()\"\n >\n {{ saveButtonTitle }}\n </gl-button>\n <gl-button\n class=\"note-edit-cancel js-close-discussion-note-form\"\n category=\"secondary\"\n variant=\"default\"\n data-testid=\"cancel\"\n @click=\"cancelHandler(true)\"\n >\n {{ __('Cancel') }}\n </gl-button>\n </div>\n </template>\n </div>\n </form>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_form.vue?vue&type=template&id=30ac93d9\"\nimport script from \"./note_form.vue?vue&type=script&lang=js\"\nexport * from \"./note_form.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\":\"ObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"CachedPayload\"},\"interfaces\":[],\"directives\":[],\"fields\":[{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"profileType\"},\"arguments\":[],\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"arguments\":[],\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}]},{\"kind\":\"InputObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"CachedPayloadInput\"},\"directives\":[],\"fields\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"profileType\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}]},{\"kind\":\"ObjectTypeDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"SharedData\"},\"interfaces\":[],\"directives\":[],\"fields\":[{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"showDiscardChangesModal\"},\"arguments\":[],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"formTouched\"},\"arguments\":[],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"history\"},\"arguments\":[],\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CachedPayload\"}}}}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"cachedPayload\"},\"arguments\":[],\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CachedPayload\"}}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"resetAndClose\"},\"arguments\":[],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"directives\":[]}]},{\"kind\":\"ObjectTypeExtension\",\"name\":{\"kind\":\"Name\",\"value\":\"Query\"},\"interfaces\":[],\"directives\":[],\"fields\":[{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"sharedData\"},\"arguments\":[],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"SharedData\"}},\"directives\":[]}]},{\"kind\":\"ObjectTypeExtension\",\"name\":{\"kind\":\"Name\",\"value\":\"Mutation\"},\"interfaces\":[],\"directives\":[],\"fields\":[{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"discardChanges\"},\"arguments\":[],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalErrors\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"goBack\"},\"arguments\":[],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalErrors\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"goFirstStep\"},\"arguments\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"profileType\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalErrors\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"goForward\"},\"arguments\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"profileType\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalErrors\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"resetHistory\"},\"arguments\":[],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalErrors\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"setCachedPayload\"},\"arguments\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"cachedPayload\"},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CachedPayloadInput\"}},\"directives\":[]}],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalErrors\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"setFormTouched\"},\"arguments\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"formTouched\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]}],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalErrors\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"setResetAndClose\"},\"arguments\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"resetAndClose\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]}],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalErrors\"}},\"directives\":[]},{\"kind\":\"FieldDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"toggleModal\"},\"arguments\":[{\"kind\":\"InputValueDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"showDiscardChangesModal\"},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}}},\"directives\":[]}],\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"LocalErrors\"}},\"directives\":[]}]}],\"loc\":{\"start\":0,\"end\":815}};\n doc.loc.source = {\"body\":\"type CachedPayload {\\n profileType: String!\\n mode: String!\\n}\\n\\ninput CachedPayloadInput {\\n profileType: String!\\n mode: String!\\n}\\n\\ntype SharedData {\\n showDiscardChangesModal: Boolean\\n formTouched: Boolean\\n history: [CachedPayload!]!\\n cachedPayload: CachedPayload!\\n resetAndClose: Boolean\\n}\\n\\nextend type Query {\\n sharedData: SharedData\\n}\\n\\nextend type Mutation {\\n discardChanges: LocalErrors\\n goBack: LocalErrors\\n goFirstStep(profileType: String!, mode: String!): LocalErrors\\n goForward(profileType: String!, mode: String!): LocalErrors\\n resetHistory: LocalErrors\\n setCachedPayload(cachedPayload: CachedPayloadInput): LocalErrors\\n setFormTouched(formTouched: Boolean!): LocalErrors\\n setResetAndClose(resetAndClose: Boolean!): LocalErrors\\n toggleModal(showDiscardChangesModal: Boolean!): LocalErrors\\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 module.exports = doc;\n \n","import { s__ } from '~/locale';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { NAMESPACE_TYPES } from 'ee/security_orchestration/constants';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { isGroup } from 'ee/security_orchestration/components/utils';\nimport { mapToListboxItems } from 'ee/security_orchestration/utils';\n\nexport const BLOCK_BRANCH_MODIFICATION = 'block_branch_modification';\nexport const BLOCK_GROUP_BRANCH_MODIFICATION = 'block_group_branch_modification';\nexport const PREVENT_PUSHING_AND_FORCE_PUSHING = 'prevent_pushing_and_force_pushing';\nexport const PREVENT_APPROVAL_BY_AUTHOR = 'prevent_approval_by_author';\nexport const PREVENT_APPROVAL_BY_COMMIT_AUTHOR = 'prevent_approval_by_commit_author';\nexport const REMOVE_APPROVALS_WITH_NEW_COMMIT = 'remove_approvals_with_new_commit';\nexport const REQUIRE_PASSWORD_TO_APPROVE = 'require_password_to_approve';\n\n// This defines behavior for existing policies. They shouldn't automatically opt-in to use this setting.\nexport const protectedBranchesConfiguration = {\n [BLOCK_BRANCH_MODIFICATION]: false,\n};\n\n// This defines behavior for existing policies. They shouldn't automatically opt-in to use this setting.\nexport const groupProtectedBranchesConfiguration = (blockBranchModificationValue = false) => ({\n [BLOCK_GROUP_BRANCH_MODIFICATION]: blockBranchModificationValue,\n});\n\n// This defines behavior for existing policies. They shouldn't automatically opt-in to use this setting.\nexport const pushingBranchesConfiguration = {\n [PREVENT_PUSHING_AND_FORCE_PUSHING]: false,\n};\n\nexport const PROTECTED_BRANCHES_CONFIGURATION_KEYS = [\n BLOCK_BRANCH_MODIFICATION,\n BLOCK_GROUP_BRANCH_MODIFICATION,\n PREVENT_PUSHING_AND_FORCE_PUSHING,\n];\n\nexport const MERGE_REQUEST_CONFIGURATION_KEYS = [\n PREVENT_APPROVAL_BY_AUTHOR,\n PREVENT_APPROVAL_BY_COMMIT_AUTHOR,\n REMOVE_APPROVALS_WITH_NEW_COMMIT,\n REQUIRE_PASSWORD_TO_APPROVE,\n];\n\n// This defines behavior for existing policies. They shouldn't automatically opt-in to use this setting.\nexport const mergeRequestConfiguration = {\n [PREVENT_APPROVAL_BY_AUTHOR]: false,\n [PREVENT_APPROVAL_BY_COMMIT_AUTHOR]: false,\n [REMOVE_APPROVALS_WITH_NEW_COMMIT]: false,\n [REQUIRE_PASSWORD_TO_APPROVE]: false,\n};\n\nexport const BLOCK_GROUP_BRANCH_MODIFICATION_WITH_EXCEPTIONS_HUMANIZED_STRING = s__(\n 'ScanResultPolicy|Prevent %{linkStart}group branch%{linkEnd} modification %{exceptSelection} %{groupSelection}',\n);\nexport const BLOCK_GROUP_BRANCH_MODIFICATION_HUMANIZED_STRING = s__(\n 'ScanResultPolicy|Prevent %{linkStart}group branch%{linkEnd} modification %{exceptSelection}',\n);\n\nexport const SETTINGS_HUMANIZED_STRINGS = {\n [BLOCK_BRANCH_MODIFICATION]: s__('ScanResultPolicy|Prevent branch modification'),\n [BLOCK_GROUP_BRANCH_MODIFICATION]: s__('ScanResultPolicy|Prevent group branch modification'),\n [PREVENT_PUSHING_AND_FORCE_PUSHING]: s__('ScanResultPolicy|Prevent pushing and force pushing'),\n [PREVENT_APPROVAL_BY_AUTHOR]: s__(\"ScanResultPolicy|Prevent approval by merge request's author\"),\n [PREVENT_APPROVAL_BY_COMMIT_AUTHOR]: s__('ScanResultPolicy|Prevent approval by commit author'),\n [REMOVE_APPROVALS_WITH_NEW_COMMIT]: s__('ScanResultPolicy|Remove all approvals with new commit'),\n [REQUIRE_PASSWORD_TO_APPROVE]: s__(\n 'ScanResultPolicy|Require user re-authentication (password or SAML) to approve',\n ),\n};\n\nexport const SETTINGS_TOOLTIP = {\n [BLOCK_BRANCH_MODIFICATION]: s__(\n 'ScanResultPolicy|When enabled, prevents a user from removing a branch from the project protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy.',\n ),\n [BLOCK_GROUP_BRANCH_MODIFICATION]: s__(\n 'ScanResultPolicy|When enabled, prevents a user from removing a branch from the group protected branches list, deleting a protected branch, or changing the default branch if that branch is included in the security policy.',\n ),\n [PREVENT_PUSHING_AND_FORCE_PUSHING]: s__(\n 'ScanResultPolicy|When enabled, prevents pushing and force pushing to a protected branch if that branch is included in the security policy.',\n ),\n [PREVENT_APPROVAL_BY_AUTHOR]: s__(\n 'ScanResultPolicy|When enabled, merge request authors cannot approve their own MRs.',\n ),\n [PREVENT_APPROVAL_BY_COMMIT_AUTHOR]: s__(\n 'ScanResultPolicy|When enabled, users who have contributed code to the MR are ineligible for approval.',\n ),\n [REMOVE_APPROVALS_WITH_NEW_COMMIT]: s__(\n 'ScanResultPolicy|When enabled, if an MR receives all necessary approvals to merge, but then a new commit is added, new approvals are required.',\n ),\n [REQUIRE_PASSWORD_TO_APPROVE]: s__(\n 'ScanResultPolicy|When enabled, there will be password confirmation on approvals.',\n ),\n};\n\nexport const SETTINGS_POPOVER_STRINGS = {\n [BLOCK_BRANCH_MODIFICATION]: {\n title: s__('ScanResultPolicy|Recommended settings'),\n description: s__(\n \"ScanResultPolicy|You have selected all protected branches in this policy's rules. To better protect your project, you should leave this setting enabled. %{linkStart}What are the risks of allowing pushing and force pushing?%{linkEnd}\",\n ),\n featureName: 'security_policy_protected_branch_modification',\n },\n};\n\nexport const SETTINGS_LINKS = {\n [BLOCK_BRANCH_MODIFICATION]: helpPagePath('/user/project/repository/branches/protected.html'),\n};\n\nexport const VALID_APPROVAL_SETTINGS = [\n ...PROTECTED_BRANCHES_CONFIGURATION_KEYS,\n ...MERGE_REQUEST_CONFIGURATION_KEYS,\n];\n\nexport const PERMITTED_INVALID_SETTINGS_KEY = 'block_protected_branch_modification';\n\nexport const PERMITTED_INVALID_SETTINGS = {\n [PERMITTED_INVALID_SETTINGS_KEY]: {\n enabled: true,\n },\n};\n\n/**\n * Build settings based on provided flags, scalable for more flags in future\n * @returns {Object} final settings\n */\nconst buildConfig = (\n settings,\n { hasLinkedGroups = false, namespaceType = NAMESPACE_TYPES.PROJECT },\n) => {\n const baseConfigurations = {\n ...protectedBranchesConfiguration,\n };\n\n const shouldIncludeGroupConfiguration = isGroup(namespaceType) || hasLinkedGroups;\n\n if (shouldIncludeGroupConfiguration) {\n Object.assign(\n baseConfigurations,\n groupProtectedBranchesConfiguration(settings[BLOCK_BRANCH_MODIFICATION]),\n );\n }\n\n return {\n ...baseConfigurations,\n ...pushingBranchesConfiguration,\n ...mergeRequestConfiguration,\n };\n};\n\n/**\n * Map dynamic approval settings to defined list and update only enable property\n * @param settings\n * @param options\n * @returns {Object}\n */\nexport const buildSettingsList = (\n { settings = {}, options = {} } = { settings: {}, options: {} },\n) => {\n const configuration = buildConfig(settings, options);\n\n return Object.keys(configuration).reduce((acc, setting) => {\n const hasEnabledProperty = settings ? setting in settings : false;\n acc[setting] = hasEnabledProperty ? settings[setting] : configuration[setting];\n return acc;\n }, {});\n};\n\nexport const WITHOUT_EXCEPTIONS = 'without_exceptions';\nexport const EXCEPT_GROUPS = 'except_groups';\n\nexport const EXCEPTION_GROUPS_TEXTS = {\n [WITHOUT_EXCEPTIONS]: s__('SecurityOrchestration|without exceptions'),\n [EXCEPT_GROUPS]: s__('SecurityOrchestration|except groups'),\n};\n\nexport const EXCEPTION_GROUPS_LISTBOX_ITEMS = mapToListboxItems(EXCEPTION_GROUPS_TEXTS);\n\n/**\n * Transforms a group into a standardized group object\n * @param {Object} group - Group to transform\n * @returns {Object}\n */\nexport const createGroupObject = (group) => {\n const convertedId = getIdFromGraphQLId(group.id);\n\n return {\n ...group,\n id: convertedId,\n text: group.full_name || group.fullName,\n value: convertedId,\n };\n};\n\n/**\n * Organizes groups into existing and to-be-retrieved groups\n * @param {string[]} groupIds - Array of group IDs\n * @param {Object[]} selectedGroups - Currently selected groups\n * @param {Object[]} availableGroups - Available groups to choose from\n * @returns {Object} Object containing existing groups and IDs to retrieve\n */\nexport const organizeGroups = ({ ids = [], availableGroups = [] }) =>\n ids.reduce(\n (acc, selectedId) => {\n const existingGroup = availableGroups.find(({ id }) => id === selectedId);\n\n if (existingGroup) {\n acc.existingGroups.push(existingGroup);\n } else {\n acc.groupsToRetrieve.push(selectedId);\n }\n\n return acc;\n },\n { existingGroups: [], groupsToRetrieve: [] },\n );\n\nexport const isMergeRequestSettingOverridden = (setting, value) => {\n return MERGE_REQUEST_CONFIGURATION_KEYS.includes(setting) && Boolean(value);\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-dropdown',{ref:\"dropdown\",attrs:{\"block\":\"\",\"header-text\":_vm.i18n.assignAttribute,\"lazy\":\"\",\"text\":_vm.dropdownText,\"toggle-class\":\"gl-m-0\"},on:{\"show\":_vm.handleShow,\"shown\":_vm.setFocus},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [_vm._t(\"footer\")]},proxy:true}],null,true)},[_c('gl-search-box-by-type',{ref:\"search\",attrs:{\"placeholder\":_vm.__('Search')},model:{value:(_vm.searchTerm),callback:function ($$v) {_vm.searchTerm=$$v},expression:\"searchTerm\"}}),_vm._v(\" \"),_c('gl-dropdown-item',{attrs:{\"data-testid\":`no-${_vm.formatIssuableAttribute.kebab}-item`,\"is-check-item\":\"\",\"is-checked\":_vm.isAttributeChecked(_vm.$options.noAttributeId)},on:{\"click\":function($event){return _vm.$emit('change', { id: _vm.$options.noAttributeId })}}},[_vm._v(\"\\n \"+_vm._s(_vm.i18n.noAttribute)+\"\\n \")]),_vm._v(\" \"),_c('gl-dropdown-divider'),_vm._v(\" \"),(_vm.$apollo.queries.attributesList.loading)?_c('gl-loading-icon',{staticClass:\"gl-py-4\",attrs:{\"size\":\"sm\",\"data-testid\":\"loading-icon-dropdown\"}}):[(_vm.emptyPropsList)?_c('gl-dropdown-text',[_vm._v(\"\\n \"+_vm._s(_vm.i18n.noAttributesFound)+\"\\n \")]):_vm._t(\"list\",function(){return _vm._l((_vm.attributesList),function(attrItem){return _c('gl-dropdown-item',{key:attrItem.id,attrs:{\"is-check-item\":\"\",\"is-checked\":_vm.isAttributeChecked(attrItem.id),\"data-testid\":`${_vm.formatIssuableAttribute.kebab}-items`},on:{\"click\":function($event){return _vm.updateAttribute(attrItem)}}},[_vm._v(\"\\n \"+_vm._s(attrItem.title)+\"\\n \"),(_vm.isAttributeOverdue(attrItem))?[_vm._v(_vm._s(_vm.$options.i18n.expired))]:_vm._e()],2)})},{\"attributesList\":_vm.attributesList,\"isAttributeChecked\":_vm.isAttributeChecked,\"updateAttribute\":_vm.updateAttribute})]],2)\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!./sidebar_dropdown.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!./sidebar_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlDropdown,\n GlDropdownDivider,\n GlDropdownItem,\n GlDropdownText,\n GlLoadingIcon,\n GlSearchBoxByType,\n} from '@gitlab/ui';\nimport { kebabCase, snakeCase } from 'lodash';\nimport {\n TYPE_EPIC,\n TYPE_ISSUE,\n TYPE_MERGE_REQUEST,\n WORKSPACE_GROUP,\n WORKSPACE_PROJECT,\n} from '~/issues/constants';\nimport { __ } from '~/locale';\nimport {\n defaultEpicSort,\n dropdowni18nText,\n epicIidPattern,\n IssuableAttributeState,\n IssuableAttributeType,\n IssuableAttributeTypeKeyMap,\n LocalizedIssuableAttributeType,\n noAttributeId,\n} from 'ee_else_ce/sidebar/constants';\nimport { issuableAttributesQueries } from 'ee_else_ce/sidebar/queries/constants';\nimport { createAlert } from '~/alert';\nimport { PathIdSeparator } from '~/related_issues/constants';\nimport { WORK_ITEM_TYPE_ENUM_EPIC } from '~/work_items/constants';\n\nexport default {\n noAttributeId,\n i18n: {\n expired: __('(expired)'),\n },\n components: {\n GlDropdown,\n GlDropdownItem,\n GlDropdownText,\n GlDropdownDivider,\n GlSearchBoxByType,\n GlLoadingIcon,\n },\n inject: {\n issuableAttributesQueries: {\n default: issuableAttributesQueries,\n },\n issuableAttributesState: {\n default: IssuableAttributeState,\n },\n widgetTitleText: {\n default: {\n [IssuableAttributeType.Milestone]: __('Milestone'),\n expired: __('(expired)'),\n none: __('None'),\n },\n },\n },\n props: {\n attrWorkspacePath: {\n required: true,\n type: String,\n },\n currentAttribute: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n issuableAttribute: {\n type: String,\n required: true,\n },\n issuableType: {\n type: String,\n required: true,\n validator(value) {\n return [TYPE_ISSUE, TYPE_MERGE_REQUEST].includes(value);\n },\n },\n workspaceType: {\n type: String,\n required: false,\n default: WORKSPACE_PROJECT,\n validator(value) {\n return [WORKSPACE_GROUP, WORKSPACE_PROJECT].includes(value);\n },\n },\n showWorkItemEpics: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n attributesList: [],\n searchTerm: '',\n skipQuery: true,\n };\n },\n apollo: {\n attributesList: {\n query() {\n if (this.isEpic && this.showWorkItemEpics) {\n return this.issuableAttributesQueries[IssuableAttributeType.Parent].list[\n this.issuableType\n ].query;\n }\n\n const { list } = this.issuableAttributeQuery;\n const { query } = list[this.issuableType];\n return query[this.workspaceType] || query;\n },\n variables() {\n if (!this.isEpic) {\n return {\n fullPath: this.attrWorkspacePath,\n title: this.searchTerm,\n state: this.issuableAttributesState[this.issuableAttribute],\n };\n }\n\n const variables = {\n fullPath: this.attrWorkspacePath,\n state: this.issuableAttributesState[this.issuableAttribute],\n sort: defaultEpicSort,\n };\n\n if (this.showWorkItemEpics) {\n variables.types = [WORK_ITEM_TYPE_ENUM_EPIC];\n }\n\n if (epicIidPattern.test(this.searchTerm)) {\n const matches = this.searchTerm.match(epicIidPattern);\n variables.iidStartsWith = matches.groups.iid;\n } else if (this.searchTerm !== '') {\n variables.in = 'TITLE';\n variables.title = this.searchTerm;\n }\n\n return variables;\n },\n update: (data) => data?.workspace?.attributes?.nodes ?? [],\n error(error) {\n createAlert({ message: this.i18n.listFetchError, captureError: true, error });\n },\n skip() {\n if (\n this.isEpic &&\n this.searchTerm.startsWith(PathIdSeparator.Epic) &&\n this.searchTerm.length < 2\n ) {\n return true;\n }\n return this.skipQuery;\n },\n debounce: 250,\n },\n },\n computed: {\n attributeTypeTitle() {\n return this.widgetTitleText[this.issuableAttribute];\n },\n dropdownText() {\n return this.currentAttribute ? this.currentAttribute?.title : this.attributeTypeTitle;\n },\n emptyPropsList() {\n return this.attributesList.length === 0;\n },\n i18n() {\n const localizedAttribute =\n LocalizedIssuableAttributeType[IssuableAttributeTypeKeyMap[this.issuableAttribute]];\n return dropdowni18nText(localizedAttribute, this.issuableType);\n },\n isEpic() {\n // MV to EE https://gitlab.com/gitlab-org/gitlab/-/issues/345311\n return this.issuableAttribute === TYPE_EPIC;\n },\n issuableAttributeQuery() {\n return this.issuableAttributesQueries[this.issuableAttribute];\n },\n formatIssuableAttribute() {\n return {\n kebab: kebabCase(this.issuableAttribute),\n snake: snakeCase(this.issuableAttribute),\n };\n },\n },\n methods: {\n isAttributeChecked(attributeId) {\n return (\n attributeId === this.currentAttribute?.id || (!this.currentAttribute?.id && !attributeId)\n );\n },\n isAttributeOverdue(attribute) {\n return this.issuableAttribute === IssuableAttributeType.Milestone\n ? attribute?.expired\n : false;\n },\n handleShow() {\n this.skipQuery = false;\n },\n setFocus() {\n this.$refs?.search?.focusInput();\n },\n show() {\n this.$refs.dropdown.show();\n },\n updateAttribute(attribute) {\n this.$emit('change', attribute);\n },\n },\n};\n</script>\n\n<template>\n <gl-dropdown\n ref=\"dropdown\"\n block\n :header-text=\"i18n.assignAttribute\"\n lazy\n :text=\"dropdownText\"\n toggle-class=\"gl-m-0\"\n @show=\"handleShow\"\n @shown=\"setFocus\"\n >\n <gl-search-box-by-type ref=\"search\" v-model=\"searchTerm\" :placeholder=\"__('Search')\" />\n <gl-dropdown-item\n :data-testid=\"`no-${formatIssuableAttribute.kebab}-item`\"\n is-check-item\n :is-checked=\"isAttributeChecked($options.noAttributeId)\"\n @click=\"$emit('change', { id: $options.noAttributeId })\"\n >\n {{ i18n.noAttribute }}\n </gl-dropdown-item>\n <gl-dropdown-divider />\n <gl-loading-icon\n v-if=\"$apollo.queries.attributesList.loading\"\n size=\"sm\"\n class=\"gl-py-4\"\n data-testid=\"loading-icon-dropdown\"\n />\n <template v-else>\n <gl-dropdown-text v-if=\"emptyPropsList\">\n {{ i18n.noAttributesFound }}\n </gl-dropdown-text>\n <slot\n v-else\n name=\"list\"\n :attributes-list=\"attributesList\"\n :is-attribute-checked=\"isAttributeChecked\"\n :update-attribute=\"updateAttribute\"\n >\n <gl-dropdown-item\n v-for=\"attrItem in attributesList\"\n :key=\"attrItem.id\"\n is-check-item\n :is-checked=\"isAttributeChecked(attrItem.id)\"\n :data-testid=\"`${formatIssuableAttribute.kebab}-items`\"\n @click=\"updateAttribute(attrItem)\"\n >\n {{ attrItem.title }}\n <template v-if=\"isAttributeOverdue(attrItem)\">{{ $options.i18n.expired }}</template>\n </gl-dropdown-item>\n </slot>\n </template>\n <template #footer>\n <slot name=\"footer\"></slot>\n </template>\n </gl-dropdown>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_dropdown.vue?vue&type=template&id=c8002916\"\nimport script from \"./sidebar_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_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 { sprintf, s__ } from '~/locale';\n\n/**\n * Combines each given item into a noun series sentence fragment. It does this\n * in a way that supports i18n by giving context and punctuation to the locale\n * functions.\n *\n * **Examples:**\n *\n * - `[\"A\", \"B\"] => \"A and B\"`\n * - `[\"A\", \"B\", \"C\"] => \"A, B, and C\"`\n *\n * **Why only nouns?**\n *\n * Some languages need a bit more context to translate other series.\n *\n * @param {String[]} items\n */\nexport const toNounSeriesText = (items, { onlyCommas = false } = {}) => {\n if (items.length === 0) {\n return '';\n }\n if (items.length === 1) {\n return sprintf(s__(`nounSeries|%{item}`), { item: items[0] }, false);\n }\n if (items.length === 2 && !onlyCommas) {\n return sprintf(\n s__('nounSeries|%{firstItem} and %{lastItem}'),\n {\n firstItem: items[0],\n lastItem: items[1],\n },\n false,\n );\n }\n\n return items.reduce((item, nextItem, idx) =>\n idx === items.length - 1 && !onlyCommas\n ? sprintf(s__('nounSeries|%{item}, and %{lastItem}'), { item, lastItem: nextItem }, false)\n : sprintf(s__('nounSeries|%{item}, %{nextItem}'), { item, nextItem }, false),\n );\n};\n\nexport default {\n toNounSeriesText,\n};\n","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!./mr_widget_how_to_merge_modal.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!./mr_widget_how_to_merge_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlModal, GlLink, GlSprintf } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { escapeShellString } from '~/lib/utils/text_utility';\nimport { __ } from '~/locale';\n\nexport default {\n i18n: {\n steps: {\n step1: {\n label: __('Step 1.'),\n help: __(\"Fetch and check out this merge request's feature branch:\"),\n },\n step2: {\n label: __('Step 2.'),\n help: __('Review the changes locally.'),\n },\n step3: {\n label: __('Step 3.'),\n help: __('Resolve any conflicts. %{linkStart}How do I fix them?%{linkEnd}'),\n },\n step4: {\n label: __('Step 4.'),\n help: __('Push the source branch up to GitLab.'),\n },\n },\n tip: __(\n '%{strongStart}Tip:%{strongEnd} You can also %{linkStart}check out with merge request ID%{linkEnd}.',\n ),\n title: __('Check out, review, and resolve locally'),\n },\n components: {\n GlModal,\n GlLink,\n GlSprintf,\n },\n props: {\n canMerge: {\n type: Boolean,\n required: false,\n default: false,\n },\n isFork: {\n type: Boolean,\n required: false,\n default: false,\n },\n sourceBranch: {\n type: String,\n required: false,\n default: '',\n },\n sourceProjectPath: {\n type: String,\n required: false,\n default: '',\n },\n targetBranch: {\n type: String,\n required: false,\n default: '',\n },\n sourceProjectDefaultUrl: {\n type: String,\n required: false,\n default: '',\n },\n reviewingDocsPath: {\n type: String,\n required: false,\n default: null,\n },\n },\n data() {\n return {\n resolveConflictsFromCli: helpPagePath('topics/git/git_rebase', {\n anchor: 'resolve-conflicts-from-the-command-line',\n }),\n };\n },\n computed: {\n mergeInfo1() {\n const escapedOriginBranch = escapeShellString(`origin/${this.sourceBranch}`);\n\n return this.isFork\n ? `git fetch \"${this.sourceProjectDefaultUrl}\" ${this.escapedSourceBranch}\\ngit checkout -b ${this.escapedForkBranch} FETCH_HEAD` // eslint-disable-line @gitlab/require-i18n-strings\n : `git fetch origin\\ngit checkout -b ${this.escapedSourceBranch} ${escapedOriginBranch}`; // eslint-disable-line @gitlab/require-i18n-strings\n },\n mergeInfo2() {\n return this.isFork\n ? `git push \"${this.sourceProjectDefaultUrl}\" ${this.escapedForkPushBranch}` // eslint-disable-line @gitlab/require-i18n-strings\n : `git push origin ${this.escapedSourceBranch}`; // eslint-disable-line @gitlab/require-i18n-strings\n },\n escapedForkBranch() {\n return escapeShellString(`${this.sourceProjectPath}-${this.sourceBranch}`);\n },\n escapedForkPushBranch() {\n return escapeShellString(\n `${this.sourceProjectPath}-${this.sourceBranch}:${this.sourceBranch}`,\n );\n },\n escapedSourceBranch() {\n return escapeShellString(this.sourceBranch);\n },\n },\n mounted() {\n document.addEventListener('click', (e) => {\n if (e.target.closest('.js-check-out-modal-trigger')) {\n this.$refs.modal.show();\n }\n });\n },\n userColorScheme: window.gon.user_color_scheme,\n};\n</script>\n\n<template>\n <gl-modal\n ref=\"modal\"\n modal-id=\"modal-merge-info\"\n :title=\"$options.i18n.title\"\n :no-enforce-focus=\"true\"\n no-focus-on-show\n no-fade\n hide-footer\n >\n <p>\n <strong>\n {{ $options.i18n.steps.step1.label }}\n </strong>\n {{ $options.i18n.steps.step1.help }}\n </p>\n <pre\n :class=\"$options.userColorScheme\"\n class=\"code highlight js-syntax-highlight gl-rounded-base\"\n data-testid=\"how-to-merge-instructions\"\n >{{ mergeInfo1 }}</pre\n >\n <p\n v-if=\"reviewingDocsPath\"\n class=\"-gl-mt-4 gl-rounded-b-base gl-border-1 gl-border-solid gl-border-default gl-px-4 gl-py-3\"\n >\n <gl-sprintf data-testid=\"docs-tip\" :message=\"$options.i18n.tip\">\n <template #strong=\"{ content }\">\n <strong>{{ content }}</strong>\n </template>\n <template #link=\"{ content }\">\n <gl-link class=\"gl-inline-block\" :href=\"reviewingDocsPath\" target=\"_blank\">{{\n content\n }}</gl-link>\n </template>\n </gl-sprintf>\n </p>\n <p>\n <strong>\n {{ $options.i18n.steps.step2.label }}\n </strong>\n {{ $options.i18n.steps.step2.help }}\n </p>\n <p>\n <strong>\n {{ $options.i18n.steps.step3.label }}\n </strong>\n <gl-sprintf :message=\"$options.i18n.steps.step3.help\">\n <template #link=\"{ content }\">\n <gl-link class=\"gl-inline-block\" :href=\"resolveConflictsFromCli\">\n {{ content }}\n </gl-link>\n </template>\n </gl-sprintf>\n </p>\n <p>\n <strong>\n {{ $options.i18n.steps.step4.label }}\n </strong>\n {{ $options.i18n.steps.step4.help }}\n </p>\n <pre\n :class=\"$options.userColorScheme\"\n class=\"code highlight js-syntax-highlight language-shell gl-rounded-base\"\n data-testid=\"how-to-merge-instructions\"\n >{{ mergeInfo2 }}</pre\n >\n </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_how_to_merge_modal.vue?vue&type=template&id=337fa76c\"\nimport script from \"./mr_widget_how_to_merge_modal.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_how_to_merge_modal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{ref:\"modal\",attrs:{\"modal-id\":\"modal-merge-info\",\"title\":_vm.$options.i18n.title,\"no-enforce-focus\":true,\"no-focus-on-show\":\"\",\"no-fade\":\"\",\"hide-footer\":\"\"}},[_c('p',[_c('strong',[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.steps.step1.label)+\"\\n \")]),_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.steps.step1.help)+\"\\n \")]),_vm._v(\" \"),_c('pre',{staticClass:\"code highlight js-syntax-highlight gl-rounded-base\",class:_vm.$options.userColorScheme,attrs:{\"data-testid\":\"how-to-merge-instructions\"}},[_vm._v(_vm._s(_vm.mergeInfo1))]),_vm._v(\" \"),(_vm.reviewingDocsPath)?_c('p',{staticClass:\"-gl-mt-4 gl-rounded-b-base gl-border-1 gl-border-solid gl-border-default gl-px-4 gl-py-3\"},[_c('gl-sprintf',{attrs:{\"data-testid\":\"docs-tip\",\"message\":_vm.$options.i18n.tip},scopedSlots:_vm._u([{key:\"strong\",fn:function({ content }){return [_c('strong',[_vm._v(_vm._s(content))])]}},{key:\"link\",fn:function({ content }){return [_c('gl-link',{staticClass:\"gl-inline-block\",attrs:{\"href\":_vm.reviewingDocsPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}}],null,false,1644116207)})],1):_vm._e(),_vm._v(\" \"),_c('p',[_c('strong',[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.steps.step2.label)+\"\\n \")]),_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.steps.step2.help)+\"\\n \")]),_vm._v(\" \"),_c('p',[_c('strong',[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.steps.step3.label)+\"\\n \")]),_vm._v(\" \"),_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.steps.step3.help},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{staticClass:\"gl-inline-block\",attrs:{\"href\":_vm.resolveConflictsFromCli}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}}])})],1),_vm._v(\" \"),_c('p',[_c('strong',[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.steps.step4.label)+\"\\n \")]),_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.steps.step4.help)+\"\\n \")]),_vm._v(\" \"),_c('pre',{staticClass:\"code highlight js-syntax-highlight language-shell gl-rounded-base\",class:_vm.$options.userColorScheme,attrs:{\"data-testid\":\"how-to-merge-instructions\"}},[_vm._v(_vm._s(_vm.mergeInfo2))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport MrWidgetHowToMergeModal from '~/vue_merge_request_widget/components/mr_widget_how_to_merge_modal.vue';\n\nexport default () => {\n const modalEl = document.getElementById('js-check-out-modal');\n\n if (!modalEl) return false;\n\n const {\n canMerge,\n isFork,\n sourceBranch,\n sourceProjectPath,\n targetBranch,\n sourceProjectDefaultUrl,\n reviewingDocsPath,\n } = modalEl.dataset;\n\n return new Vue({\n el: modalEl,\n render(h) {\n return h(MrWidgetHowToMergeModal, {\n props: {\n canMerge: parseBoolean(canMerge),\n isFork: parseBoolean(isFork),\n sourceBranch,\n sourceProjectPath,\n targetBranch,\n sourceProjectDefaultUrl,\n reviewingDocsPath,\n },\n });\n },\n });\n};\n","import { safeLoad } from 'js-yaml';\nimport { isBoolean, isEqual } from 'lodash';\nimport { extractPolicyContent } from 'ee/security_orchestration/components/utils';\nimport { POLICY_TYPE_COMPONENT_OPTIONS } from 'ee/security_orchestration/components/constants';\nimport { addIdsToPolicy, hasInvalidKey, isValidPolicy } from '../../utils';\nimport { PRIMARY_POLICY_KEYS } from '../../constants';\nimport { OPEN, CLOSED } from '../advanced_settings/constants';\nimport {\n BLOCK_GROUP_BRANCH_MODIFICATION,\n VALID_APPROVAL_SETTINGS,\n PERMITTED_INVALID_SETTINGS,\n PERMITTED_INVALID_SETTINGS_KEY,\n} from './settings';\n\n/*\n Construct a policy object expected by the policy editor from a yaml manifest.\n*/\nexport const fromYaml = ({ manifest, validateRuleMode = false }) => {\n try {\n const { securityPoliciesNewYamlFormat = false } = window.gon?.features || {};\n const payload = securityPoliciesNewYamlFormat\n ? extractPolicyContent({\n manifest,\n type: POLICY_TYPE_COMPONENT_OPTIONS.approval.urlParameter,\n withType: true,\n })\n : safeLoad(manifest, { json: true });\n\n const policy = addIdsToPolicy(payload);\n\n if (validateRuleMode) {\n /**\n * These values are what is supported by rule mode. If the yaml has any other values,\n * rule mode will be disabled. This validation should not be used to check whether\n * the yaml is a valid policy; that should be done on the backend with the official\n * schema. These values should not be retrieved from the backend schema because\n * the UI for new attributes may not be available.\n */\n\n const primaryKeys = [\n ...PRIMARY_POLICY_KEYS,\n 'rules',\n 'actions',\n 'approval_settings',\n 'fallback_behavior',\n 'policy_tuning',\n ];\n\n const rulesKeys = [\n 'type',\n 'branches',\n 'branch_type',\n 'branch_exceptions',\n 'commits',\n 'license_states',\n 'license_types',\n 'scanners',\n 'severity_levels',\n 'vulnerabilities_allowed',\n 'vulnerability_states',\n 'vulnerability_age',\n 'vulnerability_attributes',\n 'id',\n 'match_on_inclusion_license',\n ];\n const actionsKeys = [\n 'type',\n 'approvals_required',\n 'user_approvers',\n 'group_approvers',\n 'user_approvers_ids',\n 'group_approvers_ids',\n 'role_approvers',\n 'id',\n 'enabled',\n ];\n\n if (gon.features?.excludeLicensePackages) {\n rulesKeys.push('licenses');\n }\n\n const { approval_settings: settings = {}, fallback_behavior: fallback } = policy;\n\n // Temporary workaround to allow the rule builder to load with wrongly persisted settings\n const hasInvalidApprovalSettings = hasInvalidKey(settings, [\n ...VALID_APPROVAL_SETTINGS,\n PERMITTED_INVALID_SETTINGS_KEY,\n ]);\n\n const hasInvalidSettingStructure = !isEqual(settings, PERMITTED_INVALID_SETTINGS)\n ? !Object.entries(settings).every(\n ([key, value]) => isBoolean(value) || key === BLOCK_GROUP_BRANCH_MODIFICATION,\n )\n : false;\n\n const hasInvalidFallbackBehavior = fallback && ![OPEN, CLOSED].includes(fallback.fail);\n\n return isValidPolicy({ policy, primaryKeys, rulesKeys, actionsKeys }) &&\n !hasInvalidApprovalSettings &&\n !hasInvalidSettingStructure &&\n !hasInvalidFallbackBehavior\n ? policy\n : { error: true };\n }\n\n return policy;\n } catch {\n /**\n * Catch parsing error of safeLoad\n */\n return { error: true, key: 'yaml-parsing' };\n }\n};\n\n/**\n * Converts a security policy from yaml to an object\n * @param {String} manifest a security policy in yaml form\n * @returns {Object} security policy object and any errors\n */\nexport const createPolicyObject = (manifest) => {\n const policy = fromYaml({ manifest, validateRuleMode: true });\n\n return { policy, hasParsingError: Boolean(policy.error) };\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('noteable-note',{staticClass:\"draft-note !gl-mb-0\",attrs:{\"note\":_vm.draft,\"line\":_vm.line,\"discussion-root\":true,\"autosave-key\":_vm.autosaveDraftKey,\"restore-from-autosave\":_vm.restoreFromAutosave},on:{\"handleEdit\":_vm.handleEditing,\"cancelForm\":_vm.handleNotEditing,\"updateSuccess\":_vm.handleNotEditing,\"handleDeleteNote\":_vm.deleteDraft,\"handleUpdateNote\":_vm.update,\"toggleResolveStatus\":function($event){return _vm.toggleResolveDiscussion(_vm.draft.id)}},nativeOn:{\"mouseenter\":function($event){return _vm.handleMouseEnter(_vm.draft)},\"mouseleave\":function($event){return _vm.handleMouseLeave(_vm.draft)}},scopedSlots:_vm._u([{key:\"note-header-info\",fn:function(){return [_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-mr-2\",attrs:{\"variant\":\"warning\",\"title\":_vm.__('Pending comments are hidden until you submit your review.')}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Pending'))+\"\\n \")])]},proxy:true},(!_vm.draft.isEditing)?{key:\"after-note-body\",fn:function(){return [(_vm.draftCommands)?_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.draftCommands),expression:\"draftCommands\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"draft-note-referenced-commands gl-mb-2 gl-ml-3 gl-text-sm gl-text-subtle\"}):_vm._e()]},proxy:true}:null],null,true)})\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!./draft_note.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!./draft_note.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlTooltipDirective } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapMutations, mapState } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport NoteableNote from '~/notes/components/noteable_note.vue';\nimport * as types from '~/batch_comments/stores/modules/batch_comments/mutation_types';\nimport { clearDraft } from '~/lib/utils/autosave';\n\nexport default {\n components: {\n NoteableNote,\n GlBadge,\n },\n directives: {\n SafeHtml,\n GlTooltip: GlTooltipDirective,\n },\n props: {\n draft: {\n type: Object,\n required: true,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n autosaveKey: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n // diff files in virtual scroller can be culled when scrolling the page (their instances get destroyed)\n // when a file reappears on the screen we need to restore draft's form: opened state and edited note text\n // we can detect if a file was culled with an opened form by saving the form opened state on the draft object\n // this can be used to force markdown editor to use autosaved content instead of an unedited draft note text\n // https://gitlab.com/gitlab-org/gitlab/-/issues/436954\n restoreFromAutosave: Boolean(this.draft.isEditing),\n };\n },\n computed: {\n ...mapState('batchComments', ['isPublishing']),\n ...mapGetters('batchComments', ['isPublishingDraft']),\n draftCommands() {\n return this.draft.references.commands;\n },\n autosaveDraftKey() {\n if (!this.autosaveKey) return null;\n return `${this.autosaveKey}/draft-note-${this.draft.id}`;\n },\n },\n mounted() {\n if (window.location.hash && window.location.hash === `#note_${this.draft.id}`) {\n this.scrollToDraft(this.draft);\n }\n },\n methods: {\n ...mapActions('batchComments', [\n 'deleteDraft',\n 'updateDraft',\n 'publishSingleDraft',\n 'scrollToDraft',\n 'toggleResolveDiscussion',\n ]),\n ...mapMutations('batchComments', {\n setDraftEditing: types.SET_DRAFT_EDITING,\n }),\n ...mapActions(['setSelectedCommentPositionHover']),\n update(data) {\n this.updateDraft(data);\n },\n publishNow() {\n this.publishSingleDraft(this.draft.id);\n },\n handleEditing() {\n this.setDraftEditing({ draftId: this.draft.id, isEditing: true });\n },\n handleNotEditing() {\n this.restoreFromAutosave = false;\n this.clearDraft();\n this.setDraftEditing({ draftId: this.draft.id, isEditing: false });\n },\n handleMouseEnter(draft) {\n if (draft.position) {\n this.setSelectedCommentPositionHover(draft.position.line_range);\n }\n },\n handleMouseLeave(draft) {\n // Even though position isn't used here we still don't want to unnecessarily call a mutation\n // The lack of position tells us that highlighting is irrelevant in this context\n if (draft.position) {\n this.setSelectedCommentPositionHover();\n }\n },\n clearDraft() {\n if (this.autosaveDraftKey) clearDraft(this.autosaveDraftKey);\n },\n },\n safeHtmlConfig: {\n ADD_TAGS: ['use', 'gl-emoji', 'copy-code'],\n },\n};\n</script>\n<template>\n <noteable-note\n :note=\"draft\"\n :line=\"line\"\n :discussion-root=\"true\"\n class=\"draft-note !gl-mb-0\"\n :autosave-key=\"autosaveDraftKey\"\n :restore-from-autosave=\"restoreFromAutosave\"\n @handleEdit=\"handleEditing\"\n @cancelForm=\"handleNotEditing\"\n @updateSuccess=\"handleNotEditing\"\n @handleDeleteNote=\"deleteDraft\"\n @handleUpdateNote=\"update\"\n @toggleResolveStatus=\"toggleResolveDiscussion(draft.id)\"\n @mouseenter.native=\"handleMouseEnter(draft)\"\n @mouseleave.native=\"handleMouseLeave(draft)\"\n >\n <template #note-header-info>\n <gl-badge\n v-gl-tooltip\n variant=\"warning\"\n class=\"gl-mr-2\"\n :title=\"__('Pending comments are hidden until you submit your review.')\"\n >\n {{ __('Pending') }}\n </gl-badge>\n </template>\n <template v-if=\"!draft.isEditing\" #after-note-body>\n <div\n v-if=\"draftCommands\"\n v-safe-html:[$options.safeHtmlConfig]=\"draftCommands\"\n class=\"draft-note-referenced-commands gl-mb-2 gl-ml-3 gl-text-sm gl-text-subtle\"\n ></div>\n </template>\n </noteable-note>\n</template>\n","import { render, staticRenderFns } from \"./draft_note.vue?vue&type=template&id=e9295676\"\nimport script from \"./draft_note.vue?vue&type=script&lang=js\"\nexport * from \"./draft_note.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\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"cancelPipelineMiniGraphJob\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CiBuildID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobCancel\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"job\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Job\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":180}};\n doc.loc.source = {\"body\":\"#import \\\"../fragments/job.fragment.graphql\\\"\\n\\nmutation cancelPipelineMiniGraphJob($id: CiBuildID!) {\\n jobCancel(input: { id: $id }) {\\n job {\\n ...Job\\n }\\n errors\\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(\"../fragments/job.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[\"cancelPipelineMiniGraphJob\"] = oneQuery(doc, \"cancelPipelineMiniGraphJob\");\n \n","var baseForOwn = require('./_baseForOwn');\n\n/**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\nfunction baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n}\n\nmodule.exports = baseInverter;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-flex gl-items-start\"},[(_vm.hasOneOption)?_vm._l((_vm.tertiaryButtons),function(btn,index){return _c('span',{key:index},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"gl-float-left md:gl-inline-flex\",class:[{ 'gl-mr-3': index !== _vm.tertiaryButtons.length - 1 }, btn.class],attrs:{\"id\":btn.id,\"title\":_vm.setTooltip(btn),\"href\":btn.href,\"target\":btn.target,\"data-clipboard-text\":btn.dataClipboardText,\"data-method\":btn.dataMethod,\"icon\":btn.icon,\"data-testid\":btn.testId || 'extension-actions-button',\"variant\":btn.variant || 'confirm',\"loading\":btn.loading,\"disabled\":btn.disabled || btn.loading,\"category\":\"tertiary\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.onClickAction(btn)}}},[_vm._v(\"\\n \"+_vm._s(btn.text)+\"\\n \")]),_vm._v(\" \"),(btn.popoverTarget)?_c('gl-popover',{attrs:{\"target\":btn.popoverTarget},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(btn.popoverTitle)+\" \")]},proxy:true}],null,true)},[_vm._v(\" \"),(btn.popoverLink)?_c('span',[_c('gl-sprintf',{attrs:{\"message\":btn.popoverText},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{staticClass:\"gl-text-sm\",attrs:{\"href\":btn.popoverLink,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(content))])]}}],null,true)})],1):_c('span',[_vm._v(\"\\n \"+_vm._s(btn.popoverText)+\"\\n \")])]):_vm._e()],1)}):_vm._e(),_vm._v(\" \"),(_vm.hasMultipleOptions)?[_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-block md:!gl-hidden\",attrs:{\"items\":_vm.dropdownItems,\"title\":_vm.__('Options'),\"icon\":\"ellipsis_v\",\"no-caret\":\"\",\"category\":\"tertiary\",\"text-sr-only\":\"\",\"size\":\"small\"},on:{\"action\":_vm.onClickAction}}),_vm._v(\" \"),_vm._l((_vm.tertiaryButtons),function(btn,index){return _c('span',{key:index},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],staticClass:\"gl-float-left gl-hidden md:gl-inline-flex\",class:[{ 'gl-mr-3': index !== _vm.tertiaryButtons.length - 1 }, btn.class],attrs:{\"id\":btn.id,\"title\":_vm.setTooltip(btn),\"href\":btn.href,\"target\":btn.target,\"data-clipboard-text\":btn.dataClipboardText,\"data-method\":btn.dataMethod,\"icon\":btn.icon,\"data-testid\":btn.testId || 'extension-actions-button',\"variant\":btn.variant || 'confirm',\"loading\":btn.loading,\"disabled\":btn.disabled || btn.loading,\"category\":\"tertiary\",\"size\":\"small\"},on:{\"click\":function($event){return _vm.onClickAction(btn)}}},[_vm._v(\"\\n \"+_vm._s(btn.text)+\"\\n \")]),_vm._v(\" \"),(btn.popoverTarget)?_c('gl-popover',{attrs:{\"target\":btn.popoverTarget},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(btn.popoverTitle)+\" \")]},proxy:true}],null,true)},[_vm._v(\" \"),(btn.popoverLink)?_c('span',[_c('gl-sprintf',{attrs:{\"message\":btn.popoverText},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{staticClass:\"gl-text-sm\",attrs:{\"href\":btn.popoverLink,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(content))])]}}],null,true)})],1):_c('span',[_vm._v(\"\\n \"+_vm._s(btn.popoverText)+\"\\n \")])]):_vm._e()],1)})]:_vm._e()],2)\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!./action_buttons.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!./action_buttons.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlButton,\n GlPopover,\n GlSprintf,\n GlLink,\n GlDisclosureDropdown,\n GlTooltipDirective,\n} from '@gitlab/ui';\n\nexport default {\n name: 'ActionButtons',\n components: {\n GlButton,\n GlPopover,\n GlSprintf,\n GlLink,\n GlDisclosureDropdown,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n tertiaryButtons: {\n type: Array,\n // fix `spec/frontend/vue_merge_request_widget/mr_widget_options_spec.js` before making this required\n required: false,\n default: () => [],\n },\n },\n data: () => {\n return {\n timeout: null,\n updatingTooltip: false,\n };\n },\n computed: {\n hasOneOption() {\n return this.tertiaryButtons.length === 1;\n },\n hasMultipleOptions() {\n return this.tertiaryButtons.length > 1;\n },\n dropdownItems() {\n return this.tertiaryButtons.map((item) => {\n return {\n ...item,\n text: item.text,\n href: item.href,\n extraAttrs: {\n dataClipboardText: item.dataClipboardText,\n dataMethod: item.dataMethod,\n target: item.target,\n },\n };\n });\n },\n },\n methods: {\n onClickAction(action) {\n this.$emit('clickedAction', action);\n\n if (action.onClick) {\n action.onClick();\n }\n\n if (action.tooltipOnClick) {\n this.updatingTooltip = true;\n this.$root.$emit('bv::show::tooltip', action.id);\n\n clearTimeout(this.timeout);\n\n this.timeout = setTimeout(() => {\n this.updatingTooltip = false;\n this.$root.$emit('bv::hide::tooltip', action.id);\n }, 1000);\n }\n },\n setTooltip(btn) {\n if (this.updatingTooltip && btn.tooltipOnClick) {\n return btn.tooltipOnClick;\n }\n\n return btn.tooltipText;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-flex gl-items-start\">\n <template v-if=\"hasOneOption\">\n <span v-for=\"(btn, index) in tertiaryButtons\" :key=\"index\">\n <gl-button\n :id=\"btn.id\"\n v-gl-tooltip.hover\n :title=\"setTooltip(btn)\"\n :href=\"btn.href\"\n :target=\"btn.target\"\n :class=\"[{ 'gl-mr-3': index !== tertiaryButtons.length - 1 }, btn.class]\"\n :data-clipboard-text=\"btn.dataClipboardText\"\n :data-method=\"btn.dataMethod\"\n :icon=\"btn.icon\"\n :data-testid=\"btn.testId || 'extension-actions-button'\"\n :variant=\"btn.variant || 'confirm'\"\n :loading=\"btn.loading\"\n :disabled=\"btn.disabled || btn.loading\"\n category=\"tertiary\"\n size=\"small\"\n class=\"gl-float-left md:gl-inline-flex\"\n @click=\"onClickAction(btn)\"\n >\n {{ btn.text }}\n </gl-button>\n <gl-popover v-if=\"btn.popoverTarget\" :target=\"btn.popoverTarget\">\n <template #title> {{ btn.popoverTitle }} </template>\n\n <span v-if=\"btn.popoverLink\">\n <gl-sprintf :message=\"btn.popoverText\">\n <template #link=\"{ content }\">\n <gl-link class=\"gl-text-sm\" :href=\"btn.popoverLink\" target=\"_blank\">\n {{ content }}</gl-link\n >\n </template>\n </gl-sprintf>\n </span>\n <span v-else>\n {{ btn.popoverText }}\n </span>\n </gl-popover>\n </span>\n </template>\n <template v-if=\"hasMultipleOptions\">\n <gl-disclosure-dropdown\n v-gl-tooltip\n :items=\"dropdownItems\"\n :title=\"__('Options')\"\n icon=\"ellipsis_v\"\n no-caret\n category=\"tertiary\"\n text-sr-only\n size=\"small\"\n class=\"gl-block md:!gl-hidden\"\n @action=\"onClickAction\"\n />\n <span v-for=\"(btn, index) in tertiaryButtons\" :key=\"index\">\n <gl-button\n :id=\"btn.id\"\n v-gl-tooltip.hover\n :title=\"setTooltip(btn)\"\n :href=\"btn.href\"\n :target=\"btn.target\"\n :class=\"[{ 'gl-mr-3': index !== tertiaryButtons.length - 1 }, btn.class]\"\n :data-clipboard-text=\"btn.dataClipboardText\"\n :data-method=\"btn.dataMethod\"\n :icon=\"btn.icon\"\n :data-testid=\"btn.testId || 'extension-actions-button'\"\n :variant=\"btn.variant || 'confirm'\"\n :loading=\"btn.loading\"\n :disabled=\"btn.disabled || btn.loading\"\n category=\"tertiary\"\n size=\"small\"\n class=\"gl-float-left gl-hidden md:gl-inline-flex\"\n @click=\"onClickAction(btn)\"\n >\n {{ btn.text }}\n </gl-button>\n <gl-popover v-if=\"btn.popoverTarget\" :target=\"btn.popoverTarget\">\n <template #title> {{ btn.popoverTitle }} </template>\n\n <span v-if=\"btn.popoverLink\">\n <gl-sprintf :message=\"btn.popoverText\">\n <template #link=\"{ content }\">\n <gl-link class=\"gl-text-sm\" :href=\"btn.popoverLink\" target=\"_blank\">\n {{ content }}</gl-link\n >\n </template>\n </gl-sprintf>\n </span>\n <span v-else>\n {{ btn.popoverText }}\n </span>\n </gl-popover>\n </span>\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./action_buttons.vue?vue&type=template&id=48051e6e\"\nimport script from \"./action_buttons.vue?vue&type=script&lang=js\"\nexport * from \"./action_buttons.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","'use strict';\n\n/*eslint-disable no-bitwise*/\n\nvar NodeBuffer;\n\ntry {\n // A trick for browserified version, to not include `Buffer` shim\n var _require = require;\n NodeBuffer = _require('buffer').Buffer;\n} catch (__) {}\n\nvar Type = require('../type');\n\n\n// [ 64, 65, 66 ] -> [ padding, CR, LF ]\nvar BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\\n\\r';\n\n\nfunction resolveYamlBinary(data) {\n if (data === null) return false;\n\n var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP;\n\n // Convert one by one.\n for (idx = 0; idx < max; idx++) {\n code = map.indexOf(data.charAt(idx));\n\n // Skip CR/LF\n if (code > 64) continue;\n\n // Fail on illegal characters\n if (code < 0) return false;\n\n bitlen += 6;\n }\n\n // If there are any bits left, source was corrupted\n return (bitlen % 8) === 0;\n}\n\nfunction constructYamlBinary(data) {\n var idx, tailbits,\n input = data.replace(/[\\r\\n=]/g, ''), // remove CR/LF & padding to simplify scan\n max = input.length,\n map = BASE64_MAP,\n bits = 0,\n result = [];\n\n // Collect by 6*4 bits (3 bytes)\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 4 === 0) && idx) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n }\n\n bits = (bits << 6) | map.indexOf(input.charAt(idx));\n }\n\n // Dump tail\n\n tailbits = (max % 4) * 6;\n\n if (tailbits === 0) {\n result.push((bits >> 16) & 0xFF);\n result.push((bits >> 8) & 0xFF);\n result.push(bits & 0xFF);\n } else if (tailbits === 18) {\n result.push((bits >> 10) & 0xFF);\n result.push((bits >> 2) & 0xFF);\n } else if (tailbits === 12) {\n result.push((bits >> 4) & 0xFF);\n }\n\n // Wrap into Buffer for NodeJS and leave Array for browser\n if (NodeBuffer) {\n // Support node 6.+ Buffer API when available\n return NodeBuffer.from ? NodeBuffer.from(result) : new NodeBuffer(result);\n }\n\n return result;\n}\n\nfunction representYamlBinary(object /*, style*/) {\n var result = '', bits = 0, idx, tail,\n max = object.length,\n map = BASE64_MAP;\n\n // Convert every three bytes to 4 ASCII characters.\n\n for (idx = 0; idx < max; idx++) {\n if ((idx % 3 === 0) && idx) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n }\n\n bits = (bits << 8) + object[idx];\n }\n\n // Dump tail\n\n tail = max % 3;\n\n if (tail === 0) {\n result += map[(bits >> 18) & 0x3F];\n result += map[(bits >> 12) & 0x3F];\n result += map[(bits >> 6) & 0x3F];\n result += map[bits & 0x3F];\n } else if (tail === 2) {\n result += map[(bits >> 10) & 0x3F];\n result += map[(bits >> 4) & 0x3F];\n result += map[(bits << 2) & 0x3F];\n result += map[64];\n } else if (tail === 1) {\n result += map[(bits >> 2) & 0x3F];\n result += map[(bits << 4) & 0x3F];\n result += map[64];\n result += map[64];\n }\n\n return result;\n}\n\nfunction isBinary(object) {\n return NodeBuffer && NodeBuffer.isBuffer(object);\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:binary', {\n kind: 'scalar',\n resolve: resolveYamlBinary,\n construct: constructYamlBinary,\n predicate: isBinary,\n represent: representYamlBinary\n});\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"Job\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CiJob\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detailedStatus\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"action\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"confirmationMessage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"icon\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":149}};\n doc.loc.source = {\"body\":\"fragment Job on CiJob {\\n id\\n detailedStatus {\\n id\\n action {\\n id\\n confirmationMessage\\n icon\\n path\\n title\\n }\\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[\"Job\"] = oneQuery(doc, \"Job\");\n \n","var Set = require('./_Set'),\n noop = require('./noop'),\n setToArray = require('./_setToArray');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\nvar createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n};\n\nmodule.exports = createSet;\n","export default () => ({\n inject: {\n glAbilities: {\n from: 'glAbilities',\n default: () => ({}),\n },\n },\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"incident-severity gl-justify-content-between gl-inline-flex gl-max-w-full gl-items-center\"},[_c('gl-icon',{class:[`icon-${_vm.severity.icon}`, { 'gl-mr-3 gl-shrink-0': !_vm.iconOnly }],attrs:{\"size\":_vm.iconSize,\"name\":`severity-${_vm.severity.icon}`}}),_vm._v(\" \"),(!_vm.iconOnly)?_c('tooltip-on-truncate',{staticClass:\"gl-truncate\",attrs:{\"title\":_vm.severity.label}},[_vm._v(\"\\n \"+_vm._s(_vm.severity.label)+\"\\n \")]):_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!./severity.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!./severity.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlIcon } from '@gitlab/ui';\nimport TooltipOnTruncate from '~/vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue';\n\nexport default {\n components: {\n GlIcon,\n TooltipOnTruncate,\n },\n props: {\n severity: {\n type: Object,\n required: true,\n validator(severity) {\n const { value, label, icon } = severity;\n return value && label && icon;\n },\n },\n iconSize: {\n type: Number,\n required: false,\n default: 12,\n },\n iconOnly: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"incident-severity gl-justify-content-between gl-inline-flex gl-max-w-full gl-items-center\"\n >\n <gl-icon\n :size=\"iconSize\"\n :name=\"`severity-${severity.icon}`\"\n :class=\"[`icon-${severity.icon}`, { 'gl-mr-3 gl-shrink-0': !iconOnly }]\"\n />\n <tooltip-on-truncate v-if=\"!iconOnly\" :title=\"severity.label\" class=\"gl-truncate\">\n {{ severity.label }}\n </tooltip-on-truncate>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./severity.vue?vue&type=template&id=506e5b38\"\nimport script from \"./severity.vue?vue&type=script&lang=js\"\nexport * from \"./severity.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const HTTP_STATUS_ABORTED = 0;\nexport const HTTP_STATUS_OK = 200;\nexport const HTTP_STATUS_CREATED = 201;\nexport const HTTP_STATUS_ACCEPTED = 202;\nexport const HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION = 203;\nexport const HTTP_STATUS_NO_CONTENT = 204;\nexport const HTTP_STATUS_RESET_CONTENT = 205;\nexport const HTTP_STATUS_PARTIAL_CONTENT = 206;\nexport const HTTP_STATUS_MULTI_STATUS = 207;\nexport const HTTP_STATUS_ALREADY_REPORTED = 208;\nexport const HTTP_STATUS_IM_USED = 226;\nexport const HTTP_STATUS_BAD_REQUEST = 400;\nexport const HTTP_STATUS_UNAUTHORIZED = 401;\nexport const HTTP_STATUS_FORBIDDEN = 403;\nexport const HTTP_STATUS_NOT_FOUND = 404;\nexport const HTTP_STATUS_METHOD_NOT_ALLOWED = 405;\nexport const HTTP_STATUS_CONFLICT = 409;\nexport const HTTP_STATUS_GONE = 410;\nexport const HTTP_STATUS_PAYLOAD_TOO_LARGE = 413;\nexport const HTTP_STATUS_IM_A_TEAPOT = 418;\nexport const HTTP_STATUS_UNPROCESSABLE_ENTITY = 422;\nexport const HTTP_STATUS_TOO_MANY_REQUESTS = 429;\nexport const HTTP_STATUS_INTERNAL_SERVER_ERROR = 500;\nexport const HTTP_STATUS_SERVICE_UNAVAILABLE = 503;\n\nexport const successCodes = [\n HTTP_STATUS_OK,\n HTTP_STATUS_CREATED,\n HTTP_STATUS_ACCEPTED,\n HTTP_STATUS_NON_AUTHORITATIVE_INFORMATION,\n HTTP_STATUS_NO_CONTENT,\n HTTP_STATUS_RESET_CONTENT,\n HTTP_STATUS_PARTIAL_CONTENT,\n HTTP_STATUS_MULTI_STATUS,\n HTTP_STATUS_ALREADY_REPORTED,\n HTTP_STATUS_IM_USED,\n];\n","import { LOADING, ERROR, SUCCESS } from '~/ci/reports/constants';\n\nexport default {\n methods: {\n checkReportStatus(loading, error) {\n if (loading) {\n return LOADING;\n }\n if (error) {\n return ERROR;\n }\n\n return SUCCESS;\n },\n },\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-editable-item',{ref:\"editable\",staticClass:\"block health-status\",attrs:{\"can-edit\":_vm.canEdit,\"loading\":_vm.isLoading,\"title\":_vm.$options.HEALTH_STATUS_I18N_HEALTH_STATUS,\"tracking\":_vm.$options.healthStatusTracking},on:{\"close\":_vm.updateHealthStatus,\"open\":_vm.showDropdown},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport.title\",value:(_vm.healthStatusTooltip),expression:\"healthStatusTooltip\",modifiers:{\"left\":true,\"viewport\":true,\"title\":true}}],staticClass:\"sidebar-collapsed-icon\",on:{\"click\":_vm.expandSidebar}},[_c('gl-icon',{attrs:{\"name\":\"status-health\"}}),_vm._v(\" \"),(_vm.isLoading)?_c('gl-loading-icon'):_c('p',{staticClass:\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.healthStatusText)+\"\\n \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed\"},[(_vm.healthStatus)?_c('issue-health-status',{staticClass:\"gl-mt-2\",attrs:{\"health-status\":_vm.healthStatus}}):_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.$options.HEALTH_STATUS_I18N_NONE))])],1)]},proxy:true},{key:\"default\",fn:function(){return [_c('health-status-dropdown',{ref:\"dropdown\",attrs:{\"health-status\":_vm.healthStatus},on:{\"change\":_vm.updateHealthStatus}})]},proxy:true}])})\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!./sidebar_health_status_widget.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!./sidebar_health_status_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlLoadingIcon, GlTooltipDirective as GlTooltip } from '@gitlab/ui';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport { createAlert } from '~/alert';\nimport { STATUS_OPEN, STATUS_REOPENED } from '~/issues/constants';\nimport { s__, sprintf } from '~/locale';\nimport SidebarEditableItem from '~/sidebar/components/sidebar_editable_item.vue';\nimport IssueHealthStatus from 'ee/related_items_tree/components/issue_health_status.vue';\nimport Tracking from '~/tracking';\nimport {\n HEALTH_STATUS_I18N_FETCH_ERROR,\n HEALTH_STATUS_I18N_HEALTH_STATUS,\n HEALTH_STATUS_I18N_NONE,\n HEALTH_STATUS_I18N_UPDATE_ERROR,\n HEALTH_STATUS_OPEN_DROPDOWN_DELAY,\n healthStatusTextMap,\n healthStatusTracking,\n} from '../../constants';\nimport { healthStatusQueries } from '../../queries/constants';\nimport HealthStatusDropdown from './health_status_dropdown.vue';\n\nexport default {\n HEALTH_STATUS_I18N_HEALTH_STATUS,\n HEALTH_STATUS_I18N_NONE,\n HEALTH_STATUS_I18N_UPDATE_ERROR,\n healthStatusTracking,\n components: {\n GlIcon,\n GlLoadingIcon,\n HealthStatusDropdown,\n SidebarEditableItem,\n IssueHealthStatus,\n },\n directives: {\n GlTooltip,\n },\n mixins: [Tracking.mixin()],\n inject: ['canUpdate'],\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n isUpdating: false,\n };\n },\n apollo: {\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n issuable: {\n query() {\n return healthStatusQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: this.iid,\n };\n },\n skip() {\n return !this.iid;\n },\n update: (data) => data.workspace?.issuable,\n error(error) {\n createAlert({\n message: sprintf(HEALTH_STATUS_I18N_FETCH_ERROR, { issuableType: this.issuableType }),\n });\n Sentry.captureException(error);\n },\n },\n },\n computed: {\n canEdit() {\n return this.canUpdate && this.isOpen;\n },\n healthStatus() {\n return this.issuable?.healthStatus;\n },\n healthStatusText() {\n return this.healthStatus ? healthStatusTextMap[this.healthStatus] : HEALTH_STATUS_I18N_NONE;\n },\n healthStatusTooltip() {\n const tooltipText = s__('Sidebar|Health status');\n return this.healthStatus ? `${tooltipText}: ${this.healthStatusText}` : tooltipText;\n },\n isLoading() {\n return this.$apollo.queries.issuable.loading || this.isUpdating;\n },\n isOpen() {\n return this.issuable?.state === STATUS_OPEN || this.issuable?.state === STATUS_REOPENED;\n },\n },\n methods: {\n expandSidebar() {\n // Wait for the open sidebar animation to finish before opening the\n // health status dropdown, otherwise the dropdown is misaligned.\n setTimeout(this.$refs.editable.expand, HEALTH_STATUS_OPEN_DROPDOWN_DELAY);\n },\n showDropdown() {\n this.$refs.dropdown.show();\n },\n updateHealthStatus(healthStatus) {\n this.$refs.editable.collapse();\n if (healthStatus === undefined || healthStatus === this.healthStatus) {\n return;\n }\n\n this.track('change_health_status', { property: healthStatus });\n this.isUpdating = true;\n\n this.$apollo\n .mutate({\n mutation: healthStatusQueries[this.issuableType].mutation,\n variables: {\n healthStatus,\n iid: this.iid,\n projectPath: this.fullPath,\n },\n })\n .then(({ data }) => {\n if (data.updateIssue.errors.length) {\n throw new Error(data.updateIssue.errors.join('\\n'));\n } else {\n this.$emit('statusUpdated', healthStatus);\n }\n })\n .catch((error) => {\n createAlert({\n message: sprintf(HEALTH_STATUS_I18N_UPDATE_ERROR, { issuableType: this.issuableType }),\n });\n Sentry.captureException(error);\n })\n .finally(() => {\n this.isUpdating = false;\n });\n },\n },\n};\n</script>\n\n<template>\n <sidebar-editable-item\n ref=\"editable\"\n class=\"block health-status\"\n :can-edit=\"canEdit\"\n :loading=\"isLoading\"\n :title=\"$options.HEALTH_STATUS_I18N_HEALTH_STATUS\"\n :tracking=\"$options.healthStatusTracking\"\n @close=\"updateHealthStatus\"\n @open=\"showDropdown\"\n >\n <template #collapsed>\n <div\n v-gl-tooltip.left.viewport.title=\"healthStatusTooltip\"\n class=\"sidebar-collapsed-icon\"\n @click=\"expandSidebar\"\n >\n <gl-icon name=\"status-health\" />\n <gl-loading-icon v-if=\"isLoading\" />\n <p v-else class=\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\">\n {{ healthStatusText }}\n </p>\n </div>\n <div class=\"hide-collapsed\">\n <issue-health-status v-if=\"healthStatus\" class=\"gl-mt-2\" :health-status=\"healthStatus\" />\n <span v-else class=\"gl-text-subtle\">{{ $options.HEALTH_STATUS_I18N_NONE }}</span>\n </div>\n </template>\n <template #default>\n <health-status-dropdown\n ref=\"dropdown\"\n :health-status=\"healthStatus\"\n @change=\"updateHealthStatus\"\n />\n </template>\n </sidebar-editable-item>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_health_status_widget.vue?vue&type=template&id=f5723bee\"\nimport script from \"./sidebar_health_status_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_health_status_widget.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 * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return '<Buffer ' + str + '>'\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","(function webpackUniversalModuleDefinition(root, factory) {\n/* istanbul ignore next */\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n/* istanbul ignore next */\n\telse if(typeof exports === 'object')\n\t\texports[\"esprima\"] = factory();\n\telse\n\t\troot[\"esprima\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/* istanbul ignore if */\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\t/*\n\t Copyright JS Foundation and other contributors, https://js.foundation/\n\n\t Redistribution and use in source and binary forms, with or without\n\t modification, are permitted provided that the following conditions are met:\n\n\t * Redistributions of source code must retain the above copyright\n\t notice, this list of conditions and the following disclaimer.\n\t * Redistributions in binary form must reproduce the above copyright\n\t notice, this list of conditions and the following disclaimer in the\n\t documentation and/or other materials provided with the distribution.\n\n\t THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\n\t AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n\t IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n\t ARE DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY\n\t DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n\t (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n\t LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n\t ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n\t (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF\n\t THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t*/\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar comment_handler_1 = __webpack_require__(1);\n\tvar jsx_parser_1 = __webpack_require__(3);\n\tvar parser_1 = __webpack_require__(8);\n\tvar tokenizer_1 = __webpack_require__(15);\n\tfunction parse(code, options, delegate) {\n\t var commentHandler = null;\n\t var proxyDelegate = function (node, metadata) {\n\t if (delegate) {\n\t delegate(node, metadata);\n\t }\n\t if (commentHandler) {\n\t commentHandler.visit(node, metadata);\n\t }\n\t };\n\t var parserDelegate = (typeof delegate === 'function') ? proxyDelegate : null;\n\t var collectComment = false;\n\t if (options) {\n\t collectComment = (typeof options.comment === 'boolean' && options.comment);\n\t var attachComment = (typeof options.attachComment === 'boolean' && options.attachComment);\n\t if (collectComment || attachComment) {\n\t commentHandler = new comment_handler_1.CommentHandler();\n\t commentHandler.attach = attachComment;\n\t options.comment = true;\n\t parserDelegate = proxyDelegate;\n\t }\n\t }\n\t var isModule = false;\n\t if (options && typeof options.sourceType === 'string') {\n\t isModule = (options.sourceType === 'module');\n\t }\n\t var parser;\n\t if (options && typeof options.jsx === 'boolean' && options.jsx) {\n\t parser = new jsx_parser_1.JSXParser(code, options, parserDelegate);\n\t }\n\t else {\n\t parser = new parser_1.Parser(code, options, parserDelegate);\n\t }\n\t var program = isModule ? parser.parseModule() : parser.parseScript();\n\t var ast = program;\n\t if (collectComment && commentHandler) {\n\t ast.comments = commentHandler.comments;\n\t }\n\t if (parser.config.tokens) {\n\t ast.tokens = parser.tokens;\n\t }\n\t if (parser.config.tolerant) {\n\t ast.errors = parser.errorHandler.errors;\n\t }\n\t return ast;\n\t}\n\texports.parse = parse;\n\tfunction parseModule(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'module';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseModule = parseModule;\n\tfunction parseScript(code, options, delegate) {\n\t var parsingOptions = options || {};\n\t parsingOptions.sourceType = 'script';\n\t return parse(code, parsingOptions, delegate);\n\t}\n\texports.parseScript = parseScript;\n\tfunction tokenize(code, options, delegate) {\n\t var tokenizer = new tokenizer_1.Tokenizer(code, options);\n\t var tokens;\n\t tokens = [];\n\t try {\n\t while (true) {\n\t var token = tokenizer.getNextToken();\n\t if (!token) {\n\t break;\n\t }\n\t if (delegate) {\n\t token = delegate(token);\n\t }\n\t tokens.push(token);\n\t }\n\t }\n\t catch (e) {\n\t tokenizer.errorHandler.tolerate(e);\n\t }\n\t if (tokenizer.errorHandler.tolerant) {\n\t tokens.errors = tokenizer.errors();\n\t }\n\t return tokens;\n\t}\n\texports.tokenize = tokenize;\n\tvar syntax_1 = __webpack_require__(2);\n\texports.Syntax = syntax_1.Syntax;\n\t// Sync with *.json manifests.\n\texports.version = '4.0.1';\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\tvar CommentHandler = (function () {\n\t function CommentHandler() {\n\t this.attach = false;\n\t this.comments = [];\n\t this.stack = [];\n\t this.leading = [];\n\t this.trailing = [];\n\t }\n\t CommentHandler.prototype.insertInnerComments = function (node, metadata) {\n\t // innnerComments for properties empty block\n\t // `function a() {/** comments **\\/}`\n\t if (node.type === syntax_1.Syntax.BlockStatement && node.body.length === 0) {\n\t var innerComments = [];\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (metadata.end.offset >= entry.start) {\n\t innerComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t this.trailing.splice(i, 1);\n\t }\n\t }\n\t if (innerComments.length) {\n\t node.innerComments = innerComments;\n\t }\n\t }\n\t };\n\t CommentHandler.prototype.findTrailingComments = function (metadata) {\n\t var trailingComments = [];\n\t if (this.trailing.length > 0) {\n\t for (var i = this.trailing.length - 1; i >= 0; --i) {\n\t var entry_1 = this.trailing[i];\n\t if (entry_1.start >= metadata.end.offset) {\n\t trailingComments.unshift(entry_1.comment);\n\t }\n\t }\n\t this.trailing.length = 0;\n\t return trailingComments;\n\t }\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.node.trailingComments) {\n\t var firstComment = entry.node.trailingComments[0];\n\t if (firstComment && firstComment.range[0] >= metadata.end.offset) {\n\t trailingComments = entry.node.trailingComments;\n\t delete entry.node.trailingComments;\n\t }\n\t }\n\t return trailingComments;\n\t };\n\t CommentHandler.prototype.findLeadingComments = function (metadata) {\n\t var leadingComments = [];\n\t var target;\n\t while (this.stack.length > 0) {\n\t var entry = this.stack[this.stack.length - 1];\n\t if (entry && entry.start >= metadata.start.offset) {\n\t target = entry.node;\n\t this.stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t if (target) {\n\t var count = target.leadingComments ? target.leadingComments.length : 0;\n\t for (var i = count - 1; i >= 0; --i) {\n\t var comment = target.leadingComments[i];\n\t if (comment.range[1] <= metadata.start.offset) {\n\t leadingComments.unshift(comment);\n\t target.leadingComments.splice(i, 1);\n\t }\n\t }\n\t if (target.leadingComments && target.leadingComments.length === 0) {\n\t delete target.leadingComments;\n\t }\n\t return leadingComments;\n\t }\n\t for (var i = this.leading.length - 1; i >= 0; --i) {\n\t var entry = this.leading[i];\n\t if (entry.start <= metadata.start.offset) {\n\t leadingComments.unshift(entry.comment);\n\t this.leading.splice(i, 1);\n\t }\n\t }\n\t return leadingComments;\n\t };\n\t CommentHandler.prototype.visitNode = function (node, metadata) {\n\t if (node.type === syntax_1.Syntax.Program && node.body.length > 0) {\n\t return;\n\t }\n\t this.insertInnerComments(node, metadata);\n\t var trailingComments = this.findTrailingComments(metadata);\n\t var leadingComments = this.findLeadingComments(metadata);\n\t if (leadingComments.length > 0) {\n\t node.leadingComments = leadingComments;\n\t }\n\t if (trailingComments.length > 0) {\n\t node.trailingComments = trailingComments;\n\t }\n\t this.stack.push({\n\t node: node,\n\t start: metadata.start.offset\n\t });\n\t };\n\t CommentHandler.prototype.visitComment = function (node, metadata) {\n\t var type = (node.type[0] === 'L') ? 'Line' : 'Block';\n\t var comment = {\n\t type: type,\n\t value: node.value\n\t };\n\t if (node.range) {\n\t comment.range = node.range;\n\t }\n\t if (node.loc) {\n\t comment.loc = node.loc;\n\t }\n\t this.comments.push(comment);\n\t if (this.attach) {\n\t var entry = {\n\t comment: {\n\t type: type,\n\t value: node.value,\n\t range: [metadata.start.offset, metadata.end.offset]\n\t },\n\t start: metadata.start.offset\n\t };\n\t if (node.loc) {\n\t entry.comment.loc = node.loc;\n\t }\n\t node.type = type;\n\t this.leading.push(entry);\n\t this.trailing.push(entry);\n\t }\n\t };\n\t CommentHandler.prototype.visit = function (node, metadata) {\n\t if (node.type === 'LineComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (node.type === 'BlockComment') {\n\t this.visitComment(node, metadata);\n\t }\n\t else if (this.attach) {\n\t this.visitNode(node, metadata);\n\t }\n\t };\n\t return CommentHandler;\n\t}());\n\texports.CommentHandler = CommentHandler;\n\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.Syntax = {\n\t AssignmentExpression: 'AssignmentExpression',\n\t AssignmentPattern: 'AssignmentPattern',\n\t ArrayExpression: 'ArrayExpression',\n\t ArrayPattern: 'ArrayPattern',\n\t ArrowFunctionExpression: 'ArrowFunctionExpression',\n\t AwaitExpression: 'AwaitExpression',\n\t BlockStatement: 'BlockStatement',\n\t BinaryExpression: 'BinaryExpression',\n\t BreakStatement: 'BreakStatement',\n\t CallExpression: 'CallExpression',\n\t CatchClause: 'CatchClause',\n\t ClassBody: 'ClassBody',\n\t ClassDeclaration: 'ClassDeclaration',\n\t ClassExpression: 'ClassExpression',\n\t ConditionalExpression: 'ConditionalExpression',\n\t ContinueStatement: 'ContinueStatement',\n\t DoWhileStatement: 'DoWhileStatement',\n\t DebuggerStatement: 'DebuggerStatement',\n\t EmptyStatement: 'EmptyStatement',\n\t ExportAllDeclaration: 'ExportAllDeclaration',\n\t ExportDefaultDeclaration: 'ExportDefaultDeclaration',\n\t ExportNamedDeclaration: 'ExportNamedDeclaration',\n\t ExportSpecifier: 'ExportSpecifier',\n\t ExpressionStatement: 'ExpressionStatement',\n\t ForStatement: 'ForStatement',\n\t ForOfStatement: 'ForOfStatement',\n\t ForInStatement: 'ForInStatement',\n\t FunctionDeclaration: 'FunctionDeclaration',\n\t FunctionExpression: 'FunctionExpression',\n\t Identifier: 'Identifier',\n\t IfStatement: 'IfStatement',\n\t ImportDeclaration: 'ImportDeclaration',\n\t ImportDefaultSpecifier: 'ImportDefaultSpecifier',\n\t ImportNamespaceSpecifier: 'ImportNamespaceSpecifier',\n\t ImportSpecifier: 'ImportSpecifier',\n\t Literal: 'Literal',\n\t LabeledStatement: 'LabeledStatement',\n\t LogicalExpression: 'LogicalExpression',\n\t MemberExpression: 'MemberExpression',\n\t MetaProperty: 'MetaProperty',\n\t MethodDefinition: 'MethodDefinition',\n\t NewExpression: 'NewExpression',\n\t ObjectExpression: 'ObjectExpression',\n\t ObjectPattern: 'ObjectPattern',\n\t Program: 'Program',\n\t Property: 'Property',\n\t RestElement: 'RestElement',\n\t ReturnStatement: 'ReturnStatement',\n\t SequenceExpression: 'SequenceExpression',\n\t SpreadElement: 'SpreadElement',\n\t Super: 'Super',\n\t SwitchCase: 'SwitchCase',\n\t SwitchStatement: 'SwitchStatement',\n\t TaggedTemplateExpression: 'TaggedTemplateExpression',\n\t TemplateElement: 'TemplateElement',\n\t TemplateLiteral: 'TemplateLiteral',\n\t ThisExpression: 'ThisExpression',\n\t ThrowStatement: 'ThrowStatement',\n\t TryStatement: 'TryStatement',\n\t UnaryExpression: 'UnaryExpression',\n\t UpdateExpression: 'UpdateExpression',\n\t VariableDeclaration: 'VariableDeclaration',\n\t VariableDeclarator: 'VariableDeclarator',\n\t WhileStatement: 'WhileStatement',\n\t WithStatement: 'WithStatement',\n\t YieldExpression: 'YieldExpression'\n\t};\n\n\n/***/ },\n/* 3 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n/* istanbul ignore next */\n\tvar __extends = (this && this.__extends) || (function () {\n\t var extendStatics = Object.setPrototypeOf ||\n\t ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n\t function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n\t return function (d, b) {\n\t extendStatics(d, b);\n\t function __() { this.constructor = d; }\n\t d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n\t };\n\t})();\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar character_1 = __webpack_require__(4);\n\tvar JSXNode = __webpack_require__(5);\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\tvar Node = __webpack_require__(7);\n\tvar parser_1 = __webpack_require__(8);\n\tvar token_1 = __webpack_require__(13);\n\tvar xhtml_entities_1 = __webpack_require__(14);\n\ttoken_1.TokenName[100 /* Identifier */] = 'JSXIdentifier';\n\ttoken_1.TokenName[101 /* Text */] = 'JSXText';\n\t// Fully qualified element name, e.g. <svg:path> returns \"svg:path\"\n\tfunction getQualifiedElementName(elementName) {\n\t var qualifiedName;\n\t switch (elementName.type) {\n\t case jsx_syntax_1.JSXSyntax.JSXIdentifier:\n\t var id = elementName;\n\t qualifiedName = id.name;\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXNamespacedName:\n\t var ns = elementName;\n\t qualifiedName = getQualifiedElementName(ns.namespace) + ':' +\n\t getQualifiedElementName(ns.name);\n\t break;\n\t case jsx_syntax_1.JSXSyntax.JSXMemberExpression:\n\t var expr = elementName;\n\t qualifiedName = getQualifiedElementName(expr.object) + '.' +\n\t getQualifiedElementName(expr.property);\n\t break;\n\t /* istanbul ignore next */\n\t default:\n\t break;\n\t }\n\t return qualifiedName;\n\t}\n\tvar JSXParser = (function (_super) {\n\t __extends(JSXParser, _super);\n\t function JSXParser(code, options, delegate) {\n\t return _super.call(this, code, options, delegate) || this;\n\t }\n\t JSXParser.prototype.parsePrimaryExpression = function () {\n\t return this.match('<') ? this.parseJSXRoot() : _super.prototype.parsePrimaryExpression.call(this);\n\t };\n\t JSXParser.prototype.startJSX = function () {\n\t // Unwind the scanner before the lookahead token.\n\t this.scanner.index = this.startMarker.index;\n\t this.scanner.lineNumber = this.startMarker.line;\n\t this.scanner.lineStart = this.startMarker.index - this.startMarker.column;\n\t };\n\t JSXParser.prototype.finishJSX = function () {\n\t // Prime the next lookahead.\n\t this.nextToken();\n\t };\n\t JSXParser.prototype.reenterJSX = function () {\n\t this.startJSX();\n\t this.expectJSX('}');\n\t // Pop the closing '}' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t };\n\t JSXParser.prototype.createJSXNode = function () {\n\t this.collectComments();\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.createJSXChildNode = function () {\n\t return {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t };\n\t JSXParser.prototype.scanXHTMLEntity = function (quote) {\n\t var result = '&';\n\t var valid = true;\n\t var terminated = false;\n\t var numeric = false;\n\t var hex = false;\n\t while (!this.scanner.eof() && valid && !terminated) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === quote) {\n\t break;\n\t }\n\t terminated = (ch === ';');\n\t result += ch;\n\t ++this.scanner.index;\n\t if (!terminated) {\n\t switch (result.length) {\n\t case 2:\n\t // e.g. '{'\n\t numeric = (ch === '#');\n\t break;\n\t case 3:\n\t if (numeric) {\n\t // e.g. 'A'\n\t hex = (ch === 'x');\n\t valid = hex || character_1.Character.isDecimalDigit(ch.charCodeAt(0));\n\t numeric = numeric && !hex;\n\t }\n\t break;\n\t default:\n\t valid = valid && !(numeric && !character_1.Character.isDecimalDigit(ch.charCodeAt(0)));\n\t valid = valid && !(hex && !character_1.Character.isHexDigit(ch.charCodeAt(0)));\n\t break;\n\t }\n\t }\n\t }\n\t if (valid && terminated && result.length > 2) {\n\t // e.g. 'A' becomes just '#x41'\n\t var str = result.substr(1, result.length - 2);\n\t if (numeric && str.length > 1) {\n\t result = String.fromCharCode(parseInt(str.substr(1), 10));\n\t }\n\t else if (hex && str.length > 2) {\n\t result = String.fromCharCode(parseInt('0' + str.substr(1), 16));\n\t }\n\t else if (!numeric && !hex && xhtml_entities_1.XHTMLEntities[str]) {\n\t result = xhtml_entities_1.XHTMLEntities[str];\n\t }\n\t }\n\t return result;\n\t };\n\t // Scan the next JSX token. This replaces Scanner#lex when in JSX mode.\n\t JSXParser.prototype.lexJSX = function () {\n\t var cp = this.scanner.source.charCodeAt(this.scanner.index);\n\t // < > / : = { }\n\t if (cp === 60 || cp === 62 || cp === 47 || cp === 58 || cp === 61 || cp === 123 || cp === 125) {\n\t var value = this.scanner.source[this.scanner.index++];\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index - 1,\n\t end: this.scanner.index\n\t };\n\t }\n\t // \" '\n\t if (cp === 34 || cp === 39) {\n\t var start = this.scanner.index;\n\t var quote = this.scanner.source[this.scanner.index++];\n\t var str = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index++];\n\t if (ch === quote) {\n\t break;\n\t }\n\t else if (ch === '&') {\n\t str += this.scanXHTMLEntity(quote);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // ... or .\n\t if (cp === 46) {\n\t var n1 = this.scanner.source.charCodeAt(this.scanner.index + 1);\n\t var n2 = this.scanner.source.charCodeAt(this.scanner.index + 2);\n\t var value = (n1 === 46 && n2 === 46) ? '...' : '.';\n\t var start = this.scanner.index;\n\t this.scanner.index += value.length;\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: value,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t // `\n\t if (cp === 96) {\n\t // Only placeholder, since it will be rescanned as a real assignment expression.\n\t return {\n\t type: 10 /* Template */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: this.scanner.index,\n\t end: this.scanner.index\n\t };\n\t }\n\t // Identifer can not contain backslash (char code 92).\n\t if (character_1.Character.isIdentifierStart(cp) && (cp !== 92)) {\n\t var start = this.scanner.index;\n\t ++this.scanner.index;\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source.charCodeAt(this.scanner.index);\n\t if (character_1.Character.isIdentifierPart(ch) && (ch !== 92)) {\n\t ++this.scanner.index;\n\t }\n\t else if (ch === 45) {\n\t // Hyphen (char code 45) can be part of an identifier.\n\t ++this.scanner.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t var id = this.scanner.source.slice(start, this.scanner.index);\n\t return {\n\t type: 100 /* Identifier */,\n\t value: id,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t }\n\t return this.scanner.lex();\n\t };\n\t JSXParser.prototype.nextJSXToken = function () {\n\t this.collectComments();\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = this.lexJSX();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t if (this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.nextJSXText = function () {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var start = this.scanner.index;\n\t var text = '';\n\t while (!this.scanner.eof()) {\n\t var ch = this.scanner.source[this.scanner.index];\n\t if (ch === '{' || ch === '<') {\n\t break;\n\t }\n\t ++this.scanner.index;\n\t text += ch;\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.scanner.lineNumber;\n\t if (ch === '\\r' && this.scanner.source[this.scanner.index] === '\\n') {\n\t ++this.scanner.index;\n\t }\n\t this.scanner.lineStart = this.scanner.index;\n\t }\n\t }\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t var token = {\n\t type: 101 /* Text */,\n\t value: text,\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: this.scanner.lineStart,\n\t start: start,\n\t end: this.scanner.index\n\t };\n\t if ((text.length > 0) && this.config.tokens) {\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t return token;\n\t };\n\t JSXParser.prototype.peekJSXToken = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.lexJSX();\n\t this.scanner.restoreState(state);\n\t return next;\n\t };\n\t // Expect the next JSX token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t JSXParser.prototype.expectJSX = function (value) {\n\t var token = this.nextJSXToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next JSX token matches the specified punctuator.\n\t JSXParser.prototype.matchJSX = function (value) {\n\t var next = this.peekJSXToken();\n\t return next.type === 7 /* Punctuator */ && next.value === value;\n\t };\n\t JSXParser.prototype.parseJSXIdentifier = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 100 /* Identifier */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new JSXNode.JSXIdentifier(token.value));\n\t };\n\t JSXParser.prototype.parseJSXElementName = function () {\n\t var node = this.createJSXNode();\n\t var elementName = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = elementName;\n\t this.expectJSX(':');\n\t var name_1 = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_1));\n\t }\n\t else if (this.matchJSX('.')) {\n\t while (this.matchJSX('.')) {\n\t var object = elementName;\n\t this.expectJSX('.');\n\t var property = this.parseJSXIdentifier();\n\t elementName = this.finalize(node, new JSXNode.JSXMemberExpression(object, property));\n\t }\n\t }\n\t return elementName;\n\t };\n\t JSXParser.prototype.parseJSXAttributeName = function () {\n\t var node = this.createJSXNode();\n\t var attributeName;\n\t var identifier = this.parseJSXIdentifier();\n\t if (this.matchJSX(':')) {\n\t var namespace = identifier;\n\t this.expectJSX(':');\n\t var name_2 = this.parseJSXIdentifier();\n\t attributeName = this.finalize(node, new JSXNode.JSXNamespacedName(namespace, name_2));\n\t }\n\t else {\n\t attributeName = identifier;\n\t }\n\t return attributeName;\n\t };\n\t JSXParser.prototype.parseJSXStringLiteralAttribute = function () {\n\t var node = this.createJSXNode();\n\t var token = this.nextJSXToken();\n\t if (token.type !== 8 /* StringLiteral */) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t JSXParser.prototype.parseJSXExpressionAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.finishJSX();\n\t if (this.match('}')) {\n\t this.tolerateError('JSX attributes must only be assigned a non-empty expression');\n\t }\n\t var expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXAttributeValue = function () {\n\t return this.matchJSX('{') ? this.parseJSXExpressionAttribute() :\n\t this.matchJSX('<') ? this.parseJSXElement() : this.parseJSXStringLiteralAttribute();\n\t };\n\t JSXParser.prototype.parseJSXNameValueAttribute = function () {\n\t var node = this.createJSXNode();\n\t var name = this.parseJSXAttributeName();\n\t var value = null;\n\t if (this.matchJSX('=')) {\n\t this.expectJSX('=');\n\t value = this.parseJSXAttributeValue();\n\t }\n\t return this.finalize(node, new JSXNode.JSXAttribute(name, value));\n\t };\n\t JSXParser.prototype.parseJSXSpreadAttribute = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t this.expectJSX('...');\n\t this.finishJSX();\n\t var argument = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t return this.finalize(node, new JSXNode.JSXSpreadAttribute(argument));\n\t };\n\t JSXParser.prototype.parseJSXAttributes = function () {\n\t var attributes = [];\n\t while (!this.matchJSX('/') && !this.matchJSX('>')) {\n\t var attribute = this.matchJSX('{') ? this.parseJSXSpreadAttribute() :\n\t this.parseJSXNameValueAttribute();\n\t attributes.push(attribute);\n\t }\n\t return attributes;\n\t };\n\t JSXParser.prototype.parseJSXOpeningElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXBoundaryElement = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('<');\n\t if (this.matchJSX('/')) {\n\t this.expectJSX('/');\n\t var name_3 = this.parseJSXElementName();\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXClosingElement(name_3));\n\t }\n\t var name = this.parseJSXElementName();\n\t var attributes = this.parseJSXAttributes();\n\t var selfClosing = this.matchJSX('/');\n\t if (selfClosing) {\n\t this.expectJSX('/');\n\t }\n\t this.expectJSX('>');\n\t return this.finalize(node, new JSXNode.JSXOpeningElement(name, selfClosing, attributes));\n\t };\n\t JSXParser.prototype.parseJSXEmptyExpression = function () {\n\t var node = this.createJSXChildNode();\n\t this.collectComments();\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t return this.finalize(node, new JSXNode.JSXEmptyExpression());\n\t };\n\t JSXParser.prototype.parseJSXExpressionContainer = function () {\n\t var node = this.createJSXNode();\n\t this.expectJSX('{');\n\t var expression;\n\t if (this.matchJSX('}')) {\n\t expression = this.parseJSXEmptyExpression();\n\t this.expectJSX('}');\n\t }\n\t else {\n\t this.finishJSX();\n\t expression = this.parseAssignmentExpression();\n\t this.reenterJSX();\n\t }\n\t return this.finalize(node, new JSXNode.JSXExpressionContainer(expression));\n\t };\n\t JSXParser.prototype.parseJSXChildren = function () {\n\t var children = [];\n\t while (!this.scanner.eof()) {\n\t var node = this.createJSXChildNode();\n\t var token = this.nextJSXText();\n\t if (token.start < token.end) {\n\t var raw = this.getTokenRaw(token);\n\t var child = this.finalize(node, new JSXNode.JSXText(token.value, raw));\n\t children.push(child);\n\t }\n\t if (this.scanner.source[this.scanner.index] === '{') {\n\t var container = this.parseJSXExpressionContainer();\n\t children.push(container);\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return children;\n\t };\n\t JSXParser.prototype.parseComplexJSXElement = function (el) {\n\t var stack = [];\n\t while (!this.scanner.eof()) {\n\t el.children = el.children.concat(this.parseJSXChildren());\n\t var node = this.createJSXChildNode();\n\t var element = this.parseJSXBoundaryElement();\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXOpeningElement) {\n\t var opening = element;\n\t if (opening.selfClosing) {\n\t var child = this.finalize(node, new JSXNode.JSXElement(opening, [], null));\n\t el.children.push(child);\n\t }\n\t else {\n\t stack.push(el);\n\t el = { node: node, opening: opening, closing: null, children: [] };\n\t }\n\t }\n\t if (element.type === jsx_syntax_1.JSXSyntax.JSXClosingElement) {\n\t el.closing = element;\n\t var open_1 = getQualifiedElementName(el.opening.name);\n\t var close_1 = getQualifiedElementName(el.closing.name);\n\t if (open_1 !== close_1) {\n\t this.tolerateError('Expected corresponding JSX closing tag for %0', open_1);\n\t }\n\t if (stack.length > 0) {\n\t var child = this.finalize(el.node, new JSXNode.JSXElement(el.opening, el.children, el.closing));\n\t el = stack[stack.length - 1];\n\t el.children.push(child);\n\t stack.pop();\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t }\n\t return el;\n\t };\n\t JSXParser.prototype.parseJSXElement = function () {\n\t var node = this.createJSXNode();\n\t var opening = this.parseJSXOpeningElement();\n\t var children = [];\n\t var closing = null;\n\t if (!opening.selfClosing) {\n\t var el = this.parseComplexJSXElement({ node: node, opening: opening, closing: closing, children: children });\n\t children = el.children;\n\t closing = el.closing;\n\t }\n\t return this.finalize(node, new JSXNode.JSXElement(opening, children, closing));\n\t };\n\t JSXParser.prototype.parseJSXRoot = function () {\n\t // Pop the opening '<' added from the lookahead.\n\t if (this.config.tokens) {\n\t this.tokens.pop();\n\t }\n\t this.startJSX();\n\t var element = this.parseJSXElement();\n\t this.finishJSX();\n\t return element;\n\t };\n\t JSXParser.prototype.isStartOfExpression = function () {\n\t return _super.prototype.isStartOfExpression.call(this) || this.match('<');\n\t };\n\t return JSXParser;\n\t}(parser_1.Parser));\n\texports.JSXParser = JSXParser;\n\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// See also tools/generate-unicode-regex.js.\n\tvar Regex = {\n\t // Unicode v8.0.0 NonAsciiIdentifierStart:\n\t NonAsciiIdentifierStart: /[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309B-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF75\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00\\uDE10-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE4\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC03-\\uDC37\\uDC83-\\uDCAF\\uDCD0-\\uDCE8\\uDD03-\\uDD26\\uDD50-\\uDD72\\uDD76\\uDD83-\\uDDB2\\uDDC1-\\uDDC4\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE2B\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEDE\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3D\\uDF50\\uDF5D-\\uDF61]|\\uD805[\\uDC80-\\uDCAF\\uDCC4\\uDCC5\\uDCC7\\uDD80-\\uDDAE\\uDDD8-\\uDDDB\\uDE00-\\uDE2F\\uDE44\\uDE80-\\uDEAA\\uDF00-\\uDF19]|\\uD806[\\uDCA0-\\uDCDF\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDED0-\\uDEED\\uDF00-\\uDF2F\\uDF40-\\uDF43\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50\\uDF93-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB]|\\uD83A[\\uDC00-\\uDCC4]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]/,\n\t // Unicode v8.0.0 NonAsciiIdentifierPart:\n\t NonAsciiIdentifierPart: /[\\xAA\\xB5\\xB7\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B4\\u08E3-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AF9\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58-\\u0C5A\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D5F-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1369-\\u1371\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19DA\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2118-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AD\\uA7B0-\\uA7B7\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA8FD\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]|\\uD800[\\uDC00-\\uDC0B\\uDC0D-\\uDC26\\uDC28-\\uDC3A\\uDC3C\\uDC3D\\uDC3F-\\uDC4D\\uDC50-\\uDC5D\\uDC80-\\uDCFA\\uDD40-\\uDD74\\uDDFD\\uDE80-\\uDE9C\\uDEA0-\\uDED0\\uDEE0\\uDF00-\\uDF1F\\uDF30-\\uDF4A\\uDF50-\\uDF7A\\uDF80-\\uDF9D\\uDFA0-\\uDFC3\\uDFC8-\\uDFCF\\uDFD1-\\uDFD5]|\\uD801[\\uDC00-\\uDC9D\\uDCA0-\\uDCA9\\uDD00-\\uDD27\\uDD30-\\uDD63\\uDE00-\\uDF36\\uDF40-\\uDF55\\uDF60-\\uDF67]|\\uD802[\\uDC00-\\uDC05\\uDC08\\uDC0A-\\uDC35\\uDC37\\uDC38\\uDC3C\\uDC3F-\\uDC55\\uDC60-\\uDC76\\uDC80-\\uDC9E\\uDCE0-\\uDCF2\\uDCF4\\uDCF5\\uDD00-\\uDD15\\uDD20-\\uDD39\\uDD80-\\uDDB7\\uDDBE\\uDDBF\\uDE00-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE13\\uDE15-\\uDE17\\uDE19-\\uDE33\\uDE38-\\uDE3A\\uDE3F\\uDE60-\\uDE7C\\uDE80-\\uDE9C\\uDEC0-\\uDEC7\\uDEC9-\\uDEE6\\uDF00-\\uDF35\\uDF40-\\uDF55\\uDF60-\\uDF72\\uDF80-\\uDF91]|\\uD803[\\uDC00-\\uDC48\\uDC80-\\uDCB2\\uDCC0-\\uDCF2]|\\uD804[\\uDC00-\\uDC46\\uDC66-\\uDC6F\\uDC7F-\\uDCBA\\uDCD0-\\uDCE8\\uDCF0-\\uDCF9\\uDD00-\\uDD34\\uDD36-\\uDD3F\\uDD50-\\uDD73\\uDD76\\uDD80-\\uDDC4\\uDDCA-\\uDDCC\\uDDD0-\\uDDDA\\uDDDC\\uDE00-\\uDE11\\uDE13-\\uDE37\\uDE80-\\uDE86\\uDE88\\uDE8A-\\uDE8D\\uDE8F-\\uDE9D\\uDE9F-\\uDEA8\\uDEB0-\\uDEEA\\uDEF0-\\uDEF9\\uDF00-\\uDF03\\uDF05-\\uDF0C\\uDF0F\\uDF10\\uDF13-\\uDF28\\uDF2A-\\uDF30\\uDF32\\uDF33\\uDF35-\\uDF39\\uDF3C-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF50\\uDF57\\uDF5D-\\uDF63\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC80-\\uDCC5\\uDCC7\\uDCD0-\\uDCD9\\uDD80-\\uDDB5\\uDDB8-\\uDDC0\\uDDD8-\\uDDDD\\uDE00-\\uDE40\\uDE44\\uDE50-\\uDE59\\uDE80-\\uDEB7\\uDEC0-\\uDEC9\\uDF00-\\uDF19\\uDF1D-\\uDF2B\\uDF30-\\uDF39]|\\uD806[\\uDCA0-\\uDCE9\\uDCFF\\uDEC0-\\uDEF8]|\\uD808[\\uDC00-\\uDF99]|\\uD809[\\uDC00-\\uDC6E\\uDC80-\\uDD43]|[\\uD80C\\uD840-\\uD868\\uD86A-\\uD86C\\uD86F-\\uD872][\\uDC00-\\uDFFF]|\\uD80D[\\uDC00-\\uDC2E]|\\uD811[\\uDC00-\\uDE46]|\\uD81A[\\uDC00-\\uDE38\\uDE40-\\uDE5E\\uDE60-\\uDE69\\uDED0-\\uDEED\\uDEF0-\\uDEF4\\uDF00-\\uDF36\\uDF40-\\uDF43\\uDF50-\\uDF59\\uDF63-\\uDF77\\uDF7D-\\uDF8F]|\\uD81B[\\uDF00-\\uDF44\\uDF50-\\uDF7E\\uDF8F-\\uDF9F]|\\uD82C[\\uDC00\\uDC01]|\\uD82F[\\uDC00-\\uDC6A\\uDC70-\\uDC7C\\uDC80-\\uDC88\\uDC90-\\uDC99\\uDC9D\\uDC9E]|\\uD834[\\uDD65-\\uDD69\\uDD6D-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD835[\\uDC00-\\uDC54\\uDC56-\\uDC9C\\uDC9E\\uDC9F\\uDCA2\\uDCA5\\uDCA6\\uDCA9-\\uDCAC\\uDCAE-\\uDCB9\\uDCBB\\uDCBD-\\uDCC3\\uDCC5-\\uDD05\\uDD07-\\uDD0A\\uDD0D-\\uDD14\\uDD16-\\uDD1C\\uDD1E-\\uDD39\\uDD3B-\\uDD3E\\uDD40-\\uDD44\\uDD46\\uDD4A-\\uDD50\\uDD52-\\uDEA5\\uDEA8-\\uDEC0\\uDEC2-\\uDEDA\\uDEDC-\\uDEFA\\uDEFC-\\uDF14\\uDF16-\\uDF34\\uDF36-\\uDF4E\\uDF50-\\uDF6E\\uDF70-\\uDF88\\uDF8A-\\uDFA8\\uDFAA-\\uDFC2\\uDFC4-\\uDFCB\\uDFCE-\\uDFFF]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD83A[\\uDC00-\\uDCC4\\uDCD0-\\uDCD6]|\\uD83B[\\uDE00-\\uDE03\\uDE05-\\uDE1F\\uDE21\\uDE22\\uDE24\\uDE27\\uDE29-\\uDE32\\uDE34-\\uDE37\\uDE39\\uDE3B\\uDE42\\uDE47\\uDE49\\uDE4B\\uDE4D-\\uDE4F\\uDE51\\uDE52\\uDE54\\uDE57\\uDE59\\uDE5B\\uDE5D\\uDE5F\\uDE61\\uDE62\\uDE64\\uDE67-\\uDE6A\\uDE6C-\\uDE72\\uDE74-\\uDE77\\uDE79-\\uDE7C\\uDE7E\\uDE80-\\uDE89\\uDE8B-\\uDE9B\\uDEA1-\\uDEA3\\uDEA5-\\uDEA9\\uDEAB-\\uDEBB]|\\uD869[\\uDC00-\\uDED6\\uDF00-\\uDFFF]|\\uD86D[\\uDC00-\\uDF34\\uDF40-\\uDFFF]|\\uD86E[\\uDC00-\\uDC1D\\uDC20-\\uDFFF]|\\uD873[\\uDC00-\\uDEA1]|\\uD87E[\\uDC00-\\uDE1D]|\\uDB40[\\uDD00-\\uDDEF]/\n\t};\n\texports.Character = {\n\t /* tslint:disable:no-bitwise */\n\t fromCodePoint: function (cp) {\n\t return (cp < 0x10000) ? String.fromCharCode(cp) :\n\t String.fromCharCode(0xD800 + ((cp - 0x10000) >> 10)) +\n\t String.fromCharCode(0xDC00 + ((cp - 0x10000) & 1023));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-white-space\n\t isWhiteSpace: function (cp) {\n\t return (cp === 0x20) || (cp === 0x09) || (cp === 0x0B) || (cp === 0x0C) || (cp === 0xA0) ||\n\t (cp >= 0x1680 && [0x1680, 0x2000, 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008, 0x2009, 0x200A, 0x202F, 0x205F, 0x3000, 0xFEFF].indexOf(cp) >= 0);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-line-terminators\n\t isLineTerminator: function (cp) {\n\t return (cp === 0x0A) || (cp === 0x0D) || (cp === 0x2028) || (cp === 0x2029);\n\t },\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t isIdentifierStart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierStart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t isIdentifierPart: function (cp) {\n\t return (cp === 0x24) || (cp === 0x5F) ||\n\t (cp >= 0x41 && cp <= 0x5A) ||\n\t (cp >= 0x61 && cp <= 0x7A) ||\n\t (cp >= 0x30 && cp <= 0x39) ||\n\t (cp === 0x5C) ||\n\t ((cp >= 0x80) && Regex.NonAsciiIdentifierPart.test(exports.Character.fromCodePoint(cp)));\n\t },\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t isDecimalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39); // 0..9\n\t },\n\t isHexDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x39) ||\n\t (cp >= 0x41 && cp <= 0x46) ||\n\t (cp >= 0x61 && cp <= 0x66); // a..f\n\t },\n\t isOctalDigit: function (cp) {\n\t return (cp >= 0x30 && cp <= 0x37); // 0..7\n\t }\n\t};\n\n\n/***/ },\n/* 5 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar jsx_syntax_1 = __webpack_require__(6);\n\t/* tslint:disable:max-classes-per-file */\n\tvar JSXClosingElement = (function () {\n\t function JSXClosingElement(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXClosingElement;\n\t this.name = name;\n\t }\n\t return JSXClosingElement;\n\t}());\n\texports.JSXClosingElement = JSXClosingElement;\n\tvar JSXElement = (function () {\n\t function JSXElement(openingElement, children, closingElement) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXElement;\n\t this.openingElement = openingElement;\n\t this.children = children;\n\t this.closingElement = closingElement;\n\t }\n\t return JSXElement;\n\t}());\n\texports.JSXElement = JSXElement;\n\tvar JSXEmptyExpression = (function () {\n\t function JSXEmptyExpression() {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXEmptyExpression;\n\t }\n\t return JSXEmptyExpression;\n\t}());\n\texports.JSXEmptyExpression = JSXEmptyExpression;\n\tvar JSXExpressionContainer = (function () {\n\t function JSXExpressionContainer(expression) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXExpressionContainer;\n\t this.expression = expression;\n\t }\n\t return JSXExpressionContainer;\n\t}());\n\texports.JSXExpressionContainer = JSXExpressionContainer;\n\tvar JSXIdentifier = (function () {\n\t function JSXIdentifier(name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXIdentifier;\n\t this.name = name;\n\t }\n\t return JSXIdentifier;\n\t}());\n\texports.JSXIdentifier = JSXIdentifier;\n\tvar JSXMemberExpression = (function () {\n\t function JSXMemberExpression(object, property) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXMemberExpression;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return JSXMemberExpression;\n\t}());\n\texports.JSXMemberExpression = JSXMemberExpression;\n\tvar JSXAttribute = (function () {\n\t function JSXAttribute(name, value) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXAttribute;\n\t this.name = name;\n\t this.value = value;\n\t }\n\t return JSXAttribute;\n\t}());\n\texports.JSXAttribute = JSXAttribute;\n\tvar JSXNamespacedName = (function () {\n\t function JSXNamespacedName(namespace, name) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXNamespacedName;\n\t this.namespace = namespace;\n\t this.name = name;\n\t }\n\t return JSXNamespacedName;\n\t}());\n\texports.JSXNamespacedName = JSXNamespacedName;\n\tvar JSXOpeningElement = (function () {\n\t function JSXOpeningElement(name, selfClosing, attributes) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXOpeningElement;\n\t this.name = name;\n\t this.selfClosing = selfClosing;\n\t this.attributes = attributes;\n\t }\n\t return JSXOpeningElement;\n\t}());\n\texports.JSXOpeningElement = JSXOpeningElement;\n\tvar JSXSpreadAttribute = (function () {\n\t function JSXSpreadAttribute(argument) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXSpreadAttribute;\n\t this.argument = argument;\n\t }\n\t return JSXSpreadAttribute;\n\t}());\n\texports.JSXSpreadAttribute = JSXSpreadAttribute;\n\tvar JSXText = (function () {\n\t function JSXText(value, raw) {\n\t this.type = jsx_syntax_1.JSXSyntax.JSXText;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return JSXText;\n\t}());\n\texports.JSXText = JSXText;\n\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.JSXSyntax = {\n\t JSXAttribute: 'JSXAttribute',\n\t JSXClosingElement: 'JSXClosingElement',\n\t JSXElement: 'JSXElement',\n\t JSXEmptyExpression: 'JSXEmptyExpression',\n\t JSXExpressionContainer: 'JSXExpressionContainer',\n\t JSXIdentifier: 'JSXIdentifier',\n\t JSXMemberExpression: 'JSXMemberExpression',\n\t JSXNamespacedName: 'JSXNamespacedName',\n\t JSXOpeningElement: 'JSXOpeningElement',\n\t JSXSpreadAttribute: 'JSXSpreadAttribute',\n\t JSXText: 'JSXText'\n\t};\n\n\n/***/ },\n/* 7 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar syntax_1 = __webpack_require__(2);\n\t/* tslint:disable:max-classes-per-file */\n\tvar ArrayExpression = (function () {\n\t function ArrayExpression(elements) {\n\t this.type = syntax_1.Syntax.ArrayExpression;\n\t this.elements = elements;\n\t }\n\t return ArrayExpression;\n\t}());\n\texports.ArrayExpression = ArrayExpression;\n\tvar ArrayPattern = (function () {\n\t function ArrayPattern(elements) {\n\t this.type = syntax_1.Syntax.ArrayPattern;\n\t this.elements = elements;\n\t }\n\t return ArrayPattern;\n\t}());\n\texports.ArrayPattern = ArrayPattern;\n\tvar ArrowFunctionExpression = (function () {\n\t function ArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = false;\n\t }\n\t return ArrowFunctionExpression;\n\t}());\n\texports.ArrowFunctionExpression = ArrowFunctionExpression;\n\tvar AssignmentExpression = (function () {\n\t function AssignmentExpression(operator, left, right) {\n\t this.type = syntax_1.Syntax.AssignmentExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentExpression;\n\t}());\n\texports.AssignmentExpression = AssignmentExpression;\n\tvar AssignmentPattern = (function () {\n\t function AssignmentPattern(left, right) {\n\t this.type = syntax_1.Syntax.AssignmentPattern;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return AssignmentPattern;\n\t}());\n\texports.AssignmentPattern = AssignmentPattern;\n\tvar AsyncArrowFunctionExpression = (function () {\n\t function AsyncArrowFunctionExpression(params, body, expression) {\n\t this.type = syntax_1.Syntax.ArrowFunctionExpression;\n\t this.id = null;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = expression;\n\t this.async = true;\n\t }\n\t return AsyncArrowFunctionExpression;\n\t}());\n\texports.AsyncArrowFunctionExpression = AsyncArrowFunctionExpression;\n\tvar AsyncFunctionDeclaration = (function () {\n\t function AsyncFunctionDeclaration(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionDeclaration;\n\t}());\n\texports.AsyncFunctionDeclaration = AsyncFunctionDeclaration;\n\tvar AsyncFunctionExpression = (function () {\n\t function AsyncFunctionExpression(id, params, body) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = false;\n\t this.expression = false;\n\t this.async = true;\n\t }\n\t return AsyncFunctionExpression;\n\t}());\n\texports.AsyncFunctionExpression = AsyncFunctionExpression;\n\tvar AwaitExpression = (function () {\n\t function AwaitExpression(argument) {\n\t this.type = syntax_1.Syntax.AwaitExpression;\n\t this.argument = argument;\n\t }\n\t return AwaitExpression;\n\t}());\n\texports.AwaitExpression = AwaitExpression;\n\tvar BinaryExpression = (function () {\n\t function BinaryExpression(operator, left, right) {\n\t var logical = (operator === '||' || operator === '&&');\n\t this.type = logical ? syntax_1.Syntax.LogicalExpression : syntax_1.Syntax.BinaryExpression;\n\t this.operator = operator;\n\t this.left = left;\n\t this.right = right;\n\t }\n\t return BinaryExpression;\n\t}());\n\texports.BinaryExpression = BinaryExpression;\n\tvar BlockStatement = (function () {\n\t function BlockStatement(body) {\n\t this.type = syntax_1.Syntax.BlockStatement;\n\t this.body = body;\n\t }\n\t return BlockStatement;\n\t}());\n\texports.BlockStatement = BlockStatement;\n\tvar BreakStatement = (function () {\n\t function BreakStatement(label) {\n\t this.type = syntax_1.Syntax.BreakStatement;\n\t this.label = label;\n\t }\n\t return BreakStatement;\n\t}());\n\texports.BreakStatement = BreakStatement;\n\tvar CallExpression = (function () {\n\t function CallExpression(callee, args) {\n\t this.type = syntax_1.Syntax.CallExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return CallExpression;\n\t}());\n\texports.CallExpression = CallExpression;\n\tvar CatchClause = (function () {\n\t function CatchClause(param, body) {\n\t this.type = syntax_1.Syntax.CatchClause;\n\t this.param = param;\n\t this.body = body;\n\t }\n\t return CatchClause;\n\t}());\n\texports.CatchClause = CatchClause;\n\tvar ClassBody = (function () {\n\t function ClassBody(body) {\n\t this.type = syntax_1.Syntax.ClassBody;\n\t this.body = body;\n\t }\n\t return ClassBody;\n\t}());\n\texports.ClassBody = ClassBody;\n\tvar ClassDeclaration = (function () {\n\t function ClassDeclaration(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassDeclaration;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassDeclaration;\n\t}());\n\texports.ClassDeclaration = ClassDeclaration;\n\tvar ClassExpression = (function () {\n\t function ClassExpression(id, superClass, body) {\n\t this.type = syntax_1.Syntax.ClassExpression;\n\t this.id = id;\n\t this.superClass = superClass;\n\t this.body = body;\n\t }\n\t return ClassExpression;\n\t}());\n\texports.ClassExpression = ClassExpression;\n\tvar ComputedMemberExpression = (function () {\n\t function ComputedMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = true;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return ComputedMemberExpression;\n\t}());\n\texports.ComputedMemberExpression = ComputedMemberExpression;\n\tvar ConditionalExpression = (function () {\n\t function ConditionalExpression(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.ConditionalExpression;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return ConditionalExpression;\n\t}());\n\texports.ConditionalExpression = ConditionalExpression;\n\tvar ContinueStatement = (function () {\n\t function ContinueStatement(label) {\n\t this.type = syntax_1.Syntax.ContinueStatement;\n\t this.label = label;\n\t }\n\t return ContinueStatement;\n\t}());\n\texports.ContinueStatement = ContinueStatement;\n\tvar DebuggerStatement = (function () {\n\t function DebuggerStatement() {\n\t this.type = syntax_1.Syntax.DebuggerStatement;\n\t }\n\t return DebuggerStatement;\n\t}());\n\texports.DebuggerStatement = DebuggerStatement;\n\tvar Directive = (function () {\n\t function Directive(expression, directive) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t this.directive = directive;\n\t }\n\t return Directive;\n\t}());\n\texports.Directive = Directive;\n\tvar DoWhileStatement = (function () {\n\t function DoWhileStatement(body, test) {\n\t this.type = syntax_1.Syntax.DoWhileStatement;\n\t this.body = body;\n\t this.test = test;\n\t }\n\t return DoWhileStatement;\n\t}());\n\texports.DoWhileStatement = DoWhileStatement;\n\tvar EmptyStatement = (function () {\n\t function EmptyStatement() {\n\t this.type = syntax_1.Syntax.EmptyStatement;\n\t }\n\t return EmptyStatement;\n\t}());\n\texports.EmptyStatement = EmptyStatement;\n\tvar ExportAllDeclaration = (function () {\n\t function ExportAllDeclaration(source) {\n\t this.type = syntax_1.Syntax.ExportAllDeclaration;\n\t this.source = source;\n\t }\n\t return ExportAllDeclaration;\n\t}());\n\texports.ExportAllDeclaration = ExportAllDeclaration;\n\tvar ExportDefaultDeclaration = (function () {\n\t function ExportDefaultDeclaration(declaration) {\n\t this.type = syntax_1.Syntax.ExportDefaultDeclaration;\n\t this.declaration = declaration;\n\t }\n\t return ExportDefaultDeclaration;\n\t}());\n\texports.ExportDefaultDeclaration = ExportDefaultDeclaration;\n\tvar ExportNamedDeclaration = (function () {\n\t function ExportNamedDeclaration(declaration, specifiers, source) {\n\t this.type = syntax_1.Syntax.ExportNamedDeclaration;\n\t this.declaration = declaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ExportNamedDeclaration;\n\t}());\n\texports.ExportNamedDeclaration = ExportNamedDeclaration;\n\tvar ExportSpecifier = (function () {\n\t function ExportSpecifier(local, exported) {\n\t this.type = syntax_1.Syntax.ExportSpecifier;\n\t this.exported = exported;\n\t this.local = local;\n\t }\n\t return ExportSpecifier;\n\t}());\n\texports.ExportSpecifier = ExportSpecifier;\n\tvar ExpressionStatement = (function () {\n\t function ExpressionStatement(expression) {\n\t this.type = syntax_1.Syntax.ExpressionStatement;\n\t this.expression = expression;\n\t }\n\t return ExpressionStatement;\n\t}());\n\texports.ExpressionStatement = ExpressionStatement;\n\tvar ForInStatement = (function () {\n\t function ForInStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForInStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t this.each = false;\n\t }\n\t return ForInStatement;\n\t}());\n\texports.ForInStatement = ForInStatement;\n\tvar ForOfStatement = (function () {\n\t function ForOfStatement(left, right, body) {\n\t this.type = syntax_1.Syntax.ForOfStatement;\n\t this.left = left;\n\t this.right = right;\n\t this.body = body;\n\t }\n\t return ForOfStatement;\n\t}());\n\texports.ForOfStatement = ForOfStatement;\n\tvar ForStatement = (function () {\n\t function ForStatement(init, test, update, body) {\n\t this.type = syntax_1.Syntax.ForStatement;\n\t this.init = init;\n\t this.test = test;\n\t this.update = update;\n\t this.body = body;\n\t }\n\t return ForStatement;\n\t}());\n\texports.ForStatement = ForStatement;\n\tvar FunctionDeclaration = (function () {\n\t function FunctionDeclaration(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionDeclaration;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionDeclaration;\n\t}());\n\texports.FunctionDeclaration = FunctionDeclaration;\n\tvar FunctionExpression = (function () {\n\t function FunctionExpression(id, params, body, generator) {\n\t this.type = syntax_1.Syntax.FunctionExpression;\n\t this.id = id;\n\t this.params = params;\n\t this.body = body;\n\t this.generator = generator;\n\t this.expression = false;\n\t this.async = false;\n\t }\n\t return FunctionExpression;\n\t}());\n\texports.FunctionExpression = FunctionExpression;\n\tvar Identifier = (function () {\n\t function Identifier(name) {\n\t this.type = syntax_1.Syntax.Identifier;\n\t this.name = name;\n\t }\n\t return Identifier;\n\t}());\n\texports.Identifier = Identifier;\n\tvar IfStatement = (function () {\n\t function IfStatement(test, consequent, alternate) {\n\t this.type = syntax_1.Syntax.IfStatement;\n\t this.test = test;\n\t this.consequent = consequent;\n\t this.alternate = alternate;\n\t }\n\t return IfStatement;\n\t}());\n\texports.IfStatement = IfStatement;\n\tvar ImportDeclaration = (function () {\n\t function ImportDeclaration(specifiers, source) {\n\t this.type = syntax_1.Syntax.ImportDeclaration;\n\t this.specifiers = specifiers;\n\t this.source = source;\n\t }\n\t return ImportDeclaration;\n\t}());\n\texports.ImportDeclaration = ImportDeclaration;\n\tvar ImportDefaultSpecifier = (function () {\n\t function ImportDefaultSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportDefaultSpecifier;\n\t this.local = local;\n\t }\n\t return ImportDefaultSpecifier;\n\t}());\n\texports.ImportDefaultSpecifier = ImportDefaultSpecifier;\n\tvar ImportNamespaceSpecifier = (function () {\n\t function ImportNamespaceSpecifier(local) {\n\t this.type = syntax_1.Syntax.ImportNamespaceSpecifier;\n\t this.local = local;\n\t }\n\t return ImportNamespaceSpecifier;\n\t}());\n\texports.ImportNamespaceSpecifier = ImportNamespaceSpecifier;\n\tvar ImportSpecifier = (function () {\n\t function ImportSpecifier(local, imported) {\n\t this.type = syntax_1.Syntax.ImportSpecifier;\n\t this.local = local;\n\t this.imported = imported;\n\t }\n\t return ImportSpecifier;\n\t}());\n\texports.ImportSpecifier = ImportSpecifier;\n\tvar LabeledStatement = (function () {\n\t function LabeledStatement(label, body) {\n\t this.type = syntax_1.Syntax.LabeledStatement;\n\t this.label = label;\n\t this.body = body;\n\t }\n\t return LabeledStatement;\n\t}());\n\texports.LabeledStatement = LabeledStatement;\n\tvar Literal = (function () {\n\t function Literal(value, raw) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t }\n\t return Literal;\n\t}());\n\texports.Literal = Literal;\n\tvar MetaProperty = (function () {\n\t function MetaProperty(meta, property) {\n\t this.type = syntax_1.Syntax.MetaProperty;\n\t this.meta = meta;\n\t this.property = property;\n\t }\n\t return MetaProperty;\n\t}());\n\texports.MetaProperty = MetaProperty;\n\tvar MethodDefinition = (function () {\n\t function MethodDefinition(key, computed, value, kind, isStatic) {\n\t this.type = syntax_1.Syntax.MethodDefinition;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.static = isStatic;\n\t }\n\t return MethodDefinition;\n\t}());\n\texports.MethodDefinition = MethodDefinition;\n\tvar Module = (function () {\n\t function Module(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'module';\n\t }\n\t return Module;\n\t}());\n\texports.Module = Module;\n\tvar NewExpression = (function () {\n\t function NewExpression(callee, args) {\n\t this.type = syntax_1.Syntax.NewExpression;\n\t this.callee = callee;\n\t this.arguments = args;\n\t }\n\t return NewExpression;\n\t}());\n\texports.NewExpression = NewExpression;\n\tvar ObjectExpression = (function () {\n\t function ObjectExpression(properties) {\n\t this.type = syntax_1.Syntax.ObjectExpression;\n\t this.properties = properties;\n\t }\n\t return ObjectExpression;\n\t}());\n\texports.ObjectExpression = ObjectExpression;\n\tvar ObjectPattern = (function () {\n\t function ObjectPattern(properties) {\n\t this.type = syntax_1.Syntax.ObjectPattern;\n\t this.properties = properties;\n\t }\n\t return ObjectPattern;\n\t}());\n\texports.ObjectPattern = ObjectPattern;\n\tvar Property = (function () {\n\t function Property(kind, key, computed, value, method, shorthand) {\n\t this.type = syntax_1.Syntax.Property;\n\t this.key = key;\n\t this.computed = computed;\n\t this.value = value;\n\t this.kind = kind;\n\t this.method = method;\n\t this.shorthand = shorthand;\n\t }\n\t return Property;\n\t}());\n\texports.Property = Property;\n\tvar RegexLiteral = (function () {\n\t function RegexLiteral(value, raw, pattern, flags) {\n\t this.type = syntax_1.Syntax.Literal;\n\t this.value = value;\n\t this.raw = raw;\n\t this.regex = { pattern: pattern, flags: flags };\n\t }\n\t return RegexLiteral;\n\t}());\n\texports.RegexLiteral = RegexLiteral;\n\tvar RestElement = (function () {\n\t function RestElement(argument) {\n\t this.type = syntax_1.Syntax.RestElement;\n\t this.argument = argument;\n\t }\n\t return RestElement;\n\t}());\n\texports.RestElement = RestElement;\n\tvar ReturnStatement = (function () {\n\t function ReturnStatement(argument) {\n\t this.type = syntax_1.Syntax.ReturnStatement;\n\t this.argument = argument;\n\t }\n\t return ReturnStatement;\n\t}());\n\texports.ReturnStatement = ReturnStatement;\n\tvar Script = (function () {\n\t function Script(body) {\n\t this.type = syntax_1.Syntax.Program;\n\t this.body = body;\n\t this.sourceType = 'script';\n\t }\n\t return Script;\n\t}());\n\texports.Script = Script;\n\tvar SequenceExpression = (function () {\n\t function SequenceExpression(expressions) {\n\t this.type = syntax_1.Syntax.SequenceExpression;\n\t this.expressions = expressions;\n\t }\n\t return SequenceExpression;\n\t}());\n\texports.SequenceExpression = SequenceExpression;\n\tvar SpreadElement = (function () {\n\t function SpreadElement(argument) {\n\t this.type = syntax_1.Syntax.SpreadElement;\n\t this.argument = argument;\n\t }\n\t return SpreadElement;\n\t}());\n\texports.SpreadElement = SpreadElement;\n\tvar StaticMemberExpression = (function () {\n\t function StaticMemberExpression(object, property) {\n\t this.type = syntax_1.Syntax.MemberExpression;\n\t this.computed = false;\n\t this.object = object;\n\t this.property = property;\n\t }\n\t return StaticMemberExpression;\n\t}());\n\texports.StaticMemberExpression = StaticMemberExpression;\n\tvar Super = (function () {\n\t function Super() {\n\t this.type = syntax_1.Syntax.Super;\n\t }\n\t return Super;\n\t}());\n\texports.Super = Super;\n\tvar SwitchCase = (function () {\n\t function SwitchCase(test, consequent) {\n\t this.type = syntax_1.Syntax.SwitchCase;\n\t this.test = test;\n\t this.consequent = consequent;\n\t }\n\t return SwitchCase;\n\t}());\n\texports.SwitchCase = SwitchCase;\n\tvar SwitchStatement = (function () {\n\t function SwitchStatement(discriminant, cases) {\n\t this.type = syntax_1.Syntax.SwitchStatement;\n\t this.discriminant = discriminant;\n\t this.cases = cases;\n\t }\n\t return SwitchStatement;\n\t}());\n\texports.SwitchStatement = SwitchStatement;\n\tvar TaggedTemplateExpression = (function () {\n\t function TaggedTemplateExpression(tag, quasi) {\n\t this.type = syntax_1.Syntax.TaggedTemplateExpression;\n\t this.tag = tag;\n\t this.quasi = quasi;\n\t }\n\t return TaggedTemplateExpression;\n\t}());\n\texports.TaggedTemplateExpression = TaggedTemplateExpression;\n\tvar TemplateElement = (function () {\n\t function TemplateElement(value, tail) {\n\t this.type = syntax_1.Syntax.TemplateElement;\n\t this.value = value;\n\t this.tail = tail;\n\t }\n\t return TemplateElement;\n\t}());\n\texports.TemplateElement = TemplateElement;\n\tvar TemplateLiteral = (function () {\n\t function TemplateLiteral(quasis, expressions) {\n\t this.type = syntax_1.Syntax.TemplateLiteral;\n\t this.quasis = quasis;\n\t this.expressions = expressions;\n\t }\n\t return TemplateLiteral;\n\t}());\n\texports.TemplateLiteral = TemplateLiteral;\n\tvar ThisExpression = (function () {\n\t function ThisExpression() {\n\t this.type = syntax_1.Syntax.ThisExpression;\n\t }\n\t return ThisExpression;\n\t}());\n\texports.ThisExpression = ThisExpression;\n\tvar ThrowStatement = (function () {\n\t function ThrowStatement(argument) {\n\t this.type = syntax_1.Syntax.ThrowStatement;\n\t this.argument = argument;\n\t }\n\t return ThrowStatement;\n\t}());\n\texports.ThrowStatement = ThrowStatement;\n\tvar TryStatement = (function () {\n\t function TryStatement(block, handler, finalizer) {\n\t this.type = syntax_1.Syntax.TryStatement;\n\t this.block = block;\n\t this.handler = handler;\n\t this.finalizer = finalizer;\n\t }\n\t return TryStatement;\n\t}());\n\texports.TryStatement = TryStatement;\n\tvar UnaryExpression = (function () {\n\t function UnaryExpression(operator, argument) {\n\t this.type = syntax_1.Syntax.UnaryExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = true;\n\t }\n\t return UnaryExpression;\n\t}());\n\texports.UnaryExpression = UnaryExpression;\n\tvar UpdateExpression = (function () {\n\t function UpdateExpression(operator, argument, prefix) {\n\t this.type = syntax_1.Syntax.UpdateExpression;\n\t this.operator = operator;\n\t this.argument = argument;\n\t this.prefix = prefix;\n\t }\n\t return UpdateExpression;\n\t}());\n\texports.UpdateExpression = UpdateExpression;\n\tvar VariableDeclaration = (function () {\n\t function VariableDeclaration(declarations, kind) {\n\t this.type = syntax_1.Syntax.VariableDeclaration;\n\t this.declarations = declarations;\n\t this.kind = kind;\n\t }\n\t return VariableDeclaration;\n\t}());\n\texports.VariableDeclaration = VariableDeclaration;\n\tvar VariableDeclarator = (function () {\n\t function VariableDeclarator(id, init) {\n\t this.type = syntax_1.Syntax.VariableDeclarator;\n\t this.id = id;\n\t this.init = init;\n\t }\n\t return VariableDeclarator;\n\t}());\n\texports.VariableDeclarator = VariableDeclarator;\n\tvar WhileStatement = (function () {\n\t function WhileStatement(test, body) {\n\t this.type = syntax_1.Syntax.WhileStatement;\n\t this.test = test;\n\t this.body = body;\n\t }\n\t return WhileStatement;\n\t}());\n\texports.WhileStatement = WhileStatement;\n\tvar WithStatement = (function () {\n\t function WithStatement(object, body) {\n\t this.type = syntax_1.Syntax.WithStatement;\n\t this.object = object;\n\t this.body = body;\n\t }\n\t return WithStatement;\n\t}());\n\texports.WithStatement = WithStatement;\n\tvar YieldExpression = (function () {\n\t function YieldExpression(argument, delegate) {\n\t this.type = syntax_1.Syntax.YieldExpression;\n\t this.argument = argument;\n\t this.delegate = delegate;\n\t }\n\t return YieldExpression;\n\t}());\n\texports.YieldExpression = YieldExpression;\n\n\n/***/ },\n/* 8 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar messages_1 = __webpack_require__(11);\n\tvar Node = __webpack_require__(7);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar syntax_1 = __webpack_require__(2);\n\tvar token_1 = __webpack_require__(13);\n\tvar ArrowParameterPlaceHolder = 'ArrowParameterPlaceHolder';\n\tvar Parser = (function () {\n\t function Parser(code, options, delegate) {\n\t if (options === void 0) { options = {}; }\n\t this.config = {\n\t range: (typeof options.range === 'boolean') && options.range,\n\t loc: (typeof options.loc === 'boolean') && options.loc,\n\t source: null,\n\t tokens: (typeof options.tokens === 'boolean') && options.tokens,\n\t comment: (typeof options.comment === 'boolean') && options.comment,\n\t tolerant: (typeof options.tolerant === 'boolean') && options.tolerant\n\t };\n\t if (this.config.loc && options.source && options.source !== null) {\n\t this.config.source = String(options.source);\n\t }\n\t this.delegate = delegate;\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = this.config.tolerant;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = this.config.comment;\n\t this.operatorPrecedence = {\n\t ')': 0,\n\t ';': 0,\n\t ',': 0,\n\t '=': 0,\n\t ']': 0,\n\t '||': 1,\n\t '&&': 2,\n\t '|': 3,\n\t '^': 4,\n\t '&': 5,\n\t '==': 6,\n\t '!=': 6,\n\t '===': 6,\n\t '!==': 6,\n\t '<': 7,\n\t '>': 7,\n\t '<=': 7,\n\t '>=': 7,\n\t '<<': 8,\n\t '>>': 8,\n\t '>>>': 8,\n\t '+': 9,\n\t '-': 9,\n\t '*': 11,\n\t '/': 11,\n\t '%': 11\n\t };\n\t this.lookahead = {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.scanner.lineNumber,\n\t lineStart: 0,\n\t start: 0,\n\t end: 0\n\t };\n\t this.hasLineTerminator = false;\n\t this.context = {\n\t isModule: false,\n\t await: false,\n\t allowIn: true,\n\t allowStrictDirective: true,\n\t allowYield: true,\n\t firstCoverInitializedNameError: null,\n\t isAssignmentTarget: false,\n\t isBindingElement: false,\n\t inFunctionBody: false,\n\t inIteration: false,\n\t inSwitch: false,\n\t labelSet: {},\n\t strict: false\n\t };\n\t this.tokens = [];\n\t this.startMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.lastMarker = {\n\t index: 0,\n\t line: this.scanner.lineNumber,\n\t column: 0\n\t };\n\t this.nextToken();\n\t this.lastMarker = {\n\t index: this.scanner.index,\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t }\n\t Parser.prototype.throwError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t throw this.errorHandler.createError(index, line, column, msg);\n\t };\n\t Parser.prototype.tolerateError = function (messageFormat) {\n\t var values = [];\n\t for (var _i = 1; _i < arguments.length; _i++) {\n\t values[_i - 1] = arguments[_i];\n\t }\n\t var args = Array.prototype.slice.call(arguments, 1);\n\t var msg = messageFormat.replace(/%(\\d)/g, function (whole, idx) {\n\t assert_1.assert(idx < args.length, 'Message reference must be in range');\n\t return args[idx];\n\t });\n\t var index = this.lastMarker.index;\n\t var line = this.scanner.lineNumber;\n\t var column = this.lastMarker.column + 1;\n\t this.errorHandler.tolerateError(index, line, column, msg);\n\t };\n\t // Throw an exception because of the token.\n\t Parser.prototype.unexpectedTokenError = function (token, message) {\n\t var msg = message || messages_1.Messages.UnexpectedToken;\n\t var value;\n\t if (token) {\n\t if (!message) {\n\t msg = (token.type === 2 /* EOF */) ? messages_1.Messages.UnexpectedEOS :\n\t (token.type === 3 /* Identifier */) ? messages_1.Messages.UnexpectedIdentifier :\n\t (token.type === 6 /* NumericLiteral */) ? messages_1.Messages.UnexpectedNumber :\n\t (token.type === 8 /* StringLiteral */) ? messages_1.Messages.UnexpectedString :\n\t (token.type === 10 /* Template */) ? messages_1.Messages.UnexpectedTemplate :\n\t messages_1.Messages.UnexpectedToken;\n\t if (token.type === 4 /* Keyword */) {\n\t if (this.scanner.isFutureReservedWord(token.value)) {\n\t msg = messages_1.Messages.UnexpectedReserved;\n\t }\n\t else if (this.context.strict && this.scanner.isStrictModeReservedWord(token.value)) {\n\t msg = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t value = token.value;\n\t }\n\t else {\n\t value = 'ILLEGAL';\n\t }\n\t msg = msg.replace('%0', value);\n\t if (token && typeof token.lineNumber === 'number') {\n\t var index = token.start;\n\t var line = token.lineNumber;\n\t var lastMarkerLineStart = this.lastMarker.index - this.lastMarker.column;\n\t var column = token.start - lastMarkerLineStart + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t else {\n\t var index = this.lastMarker.index;\n\t var line = this.lastMarker.line;\n\t var column = this.lastMarker.column + 1;\n\t return this.errorHandler.createError(index, line, column, msg);\n\t }\n\t };\n\t Parser.prototype.throwUnexpectedToken = function (token, message) {\n\t throw this.unexpectedTokenError(token, message);\n\t };\n\t Parser.prototype.tolerateUnexpectedToken = function (token, message) {\n\t this.errorHandler.tolerate(this.unexpectedTokenError(token, message));\n\t };\n\t Parser.prototype.collectComments = function () {\n\t if (!this.config.comment) {\n\t this.scanner.scanComments();\n\t }\n\t else {\n\t var comments = this.scanner.scanComments();\n\t if (comments.length > 0 && this.delegate) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var node = void 0;\n\t node = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: this.scanner.source.slice(e.slice[0], e.slice[1])\n\t };\n\t if (this.config.range) {\n\t node.range = e.range;\n\t }\n\t if (this.config.loc) {\n\t node.loc = e.loc;\n\t }\n\t var metadata = {\n\t start: {\n\t line: e.loc.start.line,\n\t column: e.loc.start.column,\n\t offset: e.range[0]\n\t },\n\t end: {\n\t line: e.loc.end.line,\n\t column: e.loc.end.column,\n\t offset: e.range[1]\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t }\n\t }\n\t };\n\t // From internal representation to an external structure\n\t Parser.prototype.getTokenRaw = function (token) {\n\t return this.scanner.source.slice(token.start, token.end);\n\t };\n\t Parser.prototype.convertToken = function (token) {\n\t var t = {\n\t type: token_1.TokenName[token.type],\n\t value: this.getTokenRaw(token)\n\t };\n\t if (this.config.range) {\n\t t.range = [token.start, token.end];\n\t }\n\t if (this.config.loc) {\n\t t.loc = {\n\t start: {\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t },\n\t end: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t }\n\t };\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t t.regex = { pattern: pattern, flags: flags };\n\t }\n\t return t;\n\t };\n\t Parser.prototype.nextToken = function () {\n\t var token = this.lookahead;\n\t this.lastMarker.index = this.scanner.index;\n\t this.lastMarker.line = this.scanner.lineNumber;\n\t this.lastMarker.column = this.scanner.index - this.scanner.lineStart;\n\t this.collectComments();\n\t if (this.scanner.index !== this.startMarker.index) {\n\t this.startMarker.index = this.scanner.index;\n\t this.startMarker.line = this.scanner.lineNumber;\n\t this.startMarker.column = this.scanner.index - this.scanner.lineStart;\n\t }\n\t var next = this.scanner.lex();\n\t this.hasLineTerminator = (token.lineNumber !== next.lineNumber);\n\t if (next && this.context.strict && next.type === 3 /* Identifier */) {\n\t if (this.scanner.isStrictModeReservedWord(next.value)) {\n\t next.type = 4 /* Keyword */;\n\t }\n\t }\n\t this.lookahead = next;\n\t if (this.config.tokens && next.type !== 2 /* EOF */) {\n\t this.tokens.push(this.convertToken(next));\n\t }\n\t return token;\n\t };\n\t Parser.prototype.nextRegexToken = function () {\n\t this.collectComments();\n\t var token = this.scanner.scanRegExp();\n\t if (this.config.tokens) {\n\t // Pop the previous token, '/' or '/='\n\t // This is added from the lookahead token.\n\t this.tokens.pop();\n\t this.tokens.push(this.convertToken(token));\n\t }\n\t // Prime the next lookahead.\n\t this.lookahead = token;\n\t this.nextToken();\n\t return token;\n\t };\n\t Parser.prototype.createNode = function () {\n\t return {\n\t index: this.startMarker.index,\n\t line: this.startMarker.line,\n\t column: this.startMarker.column\n\t };\n\t };\n\t Parser.prototype.startNode = function (token, lastLineStart) {\n\t if (lastLineStart === void 0) { lastLineStart = 0; }\n\t var column = token.start - token.lineStart;\n\t var line = token.lineNumber;\n\t if (column < 0) {\n\t column += lastLineStart;\n\t line--;\n\t }\n\t return {\n\t index: token.start,\n\t line: line,\n\t column: column\n\t };\n\t };\n\t Parser.prototype.finalize = function (marker, node) {\n\t if (this.config.range) {\n\t node.range = [marker.index, this.lastMarker.index];\n\t }\n\t if (this.config.loc) {\n\t node.loc = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column\n\t }\n\t };\n\t if (this.config.source) {\n\t node.loc.source = this.config.source;\n\t }\n\t }\n\t if (this.delegate) {\n\t var metadata = {\n\t start: {\n\t line: marker.line,\n\t column: marker.column,\n\t offset: marker.index\n\t },\n\t end: {\n\t line: this.lastMarker.line,\n\t column: this.lastMarker.column,\n\t offset: this.lastMarker.index\n\t }\n\t };\n\t this.delegate(node, metadata);\n\t }\n\t return node;\n\t };\n\t // Expect the next token to match the specified punctuator.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expect = function (value) {\n\t var token = this.nextToken();\n\t if (token.type !== 7 /* Punctuator */ || token.value !== value) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Quietly expect a comma when in tolerant mode, otherwise delegates to expect().\n\t Parser.prototype.expectCommaSeparator = function () {\n\t if (this.config.tolerant) {\n\t var token = this.lookahead;\n\t if (token.type === 7 /* Punctuator */ && token.value === ',') {\n\t this.nextToken();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === ';') {\n\t this.nextToken();\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t else {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.UnexpectedToken);\n\t }\n\t }\n\t else {\n\t this.expect(',');\n\t }\n\t };\n\t // Expect the next token to match the specified keyword.\n\t // If not, an exception will be thrown.\n\t Parser.prototype.expectKeyword = function (keyword) {\n\t var token = this.nextToken();\n\t if (token.type !== 4 /* Keyword */ || token.value !== keyword) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t };\n\t // Return true if the next token matches the specified punctuator.\n\t Parser.prototype.match = function (value) {\n\t return this.lookahead.type === 7 /* Punctuator */ && this.lookahead.value === value;\n\t };\n\t // Return true if the next token matches the specified keyword\n\t Parser.prototype.matchKeyword = function (keyword) {\n\t return this.lookahead.type === 4 /* Keyword */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token matches the specified contextual keyword\n\t // (where an identifier is sometimes a keyword depending on the context)\n\t Parser.prototype.matchContextualKeyword = function (keyword) {\n\t return this.lookahead.type === 3 /* Identifier */ && this.lookahead.value === keyword;\n\t };\n\t // Return true if the next token is an assignment operator\n\t Parser.prototype.matchAssign = function () {\n\t if (this.lookahead.type !== 7 /* Punctuator */) {\n\t return false;\n\t }\n\t var op = this.lookahead.value;\n\t return op === '=' ||\n\t op === '*=' ||\n\t op === '**=' ||\n\t op === '/=' ||\n\t op === '%=' ||\n\t op === '+=' ||\n\t op === '-=' ||\n\t op === '<<=' ||\n\t op === '>>=' ||\n\t op === '>>>=' ||\n\t op === '&=' ||\n\t op === '^=' ||\n\t op === '|=';\n\t };\n\t // Cover grammar support.\n\t //\n\t // When an assignment expression position starts with an left parenthesis, the determination of the type\n\t // of the syntax is to be deferred arbitrarily long until the end of the parentheses pair (plus a lookahead)\n\t // or the first comma. This situation also defers the determination of all the expressions nested in the pair.\n\t //\n\t // There are three productions that can be parsed in a parentheses pair that needs to be determined\n\t // after the outermost pair is closed. They are:\n\t //\n\t // 1. AssignmentExpression\n\t // 2. BindingElements\n\t // 3. AssignmentTargets\n\t //\n\t // In order to avoid exponential backtracking, we use two flags to denote if the production can be\n\t // binding element or assignment target.\n\t //\n\t // The three productions have the relationship:\n\t //\n\t // BindingElements ⊆ AssignmentTargets ⊆ AssignmentExpression\n\t //\n\t // with a single exception that CoverInitializedName when used directly in an Expression, generates\n\t // an early error. Therefore, we need the third state, firstCoverInitializedNameError, to track the\n\t // first usage of CoverInitializedName and report it when we reached the end of the parentheses pair.\n\t //\n\t // isolateCoverGrammar function runs the given parser function with a new cover grammar context, and it does not\n\t // effect the current flags. This means the production the parser parses is only used as an expression. Therefore\n\t // the CoverInitializedName check is conducted.\n\t //\n\t // inheritCoverGrammar function runs the given parse function with a new cover grammar context, and it propagates\n\t // the flags outside of the parser. This means the production the parser parses is used as a part of a potential\n\t // pattern. The CoverInitializedName check is deferred.\n\t Parser.prototype.isolateCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t if (this.context.firstCoverInitializedNameError !== null) {\n\t this.throwUnexpectedToken(this.context.firstCoverInitializedNameError);\n\t }\n\t this.context.isBindingElement = previousIsBindingElement;\n\t this.context.isAssignmentTarget = previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.inheritCoverGrammar = function (parseFunction) {\n\t var previousIsBindingElement = this.context.isBindingElement;\n\t var previousIsAssignmentTarget = this.context.isAssignmentTarget;\n\t var previousFirstCoverInitializedNameError = this.context.firstCoverInitializedNameError;\n\t this.context.isBindingElement = true;\n\t this.context.isAssignmentTarget = true;\n\t this.context.firstCoverInitializedNameError = null;\n\t var result = parseFunction.call(this);\n\t this.context.isBindingElement = this.context.isBindingElement && previousIsBindingElement;\n\t this.context.isAssignmentTarget = this.context.isAssignmentTarget && previousIsAssignmentTarget;\n\t this.context.firstCoverInitializedNameError = previousFirstCoverInitializedNameError || this.context.firstCoverInitializedNameError;\n\t return result;\n\t };\n\t Parser.prototype.consumeSemicolon = function () {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else if (!this.hasLineTerminator) {\n\t if (this.lookahead.type !== 2 /* EOF */ && !this.match('}')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.lastMarker.index = this.startMarker.index;\n\t this.lastMarker.line = this.startMarker.line;\n\t this.lastMarker.column = this.startMarker.column;\n\t }\n\t };\n\t // https://tc39.github.io/ecma262/#sec-primary-expression\n\t Parser.prototype.parsePrimaryExpression = function () {\n\t var node = this.createNode();\n\t var expr;\n\t var token, raw;\n\t switch (this.lookahead.type) {\n\t case 3 /* Identifier */:\n\t if ((this.context.isModule || this.context.await) && this.lookahead.value === 'await') {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t expr = this.matchAsyncFunction() ? this.parseFunctionExpression() : this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t break;\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t if (this.context.strict && this.lookahead.octal) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 1 /* BooleanLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(token.value === 'true', raw));\n\t break;\n\t case 5 /* NullLiteral */:\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t token = this.nextToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.Literal(null, raw));\n\t break;\n\t case 10 /* Template */:\n\t expr = this.parseTemplateLiteral();\n\t break;\n\t case 7 /* Punctuator */:\n\t switch (this.lookahead.value) {\n\t case '(':\n\t this.context.isBindingElement = false;\n\t expr = this.inheritCoverGrammar(this.parseGroupExpression);\n\t break;\n\t case '[':\n\t expr = this.inheritCoverGrammar(this.parseArrayInitializer);\n\t break;\n\t case '{':\n\t expr = this.inheritCoverGrammar(this.parseObjectInitializer);\n\t break;\n\t case '/':\n\t case '/=':\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.scanner.index = this.startMarker.index;\n\t token = this.nextRegexToken();\n\t raw = this.getTokenRaw(token);\n\t expr = this.finalize(node, new Node.RegexLiteral(token.regex, raw, token.pattern, token.flags));\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t break;\n\t case 4 /* Keyword */:\n\t if (!this.context.strict && this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseIdentifierName();\n\t }\n\t else if (!this.context.strict && this.matchKeyword('let')) {\n\t expr = this.finalize(node, new Node.Identifier(this.nextToken().value));\n\t }\n\t else {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t if (this.matchKeyword('function')) {\n\t expr = this.parseFunctionExpression();\n\t }\n\t else if (this.matchKeyword('this')) {\n\t this.nextToken();\n\t expr = this.finalize(node, new Node.ThisExpression());\n\t }\n\t else if (this.matchKeyword('class')) {\n\t expr = this.parseClassExpression();\n\t }\n\t else {\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t break;\n\t default:\n\t expr = this.throwUnexpectedToken(this.nextToken());\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-array-initializer\n\t Parser.prototype.parseSpreadElement = function () {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t return this.finalize(node, new Node.SpreadElement(arg));\n\t };\n\t Parser.prototype.parseArrayInitializer = function () {\n\t var node = this.createNode();\n\t var elements = [];\n\t this.expect('[');\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else if (this.match('...')) {\n\t var element = this.parseSpreadElement();\n\t if (!this.match(']')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t this.expect(',');\n\t }\n\t elements.push(element);\n\t }\n\t else {\n\t elements.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayExpression(elements));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-object-initializer\n\t Parser.prototype.parsePropertyMethod = function (params) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = params.simple;\n\t var body = this.isolateCoverGrammar(this.parseFunctionSourceElements);\n\t if (this.context.strict && params.firstRestricted) {\n\t this.tolerateUnexpectedToken(params.firstRestricted, params.message);\n\t }\n\t if (this.context.strict && params.stricted) {\n\t this.tolerateUnexpectedToken(params.stricted, params.message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t return body;\n\t };\n\t Parser.prototype.parsePropertyMethodFunction = function () {\n\t var isGenerator = false;\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t Parser.prototype.parsePropertyMethodAsyncFunction = function () {\n\t var node = this.createNode();\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = false;\n\t this.context.await = true;\n\t var params = this.parseFormalParameters();\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t return this.finalize(node, new Node.AsyncFunctionExpression(null, params.params, method));\n\t };\n\t Parser.prototype.parseObjectPropertyKey = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var key;\n\t switch (token.type) {\n\t case 8 /* StringLiteral */:\n\t case 6 /* NumericLiteral */:\n\t if (this.context.strict && token.octal) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t var raw = this.getTokenRaw(token);\n\t key = this.finalize(node, new Node.Literal(token.value, raw));\n\t break;\n\t case 3 /* Identifier */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 4 /* Keyword */:\n\t key = this.finalize(node, new Node.Identifier(token.value));\n\t break;\n\t case 7 /* Punctuator */:\n\t if (token.value === '[') {\n\t key = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.expect(']');\n\t }\n\t else {\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t break;\n\t default:\n\t key = this.throwUnexpectedToken(token);\n\t }\n\t return key;\n\t };\n\t Parser.prototype.isPropertyKey = function (key, value) {\n\t return (key.type === syntax_1.Syntax.Identifier && key.name === value) ||\n\t (key.type === syntax_1.Syntax.Literal && key.value === value);\n\t };\n\t Parser.prototype.parseObjectProperty = function (hasProto) {\n\t var node = this.createNode();\n\t var token = this.lookahead;\n\t var kind;\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var shorthand = false;\n\t var isAsync = false;\n\t if (token.type === 3 /* Identifier */) {\n\t var id = token.value;\n\t this.nextToken();\n\t computed = this.match('[');\n\t isAsync = !this.hasLineTerminator && (id === 'async') &&\n\t !this.match(':') && !this.match('(') && !this.match('*') && !this.match(',');\n\t key = isAsync ? this.parseObjectPropertyKey() : this.finalize(node, new Node.Identifier(id));\n\t }\n\t else if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.type === 3 /* Identifier */ && !isAsync && token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t else {\n\t if (!key) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t kind = 'init';\n\t if (this.match(':') && !isAsync) {\n\t if (!computed && this.isPropertyKey(key, '__proto__')) {\n\t if (hasProto.value) {\n\t this.tolerateError(messages_1.Messages.DuplicateProtoProperty);\n\t }\n\t hasProto.value = true;\n\t }\n\t this.nextToken();\n\t value = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (this.match('(')) {\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t else if (token.type === 3 /* Identifier */) {\n\t var id = this.finalize(node, new Node.Identifier(token.value));\n\t if (this.match('=')) {\n\t this.context.firstCoverInitializedNameError = this.lookahead;\n\t this.nextToken();\n\t shorthand = true;\n\t var init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t value = this.finalize(node, new Node.AssignmentPattern(id, init));\n\t }\n\t else {\n\t shorthand = true;\n\t value = id;\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.Property(kind, key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectInitializer = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var properties = [];\n\t var hasProto = { value: false };\n\t while (!this.match('}')) {\n\t properties.push(this.parseObjectProperty(hasProto));\n\t if (!this.match('}')) {\n\t this.expectCommaSeparator();\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectExpression(properties));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literals\n\t Parser.prototype.parseTemplateHead = function () {\n\t assert_1.assert(this.lookahead.head, 'Template literal must start with a template head');\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateElement = function () {\n\t if (this.lookahead.type !== 10 /* Template */) {\n\t this.throwUnexpectedToken();\n\t }\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t var raw = token.value;\n\t var cooked = token.cooked;\n\t return this.finalize(node, new Node.TemplateElement({ raw: raw, cooked: cooked }, token.tail));\n\t };\n\t Parser.prototype.parseTemplateLiteral = function () {\n\t var node = this.createNode();\n\t var expressions = [];\n\t var quasis = [];\n\t var quasi = this.parseTemplateHead();\n\t quasis.push(quasi);\n\t while (!quasi.tail) {\n\t expressions.push(this.parseExpression());\n\t quasi = this.parseTemplateElement();\n\t quasis.push(quasi);\n\t }\n\t return this.finalize(node, new Node.TemplateLiteral(quasis, expressions));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-grouping-operator\n\t Parser.prototype.reinterpretExpressionAsPattern = function (expr) {\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t case syntax_1.Syntax.MemberExpression:\n\t case syntax_1.Syntax.RestElement:\n\t case syntax_1.Syntax.AssignmentPattern:\n\t break;\n\t case syntax_1.Syntax.SpreadElement:\n\t expr.type = syntax_1.Syntax.RestElement;\n\t this.reinterpretExpressionAsPattern(expr.argument);\n\t break;\n\t case syntax_1.Syntax.ArrayExpression:\n\t expr.type = syntax_1.Syntax.ArrayPattern;\n\t for (var i = 0; i < expr.elements.length; i++) {\n\t if (expr.elements[i] !== null) {\n\t this.reinterpretExpressionAsPattern(expr.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectExpression:\n\t expr.type = syntax_1.Syntax.ObjectPattern;\n\t for (var i = 0; i < expr.properties.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.properties[i].value);\n\t }\n\t break;\n\t case syntax_1.Syntax.AssignmentExpression:\n\t expr.type = syntax_1.Syntax.AssignmentPattern;\n\t delete expr.operator;\n\t this.reinterpretExpressionAsPattern(expr.left);\n\t break;\n\t default:\n\t // Allow other node type for tolerant parsing.\n\t break;\n\t }\n\t };\n\t Parser.prototype.parseGroupExpression = function () {\n\t var expr;\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.nextToken();\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [],\n\t async: false\n\t };\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var params = [];\n\t if (this.match('...')) {\n\t expr = this.parseRestElement(params);\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t else {\n\t var arrow = false;\n\t this.context.isBindingElement = true;\n\t expr = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t this.context.isAssignmentTarget = false;\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t if (this.match(')')) {\n\t this.nextToken();\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else if (this.match('...')) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t expressions.push(this.parseRestElement(params));\n\t this.expect(')');\n\t if (!this.match('=>')) {\n\t this.expect('=>');\n\t }\n\t this.context.isBindingElement = false;\n\t for (var i = 0; i < expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expressions[i]);\n\t }\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: expressions,\n\t async: false\n\t };\n\t }\n\t else {\n\t expressions.push(this.inheritCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t if (arrow) {\n\t break;\n\t }\n\t }\n\t if (!arrow) {\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t }\n\t if (!arrow) {\n\t this.expect(')');\n\t if (this.match('=>')) {\n\t if (expr.type === syntax_1.Syntax.Identifier && expr.name === 'yield') {\n\t arrow = true;\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [expr],\n\t async: false\n\t };\n\t }\n\t if (!arrow) {\n\t if (!this.context.isBindingElement) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (expr.type === syntax_1.Syntax.SequenceExpression) {\n\t for (var i = 0; i < expr.expressions.length; i++) {\n\t this.reinterpretExpressionAsPattern(expr.expressions[i]);\n\t }\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t var parameters = (expr.type === syntax_1.Syntax.SequenceExpression ? expr.expressions : [expr]);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: parameters,\n\t async: false\n\t };\n\t }\n\t }\n\t this.context.isBindingElement = false;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-left-hand-side-expressions\n\t Parser.prototype.parseArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.isIdentifierName = function (token) {\n\t return token.type === 3 /* Identifier */ ||\n\t token.type === 4 /* Keyword */ ||\n\t token.type === 1 /* BooleanLiteral */ ||\n\t token.type === 5 /* NullLiteral */;\n\t };\n\t Parser.prototype.parseIdentifierName = function () {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (!this.isIdentifierName(token)) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseNewExpression = function () {\n\t var node = this.createNode();\n\t var id = this.parseIdentifierName();\n\t assert_1.assert(id.name === 'new', 'New expression must start with `new`');\n\t var expr;\n\t if (this.match('.')) {\n\t this.nextToken();\n\t if (this.lookahead.type === 3 /* Identifier */ && this.context.inFunctionBody && this.lookahead.value === 'target') {\n\t var property = this.parseIdentifierName();\n\t expr = new Node.MetaProperty(id, property);\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t var callee = this.isolateCoverGrammar(this.parseLeftHandSideExpression);\n\t var args = this.match('(') ? this.parseArguments() : [];\n\t expr = new Node.NewExpression(callee, args);\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return this.finalize(node, expr);\n\t };\n\t Parser.prototype.parseAsyncArgument = function () {\n\t var arg = this.parseAssignmentExpression();\n\t this.context.firstCoverInitializedNameError = null;\n\t return arg;\n\t };\n\t Parser.prototype.parseAsyncArguments = function () {\n\t this.expect('(');\n\t var args = [];\n\t if (!this.match(')')) {\n\t while (true) {\n\t var expr = this.match('...') ? this.parseSpreadElement() :\n\t this.isolateCoverGrammar(this.parseAsyncArgument);\n\t args.push(expr);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expectCommaSeparator();\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return args;\n\t };\n\t Parser.prototype.parseLeftHandSideExpressionAllowCall = function () {\n\t var startToken = this.lookahead;\n\t var maybeAsync = this.matchContextualKeyword('async');\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var expr;\n\t if (this.matchKeyword('super') && this.context.inFunctionBody) {\n\t expr = this.createNode();\n\t this.nextToken();\n\t expr = this.finalize(expr, new Node.Super());\n\t if (!this.match('(') && !this.match('.') && !this.match('[')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t }\n\t while (true) {\n\t if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(this.startNode(startToken), new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.match('(')) {\n\t var asyncArrow = maybeAsync && (startToken.lineNumber === this.lookahead.lineNumber);\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = false;\n\t var args = asyncArrow ? this.parseAsyncArguments() : this.parseArguments();\n\t expr = this.finalize(this.startNode(startToken), new Node.CallExpression(expr, args));\n\t if (asyncArrow && this.match('=>')) {\n\t for (var i = 0; i < args.length; ++i) {\n\t this.reinterpretExpressionAsPattern(args[i]);\n\t }\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: args,\n\t async: true\n\t };\n\t }\n\t }\n\t else if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(this.startNode(startToken), new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(this.startNode(startToken), new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t this.context.allowIn = previousAllowIn;\n\t return expr;\n\t };\n\t Parser.prototype.parseSuper = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('super');\n\t if (!this.match('[') && !this.match('.')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return this.finalize(node, new Node.Super());\n\t };\n\t Parser.prototype.parseLeftHandSideExpression = function () {\n\t assert_1.assert(this.context.allowIn, 'callee of new expression always allow in keyword.');\n\t var node = this.startNode(this.lookahead);\n\t var expr = (this.matchKeyword('super') && this.context.inFunctionBody) ? this.parseSuper() :\n\t this.inheritCoverGrammar(this.matchKeyword('new') ? this.parseNewExpression : this.parsePrimaryExpression);\n\t while (true) {\n\t if (this.match('[')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('[');\n\t var property = this.isolateCoverGrammar(this.parseExpression);\n\t this.expect(']');\n\t expr = this.finalize(node, new Node.ComputedMemberExpression(expr, property));\n\t }\n\t else if (this.match('.')) {\n\t this.context.isBindingElement = false;\n\t this.context.isAssignmentTarget = true;\n\t this.expect('.');\n\t var property = this.parseIdentifierName();\n\t expr = this.finalize(node, new Node.StaticMemberExpression(expr, property));\n\t }\n\t else if (this.lookahead.type === 10 /* Template */ && this.lookahead.head) {\n\t var quasi = this.parseTemplateLiteral();\n\t expr = this.finalize(node, new Node.TaggedTemplateExpression(expr, quasi));\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-update-expressions\n\t Parser.prototype.parseUpdateExpression = function () {\n\t var expr;\n\t var startToken = this.lookahead;\n\t if (this.match('++') || this.match('--')) {\n\t var node = this.startNode(startToken);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPrefix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t var prefix = true;\n\t expr = this.finalize(node, new Node.UpdateExpression(token.value, expr, prefix));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t expr = this.inheritCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t if (!this.hasLineTerminator && this.lookahead.type === 7 /* Punctuator */) {\n\t if (this.match('++') || this.match('--')) {\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier && this.scanner.isRestrictedWord(expr.name)) {\n\t this.tolerateError(messages_1.Messages.StrictLHSPostfix);\n\t }\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var operator = this.nextToken().value;\n\t var prefix = false;\n\t expr = this.finalize(this.startNode(startToken), new Node.UpdateExpression(operator, expr, prefix));\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-unary-operators\n\t Parser.prototype.parseAwaitExpression = function () {\n\t var node = this.createNode();\n\t this.nextToken();\n\t var argument = this.parseUnaryExpression();\n\t return this.finalize(node, new Node.AwaitExpression(argument));\n\t };\n\t Parser.prototype.parseUnaryExpression = function () {\n\t var expr;\n\t if (this.match('+') || this.match('-') || this.match('~') || this.match('!') ||\n\t this.matchKeyword('delete') || this.matchKeyword('void') || this.matchKeyword('typeof')) {\n\t var node = this.startNode(this.lookahead);\n\t var token = this.nextToken();\n\t expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t expr = this.finalize(node, new Node.UnaryExpression(token.value, expr));\n\t if (this.context.strict && expr.operator === 'delete' && expr.argument.type === syntax_1.Syntax.Identifier) {\n\t this.tolerateError(messages_1.Messages.StrictDelete);\n\t }\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else if (this.context.await && this.matchContextualKeyword('await')) {\n\t expr = this.parseAwaitExpression();\n\t }\n\t else {\n\t expr = this.parseUpdateExpression();\n\t }\n\t return expr;\n\t };\n\t Parser.prototype.parseExponentiationExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseUnaryExpression);\n\t if (expr.type !== syntax_1.Syntax.UnaryExpression && this.match('**')) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.BinaryExpression('**', left, right));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exp-operator\n\t // https://tc39.github.io/ecma262/#sec-multiplicative-operators\n\t // https://tc39.github.io/ecma262/#sec-additive-operators\n\t // https://tc39.github.io/ecma262/#sec-bitwise-shift-operators\n\t // https://tc39.github.io/ecma262/#sec-relational-operators\n\t // https://tc39.github.io/ecma262/#sec-equality-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-bitwise-operators\n\t // https://tc39.github.io/ecma262/#sec-binary-logical-operators\n\t Parser.prototype.binaryPrecedence = function (token) {\n\t var op = token.value;\n\t var precedence;\n\t if (token.type === 7 /* Punctuator */) {\n\t precedence = this.operatorPrecedence[op] || 0;\n\t }\n\t else if (token.type === 4 /* Keyword */) {\n\t precedence = (op === 'instanceof' || (this.context.allowIn && op === 'in')) ? 7 : 0;\n\t }\n\t else {\n\t precedence = 0;\n\t }\n\t return precedence;\n\t };\n\t Parser.prototype.parseBinaryExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseExponentiationExpression);\n\t var token = this.lookahead;\n\t var prec = this.binaryPrecedence(token);\n\t if (prec > 0) {\n\t this.nextToken();\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var markers = [startToken, this.lookahead];\n\t var left = expr;\n\t var right = this.isolateCoverGrammar(this.parseExponentiationExpression);\n\t var stack = [left, token.value, right];\n\t var precedences = [prec];\n\t while (true) {\n\t prec = this.binaryPrecedence(this.lookahead);\n\t if (prec <= 0) {\n\t break;\n\t }\n\t // Reduce: make a binary expression from the three topmost entries.\n\t while ((stack.length > 2) && (prec <= precedences[precedences.length - 1])) {\n\t right = stack.pop();\n\t var operator = stack.pop();\n\t precedences.pop();\n\t left = stack.pop();\n\t markers.pop();\n\t var node = this.startNode(markers[markers.length - 1]);\n\t stack.push(this.finalize(node, new Node.BinaryExpression(operator, left, right)));\n\t }\n\t // Shift.\n\t stack.push(this.nextToken().value);\n\t precedences.push(prec);\n\t markers.push(this.lookahead);\n\t stack.push(this.isolateCoverGrammar(this.parseExponentiationExpression));\n\t }\n\t // Final reduce to clean-up the stack.\n\t var i = stack.length - 1;\n\t expr = stack[i];\n\t var lastMarker = markers.pop();\n\t while (i > 1) {\n\t var marker = markers.pop();\n\t var lastLineStart = lastMarker && lastMarker.lineStart;\n\t var node = this.startNode(marker, lastLineStart);\n\t var operator = stack[i - 1];\n\t expr = this.finalize(node, new Node.BinaryExpression(operator, stack[i - 2], expr));\n\t i -= 2;\n\t lastMarker = marker;\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-conditional-operator\n\t Parser.prototype.parseConditionalExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.inheritCoverGrammar(this.parseBinaryExpression);\n\t if (this.match('?')) {\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t var consequent = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t this.expect(':');\n\t var alternate = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.ConditionalExpression(expr, consequent, alternate));\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-assignment-operators\n\t Parser.prototype.checkPatternParam = function (options, param) {\n\t switch (param.type) {\n\t case syntax_1.Syntax.Identifier:\n\t this.validateParam(options, param, param.name);\n\t break;\n\t case syntax_1.Syntax.RestElement:\n\t this.checkPatternParam(options, param.argument);\n\t break;\n\t case syntax_1.Syntax.AssignmentPattern:\n\t this.checkPatternParam(options, param.left);\n\t break;\n\t case syntax_1.Syntax.ArrayPattern:\n\t for (var i = 0; i < param.elements.length; i++) {\n\t if (param.elements[i] !== null) {\n\t this.checkPatternParam(options, param.elements[i]);\n\t }\n\t }\n\t break;\n\t case syntax_1.Syntax.ObjectPattern:\n\t for (var i = 0; i < param.properties.length; i++) {\n\t this.checkPatternParam(options, param.properties[i].value);\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t };\n\t Parser.prototype.reinterpretAsCoverFormalsList = function (expr) {\n\t var params = [expr];\n\t var options;\n\t var asyncArrow = false;\n\t switch (expr.type) {\n\t case syntax_1.Syntax.Identifier:\n\t break;\n\t case ArrowParameterPlaceHolder:\n\t params = expr.params;\n\t asyncArrow = expr.async;\n\t break;\n\t default:\n\t return null;\n\t }\n\t options = {\n\t simple: true,\n\t paramSet: {}\n\t };\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.AssignmentPattern) {\n\t if (param.right.type === syntax_1.Syntax.YieldExpression) {\n\t if (param.right.argument) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t param.right.type = syntax_1.Syntax.Identifier;\n\t param.right.name = 'yield';\n\t delete param.right.argument;\n\t delete param.right.delegate;\n\t }\n\t }\n\t else if (asyncArrow && param.type === syntax_1.Syntax.Identifier && param.name === 'await') {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t this.checkPatternParam(options, param);\n\t params[i] = param;\n\t }\n\t if (this.context.strict || !this.context.allowYield) {\n\t for (var i = 0; i < params.length; ++i) {\n\t var param = params[i];\n\t if (param.type === syntax_1.Syntax.YieldExpression) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t if (options.message === messages_1.Messages.StrictParamDupe) {\n\t var token = this.context.strict ? options.stricted : options.firstRestricted;\n\t this.throwUnexpectedToken(token, options.message);\n\t }\n\t return {\n\t simple: options.simple,\n\t params: params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.parseAssignmentExpression = function () {\n\t var expr;\n\t if (!this.context.allowYield && this.matchKeyword('yield')) {\n\t expr = this.parseYieldExpression();\n\t }\n\t else {\n\t var startToken = this.lookahead;\n\t var token = startToken;\n\t expr = this.parseConditionalExpression();\n\t if (token.type === 3 /* Identifier */ && (token.lineNumber === this.lookahead.lineNumber) && token.value === 'async') {\n\t if (this.lookahead.type === 3 /* Identifier */ || this.matchKeyword('yield')) {\n\t var arg = this.parsePrimaryExpression();\n\t this.reinterpretExpressionAsPattern(arg);\n\t expr = {\n\t type: ArrowParameterPlaceHolder,\n\t params: [arg],\n\t async: true\n\t };\n\t }\n\t }\n\t if (expr.type === ArrowParameterPlaceHolder || this.match('=>')) {\n\t // https://tc39.github.io/ecma262/#sec-arrow-function-definitions\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t var isAsync = expr.async;\n\t var list = this.reinterpretAsCoverFormalsList(expr);\n\t if (list) {\n\t if (this.hasLineTerminator) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t }\n\t this.context.firstCoverInitializedNameError = null;\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = list.simple;\n\t var previousAllowYield = this.context.allowYield;\n\t var previousAwait = this.context.await;\n\t this.context.allowYield = true;\n\t this.context.await = isAsync;\n\t var node = this.startNode(startToken);\n\t this.expect('=>');\n\t var body = void 0;\n\t if (this.match('{')) {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = true;\n\t body = this.parseFunctionSourceElements();\n\t this.context.allowIn = previousAllowIn;\n\t }\n\t else {\n\t body = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t var expression = body.type !== syntax_1.Syntax.BlockStatement;\n\t if (this.context.strict && list.firstRestricted) {\n\t this.throwUnexpectedToken(list.firstRestricted, list.message);\n\t }\n\t if (this.context.strict && list.stricted) {\n\t this.tolerateUnexpectedToken(list.stricted, list.message);\n\t }\n\t expr = isAsync ? this.finalize(node, new Node.AsyncArrowFunctionExpression(list.params, body, expression)) :\n\t this.finalize(node, new Node.ArrowFunctionExpression(list.params, body, expression));\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.allowYield = previousAllowYield;\n\t this.context.await = previousAwait;\n\t }\n\t }\n\t else {\n\t if (this.matchAssign()) {\n\t if (!this.context.isAssignmentTarget) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInAssignment);\n\t }\n\t if (this.context.strict && expr.type === syntax_1.Syntax.Identifier) {\n\t var id = expr;\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictLHSAssignment);\n\t }\n\t if (this.scanner.isStrictModeReservedWord(id.name)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t }\n\t if (!this.match('=')) {\n\t this.context.isAssignmentTarget = false;\n\t this.context.isBindingElement = false;\n\t }\n\t else {\n\t this.reinterpretExpressionAsPattern(expr);\n\t }\n\t token = this.nextToken();\n\t var operator = token.value;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t expr = this.finalize(this.startNode(startToken), new Node.AssignmentExpression(operator, expr, right));\n\t this.context.firstCoverInitializedNameError = null;\n\t }\n\t }\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comma-operator\n\t Parser.prototype.parseExpression = function () {\n\t var startToken = this.lookahead;\n\t var expr = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t if (this.match(',')) {\n\t var expressions = [];\n\t expressions.push(expr);\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (!this.match(',')) {\n\t break;\n\t }\n\t this.nextToken();\n\t expressions.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t expr = this.finalize(this.startNode(startToken), new Node.SequenceExpression(expressions));\n\t }\n\t return expr;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-block\n\t Parser.prototype.parseStatementListItem = function () {\n\t var statement;\n\t this.context.isAssignmentTarget = true;\n\t this.context.isBindingElement = true;\n\t if (this.lookahead.type === 4 /* Keyword */) {\n\t switch (this.lookahead.value) {\n\t case 'export':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t statement = this.parseExportDeclaration();\n\t break;\n\t case 'import':\n\t if (!this.context.isModule) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t statement = this.parseImportDeclaration();\n\t break;\n\t case 'const':\n\t statement = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'class':\n\t statement = this.parseClassDeclaration();\n\t break;\n\t case 'let':\n\t statement = this.isLexicalDeclaration() ? this.parseLexicalDeclaration({ inFor: false }) : this.parseStatement();\n\t break;\n\t default:\n\t statement = this.parseStatement();\n\t break;\n\t }\n\t }\n\t else {\n\t statement = this.parseStatement();\n\t }\n\t return statement;\n\t };\n\t Parser.prototype.parseBlock = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var block = [];\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t block.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.BlockStatement(block));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-let-and-const-declarations\n\t Parser.prototype.parseLexicalBinding = function (kind, options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, kind);\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (kind === 'const') {\n\t if (!this.matchKeyword('in') && !this.matchContextualKeyword('of')) {\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else {\n\t this.throwError(messages_1.Messages.DeclarationMissingInitializer, 'const');\n\t }\n\t }\n\t }\n\t else if ((!options.inFor && id.type !== syntax_1.Syntax.Identifier) || this.match('=')) {\n\t this.expect('=');\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseBindingList = function (kind, options) {\n\t var list = [this.parseLexicalBinding(kind, options)];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseLexicalBinding(kind, options));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.isLexicalDeclaration = function () {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t return (next.type === 3 /* Identifier */) ||\n\t (next.type === 7 /* Punctuator */ && next.value === '[') ||\n\t (next.type === 7 /* Punctuator */ && next.value === '{') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'let') ||\n\t (next.type === 4 /* Keyword */ && next.value === 'yield');\n\t };\n\t Parser.prototype.parseLexicalDeclaration = function (options) {\n\t var node = this.createNode();\n\t var kind = this.nextToken().value;\n\t assert_1.assert(kind === 'let' || kind === 'const', 'Lexical declaration must be either let or const');\n\t var declarations = this.parseBindingList(kind, options);\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, kind));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-destructuring-binding-patterns\n\t Parser.prototype.parseBindingRestElement = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params, kind);\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseArrayPattern = function (params, kind) {\n\t var node = this.createNode();\n\t this.expect('[');\n\t var elements = [];\n\t while (!this.match(']')) {\n\t if (this.match(',')) {\n\t this.nextToken();\n\t elements.push(null);\n\t }\n\t else {\n\t if (this.match('...')) {\n\t elements.push(this.parseBindingRestElement(params, kind));\n\t break;\n\t }\n\t else {\n\t elements.push(this.parsePatternWithDefault(params, kind));\n\t }\n\t if (!this.match(']')) {\n\t this.expect(',');\n\t }\n\t }\n\t }\n\t this.expect(']');\n\t return this.finalize(node, new Node.ArrayPattern(elements));\n\t };\n\t Parser.prototype.parsePropertyPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var computed = false;\n\t var shorthand = false;\n\t var method = false;\n\t var key;\n\t var value;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t var keyToken = this.lookahead;\n\t key = this.parseVariableIdentifier();\n\t var init = this.finalize(node, new Node.Identifier(keyToken.value));\n\t if (this.match('=')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t this.nextToken();\n\t var expr = this.parseAssignmentExpression();\n\t value = this.finalize(this.startNode(keyToken), new Node.AssignmentPattern(init, expr));\n\t }\n\t else if (!this.match(':')) {\n\t params.push(keyToken);\n\t shorthand = true;\n\t value = init;\n\t }\n\t else {\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.expect(':');\n\t value = this.parsePatternWithDefault(params, kind);\n\t }\n\t return this.finalize(node, new Node.Property('init', key, computed, value, method, shorthand));\n\t };\n\t Parser.prototype.parseObjectPattern = function (params, kind) {\n\t var node = this.createNode();\n\t var properties = [];\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t properties.push(this.parsePropertyPattern(params, kind));\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return this.finalize(node, new Node.ObjectPattern(properties));\n\t };\n\t Parser.prototype.parsePattern = function (params, kind) {\n\t var pattern;\n\t if (this.match('[')) {\n\t pattern = this.parseArrayPattern(params, kind);\n\t }\n\t else if (this.match('{')) {\n\t pattern = this.parseObjectPattern(params, kind);\n\t }\n\t else {\n\t if (this.matchKeyword('let') && (kind === 'const' || kind === 'let')) {\n\t this.tolerateUnexpectedToken(this.lookahead, messages_1.Messages.LetInLexicalBinding);\n\t }\n\t params.push(this.lookahead);\n\t pattern = this.parseVariableIdentifier(kind);\n\t }\n\t return pattern;\n\t };\n\t Parser.prototype.parsePatternWithDefault = function (params, kind) {\n\t var startToken = this.lookahead;\n\t var pattern = this.parsePattern(params, kind);\n\t if (this.match('=')) {\n\t this.nextToken();\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var right = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowYield = previousAllowYield;\n\t pattern = this.finalize(this.startNode(startToken), new Node.AssignmentPattern(pattern, right));\n\t }\n\t return pattern;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-variable-statement\n\t Parser.prototype.parseVariableIdentifier = function (kind) {\n\t var node = this.createNode();\n\t var token = this.nextToken();\n\t if (token.type === 4 /* Keyword */ && token.value === 'yield') {\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else if (!this.context.allowYield) {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t else if (token.type !== 3 /* Identifier */) {\n\t if (this.context.strict && token.type === 4 /* Keyword */ && this.scanner.isStrictModeReservedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictReservedWord);\n\t }\n\t else {\n\t if (this.context.strict || token.value !== 'let' || kind !== 'var') {\n\t this.throwUnexpectedToken(token);\n\t }\n\t }\n\t }\n\t else if ((this.context.isModule || this.context.await) && token.type === 3 /* Identifier */ && token.value === 'await') {\n\t this.tolerateUnexpectedToken(token);\n\t }\n\t return this.finalize(node, new Node.Identifier(token.value));\n\t };\n\t Parser.prototype.parseVariableDeclaration = function (options) {\n\t var node = this.createNode();\n\t var params = [];\n\t var id = this.parsePattern(params, 'var');\n\t if (this.context.strict && id.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(id.name)) {\n\t this.tolerateError(messages_1.Messages.StrictVarName);\n\t }\n\t }\n\t var init = null;\n\t if (this.match('=')) {\n\t this.nextToken();\n\t init = this.isolateCoverGrammar(this.parseAssignmentExpression);\n\t }\n\t else if (id.type !== syntax_1.Syntax.Identifier && !options.inFor) {\n\t this.expect('=');\n\t }\n\t return this.finalize(node, new Node.VariableDeclarator(id, init));\n\t };\n\t Parser.prototype.parseVariableDeclarationList = function (options) {\n\t var opt = { inFor: options.inFor };\n\t var list = [];\n\t list.push(this.parseVariableDeclaration(opt));\n\t while (this.match(',')) {\n\t this.nextToken();\n\t list.push(this.parseVariableDeclaration(opt));\n\t }\n\t return list;\n\t };\n\t Parser.prototype.parseVariableStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('var');\n\t var declarations = this.parseVariableDeclarationList({ inFor: false });\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.VariableDeclaration(declarations, 'var'));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-empty-statement\n\t Parser.prototype.parseEmptyStatement = function () {\n\t var node = this.createNode();\n\t this.expect(';');\n\t return this.finalize(node, new Node.EmptyStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-expression-statement\n\t Parser.prototype.parseExpressionStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ExpressionStatement(expr));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-if-statement\n\t Parser.prototype.parseIfClause = function () {\n\t if (this.context.strict && this.matchKeyword('function')) {\n\t this.tolerateError(messages_1.Messages.StrictFunction);\n\t }\n\t return this.parseStatement();\n\t };\n\t Parser.prototype.parseIfStatement = function () {\n\t var node = this.createNode();\n\t var consequent;\n\t var alternate = null;\n\t this.expectKeyword('if');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t consequent = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t consequent = this.parseIfClause();\n\t if (this.matchKeyword('else')) {\n\t this.nextToken();\n\t alternate = this.parseIfClause();\n\t }\n\t }\n\t return this.finalize(node, new Node.IfStatement(test, consequent, alternate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-do-while-statement\n\t Parser.prototype.parseDoWhileStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('do');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t var body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t }\n\t else {\n\t this.expect(')');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t }\n\t return this.finalize(node, new Node.DoWhileStatement(body, test));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-while-statement\n\t Parser.prototype.parseWhileStatement = function () {\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('while');\n\t this.expect('(');\n\t var test = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.parseStatement();\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return this.finalize(node, new Node.WhileStatement(test, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-for-statement\n\t // https://tc39.github.io/ecma262/#sec-for-in-and-for-of-statements\n\t Parser.prototype.parseForStatement = function () {\n\t var init = null;\n\t var test = null;\n\t var update = null;\n\t var forIn = true;\n\t var left, right;\n\t var node = this.createNode();\n\t this.expectKeyword('for');\n\t this.expect('(');\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t if (this.matchKeyword('var')) {\n\t init = this.createNode();\n\t this.nextToken();\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseVariableDeclarationList({ inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && this.matchKeyword('in')) {\n\t var decl = declarations[0];\n\t if (decl.init && (decl.id.type === syntax_1.Syntax.ArrayPattern || decl.id.type === syntax_1.Syntax.ObjectPattern || this.context.strict)) {\n\t this.tolerateError(messages_1.Messages.ForInOfLoopInitializer, 'for-in');\n\t }\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, 'var'));\n\t this.expect(';');\n\t }\n\t }\n\t else if (this.matchKeyword('const') || this.matchKeyword('let')) {\n\t init = this.createNode();\n\t var kind = this.nextToken().value;\n\t if (!this.context.strict && this.lookahead.value === 'in') {\n\t init = this.finalize(init, new Node.Identifier(kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else {\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t var declarations = this.parseBindingList(kind, { inFor: true });\n\t this.context.allowIn = previousAllowIn;\n\t if (declarations.length === 1 && declarations[0].init === null && this.matchKeyword('in')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (declarations.length === 1 && declarations[0].init === null && this.matchContextualKeyword('of')) {\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t this.nextToken();\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t init = this.finalize(init, new Node.VariableDeclaration(declarations, kind));\n\t }\n\t }\n\t }\n\t else {\n\t var initStartToken = this.lookahead;\n\t var previousAllowIn = this.context.allowIn;\n\t this.context.allowIn = false;\n\t init = this.inheritCoverGrammar(this.parseAssignmentExpression);\n\t this.context.allowIn = previousAllowIn;\n\t if (this.matchKeyword('in')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForIn);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseExpression();\n\t init = null;\n\t }\n\t else if (this.matchContextualKeyword('of')) {\n\t if (!this.context.isAssignmentTarget || init.type === syntax_1.Syntax.AssignmentExpression) {\n\t this.tolerateError(messages_1.Messages.InvalidLHSInForLoop);\n\t }\n\t this.nextToken();\n\t this.reinterpretExpressionAsPattern(init);\n\t left = init;\n\t right = this.parseAssignmentExpression();\n\t init = null;\n\t forIn = false;\n\t }\n\t else {\n\t if (this.match(',')) {\n\t var initSeq = [init];\n\t while (this.match(',')) {\n\t this.nextToken();\n\t initSeq.push(this.isolateCoverGrammar(this.parseAssignmentExpression));\n\t }\n\t init = this.finalize(this.startNode(initStartToken), new Node.SequenceExpression(initSeq));\n\t }\n\t this.expect(';');\n\t }\n\t }\n\t }\n\t if (typeof left === 'undefined') {\n\t if (!this.match(';')) {\n\t test = this.parseExpression();\n\t }\n\t this.expect(';');\n\t if (!this.match(')')) {\n\t update = this.parseExpression();\n\t }\n\t }\n\t var body;\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t var previousInIteration = this.context.inIteration;\n\t this.context.inIteration = true;\n\t body = this.isolateCoverGrammar(this.parseStatement);\n\t this.context.inIteration = previousInIteration;\n\t }\n\t return (typeof left === 'undefined') ?\n\t this.finalize(node, new Node.ForStatement(init, test, update, body)) :\n\t forIn ? this.finalize(node, new Node.ForInStatement(left, right, body)) :\n\t this.finalize(node, new Node.ForOfStatement(left, right, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-continue-statement\n\t Parser.prototype.parseContinueStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('continue');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t label = id;\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration) {\n\t this.throwError(messages_1.Messages.IllegalContinue);\n\t }\n\t return this.finalize(node, new Node.ContinueStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-break-statement\n\t Parser.prototype.parseBreakStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('break');\n\t var label = null;\n\t if (this.lookahead.type === 3 /* Identifier */ && !this.hasLineTerminator) {\n\t var id = this.parseVariableIdentifier();\n\t var key = '$' + id.name;\n\t if (!Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.UnknownLabel, id.name);\n\t }\n\t label = id;\n\t }\n\t this.consumeSemicolon();\n\t if (label === null && !this.context.inIteration && !this.context.inSwitch) {\n\t this.throwError(messages_1.Messages.IllegalBreak);\n\t }\n\t return this.finalize(node, new Node.BreakStatement(label));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-return-statement\n\t Parser.prototype.parseReturnStatement = function () {\n\t if (!this.context.inFunctionBody) {\n\t this.tolerateError(messages_1.Messages.IllegalReturn);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('return');\n\t var hasArgument = (!this.match(';') && !this.match('}') &&\n\t !this.hasLineTerminator && this.lookahead.type !== 2 /* EOF */) ||\n\t this.lookahead.type === 8 /* StringLiteral */ ||\n\t this.lookahead.type === 10 /* Template */;\n\t var argument = hasArgument ? this.parseExpression() : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ReturnStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-with-statement\n\t Parser.prototype.parseWithStatement = function () {\n\t if (this.context.strict) {\n\t this.tolerateError(messages_1.Messages.StrictModeWith);\n\t }\n\t var node = this.createNode();\n\t var body;\n\t this.expectKeyword('with');\n\t this.expect('(');\n\t var object = this.parseExpression();\n\t if (!this.match(')') && this.config.tolerant) {\n\t this.tolerateUnexpectedToken(this.nextToken());\n\t body = this.finalize(this.createNode(), new Node.EmptyStatement());\n\t }\n\t else {\n\t this.expect(')');\n\t body = this.parseStatement();\n\t }\n\t return this.finalize(node, new Node.WithStatement(object, body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-switch-statement\n\t Parser.prototype.parseSwitchCase = function () {\n\t var node = this.createNode();\n\t var test;\n\t if (this.matchKeyword('default')) {\n\t this.nextToken();\n\t test = null;\n\t }\n\t else {\n\t this.expectKeyword('case');\n\t test = this.parseExpression();\n\t }\n\t this.expect(':');\n\t var consequent = [];\n\t while (true) {\n\t if (this.match('}') || this.matchKeyword('default') || this.matchKeyword('case')) {\n\t break;\n\t }\n\t consequent.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.SwitchCase(test, consequent));\n\t };\n\t Parser.prototype.parseSwitchStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('switch');\n\t this.expect('(');\n\t var discriminant = this.parseExpression();\n\t this.expect(')');\n\t var previousInSwitch = this.context.inSwitch;\n\t this.context.inSwitch = true;\n\t var cases = [];\n\t var defaultFound = false;\n\t this.expect('{');\n\t while (true) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t var clause = this.parseSwitchCase();\n\t if (clause.test === null) {\n\t if (defaultFound) {\n\t this.throwError(messages_1.Messages.MultipleDefaultsInSwitch);\n\t }\n\t defaultFound = true;\n\t }\n\t cases.push(clause);\n\t }\n\t this.expect('}');\n\t this.context.inSwitch = previousInSwitch;\n\t return this.finalize(node, new Node.SwitchStatement(discriminant, cases));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-labelled-statements\n\t Parser.prototype.parseLabelledStatement = function () {\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var statement;\n\t if ((expr.type === syntax_1.Syntax.Identifier) && this.match(':')) {\n\t this.nextToken();\n\t var id = expr;\n\t var key = '$' + id.name;\n\t if (Object.prototype.hasOwnProperty.call(this.context.labelSet, key)) {\n\t this.throwError(messages_1.Messages.Redeclaration, 'Label', id.name);\n\t }\n\t this.context.labelSet[key] = true;\n\t var body = void 0;\n\t if (this.matchKeyword('class')) {\n\t this.tolerateUnexpectedToken(this.lookahead);\n\t body = this.parseClassDeclaration();\n\t }\n\t else if (this.matchKeyword('function')) {\n\t var token = this.lookahead;\n\t var declaration = this.parseFunctionDeclaration();\n\t if (this.context.strict) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunction);\n\t }\n\t else if (declaration.generator) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.GeneratorInLegacyContext);\n\t }\n\t body = declaration;\n\t }\n\t else {\n\t body = this.parseStatement();\n\t }\n\t delete this.context.labelSet[key];\n\t statement = new Node.LabeledStatement(id, body);\n\t }\n\t else {\n\t this.consumeSemicolon();\n\t statement = new Node.ExpressionStatement(expr);\n\t }\n\t return this.finalize(node, statement);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-throw-statement\n\t Parser.prototype.parseThrowStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('throw');\n\t if (this.hasLineTerminator) {\n\t this.throwError(messages_1.Messages.NewlineAfterThrow);\n\t }\n\t var argument = this.parseExpression();\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ThrowStatement(argument));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-try-statement\n\t Parser.prototype.parseCatchClause = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('catch');\n\t this.expect('(');\n\t if (this.match(')')) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t var params = [];\n\t var param = this.parsePattern(params);\n\t var paramMap = {};\n\t for (var i = 0; i < params.length; i++) {\n\t var key = '$' + params[i].value;\n\t if (Object.prototype.hasOwnProperty.call(paramMap, key)) {\n\t this.tolerateError(messages_1.Messages.DuplicateBinding, params[i].value);\n\t }\n\t paramMap[key] = true;\n\t }\n\t if (this.context.strict && param.type === syntax_1.Syntax.Identifier) {\n\t if (this.scanner.isRestrictedWord(param.name)) {\n\t this.tolerateError(messages_1.Messages.StrictCatchVariable);\n\t }\n\t }\n\t this.expect(')');\n\t var body = this.parseBlock();\n\t return this.finalize(node, new Node.CatchClause(param, body));\n\t };\n\t Parser.prototype.parseFinallyClause = function () {\n\t this.expectKeyword('finally');\n\t return this.parseBlock();\n\t };\n\t Parser.prototype.parseTryStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('try');\n\t var block = this.parseBlock();\n\t var handler = this.matchKeyword('catch') ? this.parseCatchClause() : null;\n\t var finalizer = this.matchKeyword('finally') ? this.parseFinallyClause() : null;\n\t if (!handler && !finalizer) {\n\t this.throwError(messages_1.Messages.NoCatchOrFinally);\n\t }\n\t return this.finalize(node, new Node.TryStatement(block, handler, finalizer));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-debugger-statement\n\t Parser.prototype.parseDebuggerStatement = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('debugger');\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.DebuggerStatement());\n\t };\n\t // https://tc39.github.io/ecma262/#sec-ecmascript-language-statements-and-declarations\n\t Parser.prototype.parseStatement = function () {\n\t var statement;\n\t switch (this.lookahead.type) {\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 8 /* StringLiteral */:\n\t case 10 /* Template */:\n\t case 9 /* RegularExpression */:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t case 7 /* Punctuator */:\n\t var value = this.lookahead.value;\n\t if (value === '{') {\n\t statement = this.parseBlock();\n\t }\n\t else if (value === '(') {\n\t statement = this.parseExpressionStatement();\n\t }\n\t else if (value === ';') {\n\t statement = this.parseEmptyStatement();\n\t }\n\t else {\n\t statement = this.parseExpressionStatement();\n\t }\n\t break;\n\t case 3 /* Identifier */:\n\t statement = this.matchAsyncFunction() ? this.parseFunctionDeclaration() : this.parseLabelledStatement();\n\t break;\n\t case 4 /* Keyword */:\n\t switch (this.lookahead.value) {\n\t case 'break':\n\t statement = this.parseBreakStatement();\n\t break;\n\t case 'continue':\n\t statement = this.parseContinueStatement();\n\t break;\n\t case 'debugger':\n\t statement = this.parseDebuggerStatement();\n\t break;\n\t case 'do':\n\t statement = this.parseDoWhileStatement();\n\t break;\n\t case 'for':\n\t statement = this.parseForStatement();\n\t break;\n\t case 'function':\n\t statement = this.parseFunctionDeclaration();\n\t break;\n\t case 'if':\n\t statement = this.parseIfStatement();\n\t break;\n\t case 'return':\n\t statement = this.parseReturnStatement();\n\t break;\n\t case 'switch':\n\t statement = this.parseSwitchStatement();\n\t break;\n\t case 'throw':\n\t statement = this.parseThrowStatement();\n\t break;\n\t case 'try':\n\t statement = this.parseTryStatement();\n\t break;\n\t case 'var':\n\t statement = this.parseVariableStatement();\n\t break;\n\t case 'while':\n\t statement = this.parseWhileStatement();\n\t break;\n\t case 'with':\n\t statement = this.parseWithStatement();\n\t break;\n\t default:\n\t statement = this.parseExpressionStatement();\n\t break;\n\t }\n\t break;\n\t default:\n\t statement = this.throwUnexpectedToken(this.lookahead);\n\t }\n\t return statement;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-function-definitions\n\t Parser.prototype.parseFunctionSourceElements = function () {\n\t var node = this.createNode();\n\t this.expect('{');\n\t var body = this.parseDirectivePrologues();\n\t var previousLabelSet = this.context.labelSet;\n\t var previousInIteration = this.context.inIteration;\n\t var previousInSwitch = this.context.inSwitch;\n\t var previousInFunctionBody = this.context.inFunctionBody;\n\t this.context.labelSet = {};\n\t this.context.inIteration = false;\n\t this.context.inSwitch = false;\n\t this.context.inFunctionBody = true;\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t if (this.match('}')) {\n\t break;\n\t }\n\t body.push(this.parseStatementListItem());\n\t }\n\t this.expect('}');\n\t this.context.labelSet = previousLabelSet;\n\t this.context.inIteration = previousInIteration;\n\t this.context.inSwitch = previousInSwitch;\n\t this.context.inFunctionBody = previousInFunctionBody;\n\t return this.finalize(node, new Node.BlockStatement(body));\n\t };\n\t Parser.prototype.validateParam = function (options, param, name) {\n\t var key = '$' + name;\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t else if (!options.firstRestricted) {\n\t if (this.scanner.isRestrictedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictParamName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(name)) {\n\t options.firstRestricted = param;\n\t options.message = messages_1.Messages.StrictReservedWord;\n\t }\n\t else if (Object.prototype.hasOwnProperty.call(options.paramSet, key)) {\n\t options.stricted = param;\n\t options.message = messages_1.Messages.StrictParamDupe;\n\t }\n\t }\n\t /* istanbul ignore next */\n\t if (typeof Object.defineProperty === 'function') {\n\t Object.defineProperty(options.paramSet, key, { value: true, enumerable: true, writable: true, configurable: true });\n\t }\n\t else {\n\t options.paramSet[key] = true;\n\t }\n\t };\n\t Parser.prototype.parseRestElement = function (params) {\n\t var node = this.createNode();\n\t this.expect('...');\n\t var arg = this.parsePattern(params);\n\t if (this.match('=')) {\n\t this.throwError(messages_1.Messages.DefaultRestParameter);\n\t }\n\t if (!this.match(')')) {\n\t this.throwError(messages_1.Messages.ParameterAfterRestParameter);\n\t }\n\t return this.finalize(node, new Node.RestElement(arg));\n\t };\n\t Parser.prototype.parseFormalParameter = function (options) {\n\t var params = [];\n\t var param = this.match('...') ? this.parseRestElement(params) : this.parsePatternWithDefault(params);\n\t for (var i = 0; i < params.length; i++) {\n\t this.validateParam(options, params[i], params[i].value);\n\t }\n\t options.simple = options.simple && (param instanceof Node.Identifier);\n\t options.params.push(param);\n\t };\n\t Parser.prototype.parseFormalParameters = function (firstRestricted) {\n\t var options;\n\t options = {\n\t simple: true,\n\t params: [],\n\t firstRestricted: firstRestricted\n\t };\n\t this.expect('(');\n\t if (!this.match(')')) {\n\t options.paramSet = {};\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t this.parseFormalParameter(options);\n\t if (this.match(')')) {\n\t break;\n\t }\n\t this.expect(',');\n\t if (this.match(')')) {\n\t break;\n\t }\n\t }\n\t }\n\t this.expect(')');\n\t return {\n\t simple: options.simple,\n\t params: options.params,\n\t stricted: options.stricted,\n\t firstRestricted: options.firstRestricted,\n\t message: options.message\n\t };\n\t };\n\t Parser.prototype.matchAsyncFunction = function () {\n\t var match = this.matchContextualKeyword('async');\n\t if (match) {\n\t var state = this.scanner.saveState();\n\t this.scanner.scanComments();\n\t var next = this.scanner.lex();\n\t this.scanner.restoreState(state);\n\t match = (state.lineNumber === next.lineNumber) && (next.type === 4 /* Keyword */) && (next.value === 'function');\n\t }\n\t return match;\n\t };\n\t Parser.prototype.parseFunctionDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted = null;\n\t if (!identifierIsOptional || !this.match('(')) {\n\t var token = this.lookahead;\n\t id = this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionDeclaration(id, params, body)) :\n\t this.finalize(node, new Node.FunctionDeclaration(id, params, body, isGenerator));\n\t };\n\t Parser.prototype.parseFunctionExpression = function () {\n\t var node = this.createNode();\n\t var isAsync = this.matchContextualKeyword('async');\n\t if (isAsync) {\n\t this.nextToken();\n\t }\n\t this.expectKeyword('function');\n\t var isGenerator = isAsync ? false : this.match('*');\n\t if (isGenerator) {\n\t this.nextToken();\n\t }\n\t var message;\n\t var id = null;\n\t var firstRestricted;\n\t var previousAllowAwait = this.context.await;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.await = isAsync;\n\t this.context.allowYield = !isGenerator;\n\t if (!this.match('(')) {\n\t var token = this.lookahead;\n\t id = (!this.context.strict && !isGenerator && this.matchKeyword('yield')) ? this.parseIdentifierName() : this.parseVariableIdentifier();\n\t if (this.context.strict) {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.StrictFunctionName);\n\t }\n\t }\n\t else {\n\t if (this.scanner.isRestrictedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictFunctionName;\n\t }\n\t else if (this.scanner.isStrictModeReservedWord(token.value)) {\n\t firstRestricted = token;\n\t message = messages_1.Messages.StrictReservedWord;\n\t }\n\t }\n\t }\n\t var formalParameters = this.parseFormalParameters(firstRestricted);\n\t var params = formalParameters.params;\n\t var stricted = formalParameters.stricted;\n\t firstRestricted = formalParameters.firstRestricted;\n\t if (formalParameters.message) {\n\t message = formalParameters.message;\n\t }\n\t var previousStrict = this.context.strict;\n\t var previousAllowStrictDirective = this.context.allowStrictDirective;\n\t this.context.allowStrictDirective = formalParameters.simple;\n\t var body = this.parseFunctionSourceElements();\n\t if (this.context.strict && firstRestricted) {\n\t this.throwUnexpectedToken(firstRestricted, message);\n\t }\n\t if (this.context.strict && stricted) {\n\t this.tolerateUnexpectedToken(stricted, message);\n\t }\n\t this.context.strict = previousStrict;\n\t this.context.allowStrictDirective = previousAllowStrictDirective;\n\t this.context.await = previousAllowAwait;\n\t this.context.allowYield = previousAllowYield;\n\t return isAsync ? this.finalize(node, new Node.AsyncFunctionExpression(id, params, body)) :\n\t this.finalize(node, new Node.FunctionExpression(id, params, body, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-directive-prologues-and-the-use-strict-directive\n\t Parser.prototype.parseDirective = function () {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var expr = this.parseExpression();\n\t var directive = (expr.type === syntax_1.Syntax.Literal) ? this.getTokenRaw(token).slice(1, -1) : null;\n\t this.consumeSemicolon();\n\t return this.finalize(node, directive ? new Node.Directive(expr, directive) : new Node.ExpressionStatement(expr));\n\t };\n\t Parser.prototype.parseDirectivePrologues = function () {\n\t var firstRestricted = null;\n\t var body = [];\n\t while (true) {\n\t var token = this.lookahead;\n\t if (token.type !== 8 /* StringLiteral */) {\n\t break;\n\t }\n\t var statement = this.parseDirective();\n\t body.push(statement);\n\t var directive = statement.directive;\n\t if (typeof directive !== 'string') {\n\t break;\n\t }\n\t if (directive === 'use strict') {\n\t this.context.strict = true;\n\t if (firstRestricted) {\n\t this.tolerateUnexpectedToken(firstRestricted, messages_1.Messages.StrictOctalLiteral);\n\t }\n\t if (!this.context.allowStrictDirective) {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.IllegalLanguageModeDirective);\n\t }\n\t }\n\t else {\n\t if (!firstRestricted && token.octal) {\n\t firstRestricted = token;\n\t }\n\t }\n\t }\n\t return body;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-method-definitions\n\t Parser.prototype.qualifiedPropertyName = function (token) {\n\t switch (token.type) {\n\t case 3 /* Identifier */:\n\t case 8 /* StringLiteral */:\n\t case 1 /* BooleanLiteral */:\n\t case 5 /* NullLiteral */:\n\t case 6 /* NumericLiteral */:\n\t case 4 /* Keyword */:\n\t return true;\n\t case 7 /* Punctuator */:\n\t return token.value === '[';\n\t default:\n\t break;\n\t }\n\t return false;\n\t };\n\t Parser.prototype.parseGetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length > 0) {\n\t this.tolerateError(messages_1.Messages.BadGetterArity);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseSetterMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = false;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = !isGenerator;\n\t var formalParameters = this.parseFormalParameters();\n\t if (formalParameters.params.length !== 1) {\n\t this.tolerateError(messages_1.Messages.BadSetterArity);\n\t }\n\t else if (formalParameters.params[0] instanceof Node.RestElement) {\n\t this.tolerateError(messages_1.Messages.BadSetterRestParameter);\n\t }\n\t var method = this.parsePropertyMethod(formalParameters);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, formalParameters.params, method, isGenerator));\n\t };\n\t Parser.prototype.parseGeneratorMethod = function () {\n\t var node = this.createNode();\n\t var isGenerator = true;\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = true;\n\t var params = this.parseFormalParameters();\n\t this.context.allowYield = false;\n\t var method = this.parsePropertyMethod(params);\n\t this.context.allowYield = previousAllowYield;\n\t return this.finalize(node, new Node.FunctionExpression(null, params.params, method, isGenerator));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-generator-function-definitions\n\t Parser.prototype.isStartOfExpression = function () {\n\t var start = true;\n\t var value = this.lookahead.value;\n\t switch (this.lookahead.type) {\n\t case 7 /* Punctuator */:\n\t start = (value === '[') || (value === '(') || (value === '{') ||\n\t (value === '+') || (value === '-') ||\n\t (value === '!') || (value === '~') ||\n\t (value === '++') || (value === '--') ||\n\t (value === '/') || (value === '/='); // regular expression literal\n\t break;\n\t case 4 /* Keyword */:\n\t start = (value === 'class') || (value === 'delete') ||\n\t (value === 'function') || (value === 'let') || (value === 'new') ||\n\t (value === 'super') || (value === 'this') || (value === 'typeof') ||\n\t (value === 'void') || (value === 'yield');\n\t break;\n\t default:\n\t break;\n\t }\n\t return start;\n\t };\n\t Parser.prototype.parseYieldExpression = function () {\n\t var node = this.createNode();\n\t this.expectKeyword('yield');\n\t var argument = null;\n\t var delegate = false;\n\t if (!this.hasLineTerminator) {\n\t var previousAllowYield = this.context.allowYield;\n\t this.context.allowYield = false;\n\t delegate = this.match('*');\n\t if (delegate) {\n\t this.nextToken();\n\t argument = this.parseAssignmentExpression();\n\t }\n\t else if (this.isStartOfExpression()) {\n\t argument = this.parseAssignmentExpression();\n\t }\n\t this.context.allowYield = previousAllowYield;\n\t }\n\t return this.finalize(node, new Node.YieldExpression(argument, delegate));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-class-definitions\n\t Parser.prototype.parseClassElement = function (hasConstructor) {\n\t var token = this.lookahead;\n\t var node = this.createNode();\n\t var kind = '';\n\t var key = null;\n\t var value = null;\n\t var computed = false;\n\t var method = false;\n\t var isStatic = false;\n\t var isAsync = false;\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t var id = key;\n\t if (id.name === 'static' && (this.qualifiedPropertyName(this.lookahead) || this.match('*'))) {\n\t token = this.lookahead;\n\t isStatic = true;\n\t computed = this.match('[');\n\t if (this.match('*')) {\n\t this.nextToken();\n\t }\n\t else {\n\t key = this.parseObjectPropertyKey();\n\t }\n\t }\n\t if ((token.type === 3 /* Identifier */) && !this.hasLineTerminator && (token.value === 'async')) {\n\t var punctuator = this.lookahead.value;\n\t if (punctuator !== ':' && punctuator !== '(' && punctuator !== '*') {\n\t isAsync = true;\n\t token = this.lookahead;\n\t key = this.parseObjectPropertyKey();\n\t if (token.type === 3 /* Identifier */ && token.value === 'constructor') {\n\t this.tolerateUnexpectedToken(token, messages_1.Messages.ConstructorIsAsync);\n\t }\n\t }\n\t }\n\t }\n\t var lookaheadPropertyKey = this.qualifiedPropertyName(this.lookahead);\n\t if (token.type === 3 /* Identifier */) {\n\t if (token.value === 'get' && lookaheadPropertyKey) {\n\t kind = 'get';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t this.context.allowYield = false;\n\t value = this.parseGetterMethod();\n\t }\n\t else if (token.value === 'set' && lookaheadPropertyKey) {\n\t kind = 'set';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseSetterMethod();\n\t }\n\t }\n\t else if (token.type === 7 /* Punctuator */ && token.value === '*' && lookaheadPropertyKey) {\n\t kind = 'init';\n\t computed = this.match('[');\n\t key = this.parseObjectPropertyKey();\n\t value = this.parseGeneratorMethod();\n\t method = true;\n\t }\n\t if (!kind && key && this.match('(')) {\n\t kind = 'init';\n\t value = isAsync ? this.parsePropertyMethodAsyncFunction() : this.parsePropertyMethodFunction();\n\t method = true;\n\t }\n\t if (!kind) {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t if (kind === 'init') {\n\t kind = 'method';\n\t }\n\t if (!computed) {\n\t if (isStatic && this.isPropertyKey(key, 'prototype')) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.StaticPrototype);\n\t }\n\t if (!isStatic && this.isPropertyKey(key, 'constructor')) {\n\t if (kind !== 'method' || !method || (value && value.generator)) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.ConstructorSpecialMethod);\n\t }\n\t if (hasConstructor.value) {\n\t this.throwUnexpectedToken(token, messages_1.Messages.DuplicateConstructor);\n\t }\n\t else {\n\t hasConstructor.value = true;\n\t }\n\t kind = 'constructor';\n\t }\n\t }\n\t return this.finalize(node, new Node.MethodDefinition(key, computed, value, kind, isStatic));\n\t };\n\t Parser.prototype.parseClassElementList = function () {\n\t var body = [];\n\t var hasConstructor = { value: false };\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t if (this.match(';')) {\n\t this.nextToken();\n\t }\n\t else {\n\t body.push(this.parseClassElement(hasConstructor));\n\t }\n\t }\n\t this.expect('}');\n\t return body;\n\t };\n\t Parser.prototype.parseClassBody = function () {\n\t var node = this.createNode();\n\t var elementList = this.parseClassElementList();\n\t return this.finalize(node, new Node.ClassBody(elementList));\n\t };\n\t Parser.prototype.parseClassDeclaration = function (identifierIsOptional) {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (identifierIsOptional && (this.lookahead.type !== 3 /* Identifier */)) ? null : this.parseVariableIdentifier();\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassDeclaration(id, superClass, classBody));\n\t };\n\t Parser.prototype.parseClassExpression = function () {\n\t var node = this.createNode();\n\t var previousStrict = this.context.strict;\n\t this.context.strict = true;\n\t this.expectKeyword('class');\n\t var id = (this.lookahead.type === 3 /* Identifier */) ? this.parseVariableIdentifier() : null;\n\t var superClass = null;\n\t if (this.matchKeyword('extends')) {\n\t this.nextToken();\n\t superClass = this.isolateCoverGrammar(this.parseLeftHandSideExpressionAllowCall);\n\t }\n\t var classBody = this.parseClassBody();\n\t this.context.strict = previousStrict;\n\t return this.finalize(node, new Node.ClassExpression(id, superClass, classBody));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-scripts\n\t // https://tc39.github.io/ecma262/#sec-modules\n\t Parser.prototype.parseModule = function () {\n\t this.context.strict = true;\n\t this.context.isModule = true;\n\t this.scanner.isModule = true;\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Module(body));\n\t };\n\t Parser.prototype.parseScript = function () {\n\t var node = this.createNode();\n\t var body = this.parseDirectivePrologues();\n\t while (this.lookahead.type !== 2 /* EOF */) {\n\t body.push(this.parseStatementListItem());\n\t }\n\t return this.finalize(node, new Node.Script(body));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-imports\n\t Parser.prototype.parseModuleSpecifier = function () {\n\t var node = this.createNode();\n\t if (this.lookahead.type !== 8 /* StringLiteral */) {\n\t this.throwError(messages_1.Messages.InvalidModuleSpecifier);\n\t }\n\t var token = this.nextToken();\n\t var raw = this.getTokenRaw(token);\n\t return this.finalize(node, new Node.Literal(token.value, raw));\n\t };\n\t // import {<foo as bar>} ...;\n\t Parser.prototype.parseImportSpecifier = function () {\n\t var node = this.createNode();\n\t var imported;\n\t var local;\n\t if (this.lookahead.type === 3 /* Identifier */) {\n\t imported = this.parseVariableIdentifier();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t }\n\t else {\n\t imported = this.parseIdentifierName();\n\t local = imported;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t local = this.parseVariableIdentifier();\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t }\n\t return this.finalize(node, new Node.ImportSpecifier(local, imported));\n\t };\n\t // {foo, bar as bas}\n\t Parser.prototype.parseNamedImports = function () {\n\t this.expect('{');\n\t var specifiers = [];\n\t while (!this.match('}')) {\n\t specifiers.push(this.parseImportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t return specifiers;\n\t };\n\t // import <foo> ...;\n\t Parser.prototype.parseImportDefaultSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportDefaultSpecifier(local));\n\t };\n\t // import <* as foo> ...;\n\t Parser.prototype.parseImportNamespaceSpecifier = function () {\n\t var node = this.createNode();\n\t this.expect('*');\n\t if (!this.matchContextualKeyword('as')) {\n\t this.throwError(messages_1.Messages.NoAsAfterImportNamespace);\n\t }\n\t this.nextToken();\n\t var local = this.parseIdentifierName();\n\t return this.finalize(node, new Node.ImportNamespaceSpecifier(local));\n\t };\n\t Parser.prototype.parseImportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalImportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('import');\n\t var src;\n\t var specifiers = [];\n\t if (this.lookahead.type === 8 /* StringLiteral */) {\n\t // import 'foo';\n\t src = this.parseModuleSpecifier();\n\t }\n\t else {\n\t if (this.match('{')) {\n\t // import {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else if (this.match('*')) {\n\t // import * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.isIdentifierName(this.lookahead) && !this.matchKeyword('default')) {\n\t // import foo\n\t specifiers.push(this.parseImportDefaultSpecifier());\n\t if (this.match(',')) {\n\t this.nextToken();\n\t if (this.match('*')) {\n\t // import foo, * as foo\n\t specifiers.push(this.parseImportNamespaceSpecifier());\n\t }\n\t else if (this.match('{')) {\n\t // import foo, {bar}\n\t specifiers = specifiers.concat(this.parseNamedImports());\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken(this.nextToken());\n\t }\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t src = this.parseModuleSpecifier();\n\t }\n\t this.consumeSemicolon();\n\t return this.finalize(node, new Node.ImportDeclaration(specifiers, src));\n\t };\n\t // https://tc39.github.io/ecma262/#sec-exports\n\t Parser.prototype.parseExportSpecifier = function () {\n\t var node = this.createNode();\n\t var local = this.parseIdentifierName();\n\t var exported = local;\n\t if (this.matchContextualKeyword('as')) {\n\t this.nextToken();\n\t exported = this.parseIdentifierName();\n\t }\n\t return this.finalize(node, new Node.ExportSpecifier(local, exported));\n\t };\n\t Parser.prototype.parseExportDeclaration = function () {\n\t if (this.context.inFunctionBody) {\n\t this.throwError(messages_1.Messages.IllegalExportDeclaration);\n\t }\n\t var node = this.createNode();\n\t this.expectKeyword('export');\n\t var exportDeclaration;\n\t if (this.matchKeyword('default')) {\n\t // export default ...\n\t this.nextToken();\n\t if (this.matchKeyword('function')) {\n\t // export default function foo () {}\n\t // export default function () {}\n\t var declaration = this.parseFunctionDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchKeyword('class')) {\n\t // export default class foo {}\n\t var declaration = this.parseClassDeclaration(true);\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else if (this.matchContextualKeyword('async')) {\n\t // export default async function f () {}\n\t // export default async function () {}\n\t // export default async x => x\n\t var declaration = this.matchAsyncFunction() ? this.parseFunctionDeclaration(true) : this.parseAssignmentExpression();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t else {\n\t if (this.matchContextualKeyword('from')) {\n\t this.throwError(messages_1.Messages.UnexpectedToken, this.lookahead.value);\n\t }\n\t // export default {};\n\t // export default [];\n\t // export default (1 + 2);\n\t var declaration = this.match('{') ? this.parseObjectInitializer() :\n\t this.match('[') ? this.parseArrayInitializer() : this.parseAssignmentExpression();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportDefaultDeclaration(declaration));\n\t }\n\t }\n\t else if (this.match('*')) {\n\t // export * from 'foo';\n\t this.nextToken();\n\t if (!this.matchContextualKeyword('from')) {\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t this.nextToken();\n\t var src = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t exportDeclaration = this.finalize(node, new Node.ExportAllDeclaration(src));\n\t }\n\t else if (this.lookahead.type === 4 /* Keyword */) {\n\t // export var f = 1;\n\t var declaration = void 0;\n\t switch (this.lookahead.value) {\n\t case 'let':\n\t case 'const':\n\t declaration = this.parseLexicalDeclaration({ inFor: false });\n\t break;\n\t case 'var':\n\t case 'class':\n\t case 'function':\n\t declaration = this.parseStatementListItem();\n\t break;\n\t default:\n\t this.throwUnexpectedToken(this.lookahead);\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else if (this.matchAsyncFunction()) {\n\t var declaration = this.parseFunctionDeclaration();\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(declaration, [], null));\n\t }\n\t else {\n\t var specifiers = [];\n\t var source = null;\n\t var isExportFromIdentifier = false;\n\t this.expect('{');\n\t while (!this.match('}')) {\n\t isExportFromIdentifier = isExportFromIdentifier || this.matchKeyword('default');\n\t specifiers.push(this.parseExportSpecifier());\n\t if (!this.match('}')) {\n\t this.expect(',');\n\t }\n\t }\n\t this.expect('}');\n\t if (this.matchContextualKeyword('from')) {\n\t // export {default} from 'foo';\n\t // export {foo} from 'foo';\n\t this.nextToken();\n\t source = this.parseModuleSpecifier();\n\t this.consumeSemicolon();\n\t }\n\t else if (isExportFromIdentifier) {\n\t // export {default}; // missing fromClause\n\t var message = this.lookahead.value ? messages_1.Messages.UnexpectedToken : messages_1.Messages.MissingFromClause;\n\t this.throwError(message, this.lookahead.value);\n\t }\n\t else {\n\t // export {foo};\n\t this.consumeSemicolon();\n\t }\n\t exportDeclaration = this.finalize(node, new Node.ExportNamedDeclaration(null, specifiers, source));\n\t }\n\t return exportDeclaration;\n\t };\n\t return Parser;\n\t}());\n\texports.Parser = Parser;\n\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Ensure the condition is true, otherwise throw an error.\n\t// This is only to have a better contract semantic, i.e. another safety net\n\t// to catch a logic error. The condition shall be fulfilled in normal case.\n\t// Do NOT use this to enforce a certain condition on any user input.\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tfunction assert(condition, message) {\n\t /* istanbul ignore if */\n\t if (!condition) {\n\t throw new Error('ASSERT: ' + message);\n\t }\n\t}\n\texports.assert = assert;\n\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t/* tslint:disable:max-classes-per-file */\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar ErrorHandler = (function () {\n\t function ErrorHandler() {\n\t this.errors = [];\n\t this.tolerant = false;\n\t }\n\t ErrorHandler.prototype.recordError = function (error) {\n\t this.errors.push(error);\n\t };\n\t ErrorHandler.prototype.tolerate = function (error) {\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t ErrorHandler.prototype.constructError = function (msg, column) {\n\t var error = new Error(msg);\n\t try {\n\t throw error;\n\t }\n\t catch (base) {\n\t /* istanbul ignore else */\n\t if (Object.create && Object.defineProperty) {\n\t error = Object.create(base);\n\t Object.defineProperty(error, 'column', { value: column });\n\t }\n\t }\n\t /* istanbul ignore next */\n\t return error;\n\t };\n\t ErrorHandler.prototype.createError = function (index, line, col, description) {\n\t var msg = 'Line ' + line + ': ' + description;\n\t var error = this.constructError(msg, col);\n\t error.index = index;\n\t error.lineNumber = line;\n\t error.description = description;\n\t return error;\n\t };\n\t ErrorHandler.prototype.throwError = function (index, line, col, description) {\n\t throw this.createError(index, line, col, description);\n\t };\n\t ErrorHandler.prototype.tolerateError = function (index, line, col, description) {\n\t var error = this.createError(index, line, col, description);\n\t if (this.tolerant) {\n\t this.recordError(error);\n\t }\n\t else {\n\t throw error;\n\t }\n\t };\n\t return ErrorHandler;\n\t}());\n\texports.ErrorHandler = ErrorHandler;\n\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\t// Error messages should be identical to V8.\n\texports.Messages = {\n\t BadGetterArity: 'Getter must not have any formal parameters',\n\t BadSetterArity: 'Setter must have exactly one formal parameter',\n\t BadSetterRestParameter: 'Setter function argument must not be a rest parameter',\n\t ConstructorIsAsync: 'Class constructor may not be an async method',\n\t ConstructorSpecialMethod: 'Class constructor may not be an accessor',\n\t DeclarationMissingInitializer: 'Missing initializer in %0 declaration',\n\t DefaultRestParameter: 'Unexpected token =',\n\t DuplicateBinding: 'Duplicate binding %0',\n\t DuplicateConstructor: 'A class may only have one constructor',\n\t DuplicateProtoProperty: 'Duplicate __proto__ fields are not allowed in object literals',\n\t ForInOfLoopInitializer: '%0 loop variable declaration may not have an initializer',\n\t GeneratorInLegacyContext: 'Generator declarations are not allowed in legacy contexts',\n\t IllegalBreak: 'Illegal break statement',\n\t IllegalContinue: 'Illegal continue statement',\n\t IllegalExportDeclaration: 'Unexpected token',\n\t IllegalImportDeclaration: 'Unexpected token',\n\t IllegalLanguageModeDirective: 'Illegal \\'use strict\\' directive in function with non-simple parameter list',\n\t IllegalReturn: 'Illegal return statement',\n\t InvalidEscapedReservedWord: 'Keyword must not contain escaped characters',\n\t InvalidHexEscapeSequence: 'Invalid hexadecimal escape sequence',\n\t InvalidLHSInAssignment: 'Invalid left-hand side in assignment',\n\t InvalidLHSInForIn: 'Invalid left-hand side in for-in',\n\t InvalidLHSInForLoop: 'Invalid left-hand side in for-loop',\n\t InvalidModuleSpecifier: 'Unexpected token',\n\t InvalidRegExp: 'Invalid regular expression',\n\t LetInLexicalBinding: 'let is disallowed as a lexically bound name',\n\t MissingFromClause: 'Unexpected token',\n\t MultipleDefaultsInSwitch: 'More than one default clause in switch statement',\n\t NewlineAfterThrow: 'Illegal newline after throw',\n\t NoAsAfterImportNamespace: 'Unexpected token',\n\t NoCatchOrFinally: 'Missing catch or finally after try',\n\t ParameterAfterRestParameter: 'Rest parameter must be last formal parameter',\n\t Redeclaration: '%0 \\'%1\\' has already been declared',\n\t StaticPrototype: 'Classes may not have static property named prototype',\n\t StrictCatchVariable: 'Catch variable may not be eval or arguments in strict mode',\n\t StrictDelete: 'Delete of an unqualified identifier in strict mode.',\n\t StrictFunction: 'In strict mode code, functions can only be declared at top level or inside a block',\n\t StrictFunctionName: 'Function name may not be eval or arguments in strict mode',\n\t StrictLHSAssignment: 'Assignment to eval or arguments is not allowed in strict mode',\n\t StrictLHSPostfix: 'Postfix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictLHSPrefix: 'Prefix increment/decrement may not have eval or arguments operand in strict mode',\n\t StrictModeWith: 'Strict mode code may not include a with statement',\n\t StrictOctalLiteral: 'Octal literals are not allowed in strict mode.',\n\t StrictParamDupe: 'Strict mode function may not have duplicate parameter names',\n\t StrictParamName: 'Parameter name eval or arguments is not allowed in strict mode',\n\t StrictReservedWord: 'Use of future reserved word in strict mode',\n\t StrictVarName: 'Variable name may not be eval or arguments in strict mode',\n\t TemplateOctalLiteral: 'Octal literals are not allowed in template strings.',\n\t UnexpectedEOS: 'Unexpected end of input',\n\t UnexpectedIdentifier: 'Unexpected identifier',\n\t UnexpectedNumber: 'Unexpected number',\n\t UnexpectedReserved: 'Unexpected reserved word',\n\t UnexpectedString: 'Unexpected string',\n\t UnexpectedTemplate: 'Unexpected quasi %0',\n\t UnexpectedToken: 'Unexpected token %0',\n\t UnexpectedTokenIllegal: 'Unexpected token ILLEGAL',\n\t UnknownLabel: 'Undefined label \\'%0\\'',\n\t UnterminatedRegExp: 'Invalid regular expression: missing /'\n\t};\n\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar assert_1 = __webpack_require__(9);\n\tvar character_1 = __webpack_require__(4);\n\tvar messages_1 = __webpack_require__(11);\n\tfunction hexValue(ch) {\n\t return '0123456789abcdef'.indexOf(ch.toLowerCase());\n\t}\n\tfunction octalValue(ch) {\n\t return '01234567'.indexOf(ch);\n\t}\n\tvar Scanner = (function () {\n\t function Scanner(code, handler) {\n\t this.source = code;\n\t this.errorHandler = handler;\n\t this.trackComment = false;\n\t this.isModule = false;\n\t this.length = code.length;\n\t this.index = 0;\n\t this.lineNumber = (code.length > 0) ? 1 : 0;\n\t this.lineStart = 0;\n\t this.curlyStack = [];\n\t }\n\t Scanner.prototype.saveState = function () {\n\t return {\n\t index: this.index,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart\n\t };\n\t };\n\t Scanner.prototype.restoreState = function (state) {\n\t this.index = state.index;\n\t this.lineNumber = state.lineNumber;\n\t this.lineStart = state.lineStart;\n\t };\n\t Scanner.prototype.eof = function () {\n\t return this.index >= this.length;\n\t };\n\t Scanner.prototype.throwUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t return this.errorHandler.throwError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t Scanner.prototype.tolerateUnexpectedToken = function (message) {\n\t if (message === void 0) { message = messages_1.Messages.UnexpectedTokenIllegal; }\n\t this.errorHandler.tolerateError(this.index, this.lineNumber, this.index - this.lineStart + 1, message);\n\t };\n\t // https://tc39.github.io/ecma262/#sec-comments\n\t Scanner.prototype.skipSingleLineComment = function (offset) {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - offset;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - offset\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t ++this.index;\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 1\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index - 1],\n\t range: [start, this.index - 1],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t if (ch === 13 && this.source.charCodeAt(this.index) === 10) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t return comments;\n\t }\n\t }\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: false,\n\t slice: [start + offset, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t };\n\t Scanner.prototype.skipMultiLineComment = function () {\n\t var comments = [];\n\t var start, loc;\n\t if (this.trackComment) {\n\t comments = [];\n\t start = this.index - 2;\n\t loc = {\n\t start: {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart - 2\n\t },\n\t end: {}\n\t };\n\t }\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isLineTerminator(ch)) {\n\t if (ch === 0x0D && this.source.charCodeAt(this.index + 1) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t ++this.index;\n\t this.lineStart = this.index;\n\t }\n\t else if (ch === 0x2A) {\n\t // Block comment ends with '*/'.\n\t if (this.source.charCodeAt(this.index + 1) === 0x2F) {\n\t this.index += 2;\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index - 2],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t return comments;\n\t }\n\t ++this.index;\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t }\n\t // Ran off the end of the file - the whole thing is a comment\n\t if (this.trackComment) {\n\t loc.end = {\n\t line: this.lineNumber,\n\t column: this.index - this.lineStart\n\t };\n\t var entry = {\n\t multiLine: true,\n\t slice: [start + 2, this.index],\n\t range: [start, this.index],\n\t loc: loc\n\t };\n\t comments.push(entry);\n\t }\n\t this.tolerateUnexpectedToken();\n\t return comments;\n\t };\n\t Scanner.prototype.scanComments = function () {\n\t var comments;\n\t if (this.trackComment) {\n\t comments = [];\n\t }\n\t var start = (this.index === 0);\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isWhiteSpace(ch)) {\n\t ++this.index;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch)) {\n\t ++this.index;\n\t if (ch === 0x0D && this.source.charCodeAt(this.index) === 0x0A) {\n\t ++this.index;\n\t }\n\t ++this.lineNumber;\n\t this.lineStart = this.index;\n\t start = true;\n\t }\n\t else if (ch === 0x2F) {\n\t ch = this.source.charCodeAt(this.index + 1);\n\t if (ch === 0x2F) {\n\t this.index += 2;\n\t var comment = this.skipSingleLineComment(2);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t start = true;\n\t }\n\t else if (ch === 0x2A) {\n\t this.index += 2;\n\t var comment = this.skipMultiLineComment();\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (start && ch === 0x2D) {\n\t // U+003E is '>'\n\t if ((this.source.charCodeAt(this.index + 1) === 0x2D) && (this.source.charCodeAt(this.index + 2) === 0x3E)) {\n\t // '-->' is a single-line comment\n\t this.index += 3;\n\t var comment = this.skipSingleLineComment(3);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else if (ch === 0x3C && !this.isModule) {\n\t if (this.source.slice(this.index + 1, this.index + 4) === '!--') {\n\t this.index += 4; // `<!--`\n\t var comment = this.skipSingleLineComment(4);\n\t if (this.trackComment) {\n\t comments = comments.concat(comment);\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return comments;\n\t };\n\t // https://tc39.github.io/ecma262/#sec-future-reserved-words\n\t Scanner.prototype.isFutureReservedWord = function (id) {\n\t switch (id) {\n\t case 'enum':\n\t case 'export':\n\t case 'import':\n\t case 'super':\n\t return true;\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.isStrictModeReservedWord = function (id) {\n\t switch (id) {\n\t case 'implements':\n\t case 'interface':\n\t case 'package':\n\t case 'private':\n\t case 'protected':\n\t case 'public':\n\t case 'static':\n\t case 'yield':\n\t case 'let':\n\t return true;\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.isRestrictedWord = function (id) {\n\t return id === 'eval' || id === 'arguments';\n\t };\n\t // https://tc39.github.io/ecma262/#sec-keywords\n\t Scanner.prototype.isKeyword = function (id) {\n\t switch (id.length) {\n\t case 2:\n\t return (id === 'if') || (id === 'in') || (id === 'do');\n\t case 3:\n\t return (id === 'var') || (id === 'for') || (id === 'new') ||\n\t (id === 'try') || (id === 'let');\n\t case 4:\n\t return (id === 'this') || (id === 'else') || (id === 'case') ||\n\t (id === 'void') || (id === 'with') || (id === 'enum');\n\t case 5:\n\t return (id === 'while') || (id === 'break') || (id === 'catch') ||\n\t (id === 'throw') || (id === 'const') || (id === 'yield') ||\n\t (id === 'class') || (id === 'super');\n\t case 6:\n\t return (id === 'return') || (id === 'typeof') || (id === 'delete') ||\n\t (id === 'switch') || (id === 'export') || (id === 'import');\n\t case 7:\n\t return (id === 'default') || (id === 'finally') || (id === 'extends');\n\t case 8:\n\t return (id === 'function') || (id === 'continue') || (id === 'debugger');\n\t case 10:\n\t return (id === 'instanceof');\n\t default:\n\t return false;\n\t }\n\t };\n\t Scanner.prototype.codePointAt = function (i) {\n\t var cp = this.source.charCodeAt(i);\n\t if (cp >= 0xD800 && cp <= 0xDBFF) {\n\t var second = this.source.charCodeAt(i + 1);\n\t if (second >= 0xDC00 && second <= 0xDFFF) {\n\t var first = cp;\n\t cp = (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n\t }\n\t }\n\t return cp;\n\t };\n\t Scanner.prototype.scanHexEscape = function (prefix) {\n\t var len = (prefix === 'u') ? 4 : 2;\n\t var code = 0;\n\t for (var i = 0; i < len; ++i) {\n\t if (!this.eof() && character_1.Character.isHexDigit(this.source.charCodeAt(this.index))) {\n\t code = code * 16 + hexValue(this.source[this.index++]);\n\t }\n\t else {\n\t return null;\n\t }\n\t }\n\t return String.fromCharCode(code);\n\t };\n\t Scanner.prototype.scanUnicodeCodePointEscape = function () {\n\t var ch = this.source[this.index];\n\t var code = 0;\n\t // At least, one hex digit is required.\n\t if (ch === '}') {\n\t this.throwUnexpectedToken();\n\t }\n\t while (!this.eof()) {\n\t ch = this.source[this.index++];\n\t if (!character_1.Character.isHexDigit(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t code = code * 16 + hexValue(ch);\n\t }\n\t if (code > 0x10FFFF || ch !== '}') {\n\t this.throwUnexpectedToken();\n\t }\n\t return character_1.Character.fromCodePoint(code);\n\t };\n\t Scanner.prototype.getIdentifier = function () {\n\t var start = this.index++;\n\t while (!this.eof()) {\n\t var ch = this.source.charCodeAt(this.index);\n\t if (ch === 0x5C) {\n\t // Blackslash (U+005C) marks Unicode escape sequence.\n\t this.index = start;\n\t return this.getComplexIdentifier();\n\t }\n\t else if (ch >= 0xD800 && ch < 0xDFFF) {\n\t // Need to handle surrogate pairs.\n\t this.index = start;\n\t return this.getComplexIdentifier();\n\t }\n\t if (character_1.Character.isIdentifierPart(ch)) {\n\t ++this.index;\n\t }\n\t else {\n\t break;\n\t }\n\t }\n\t return this.source.slice(start, this.index);\n\t };\n\t Scanner.prototype.getComplexIdentifier = function () {\n\t var cp = this.codePointAt(this.index);\n\t var id = character_1.Character.fromCodePoint(cp);\n\t this.index += id.length;\n\t // '\\u' (U+005C, U+0075) denotes an escaped character.\n\t var ch;\n\t if (cp === 0x5C) {\n\t if (this.source.charCodeAt(this.index) !== 0x75) {\n\t this.throwUnexpectedToken();\n\t }\n\t ++this.index;\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t ch = this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t ch = this.scanHexEscape('u');\n\t if (ch === null || ch === '\\\\' || !character_1.Character.isIdentifierStart(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t id = ch;\n\t }\n\t while (!this.eof()) {\n\t cp = this.codePointAt(this.index);\n\t if (!character_1.Character.isIdentifierPart(cp)) {\n\t break;\n\t }\n\t ch = character_1.Character.fromCodePoint(cp);\n\t id += ch;\n\t this.index += ch.length;\n\t // '\\u' (U+005C, U+0075) denotes an escaped character.\n\t if (cp === 0x5C) {\n\t id = id.substr(0, id.length - 1);\n\t if (this.source.charCodeAt(this.index) !== 0x75) {\n\t this.throwUnexpectedToken();\n\t }\n\t ++this.index;\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t ch = this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t ch = this.scanHexEscape('u');\n\t if (ch === null || ch === '\\\\' || !character_1.Character.isIdentifierPart(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t id += ch;\n\t }\n\t }\n\t return id;\n\t };\n\t Scanner.prototype.octalToDecimal = function (ch) {\n\t // \\0 is not octal escape sequence\n\t var octal = (ch !== '0');\n\t var code = octalValue(ch);\n\t if (!this.eof() && character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t octal = true;\n\t code = code * 8 + octalValue(this.source[this.index++]);\n\t // 3 digits are only allowed when string starts\n\t // with 0, 1, 2, 3\n\t if ('0123'.indexOf(ch) >= 0 && !this.eof() && character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t code = code * 8 + octalValue(this.source[this.index++]);\n\t }\n\t }\n\t return {\n\t code: code,\n\t octal: octal\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-names-and-keywords\n\t Scanner.prototype.scanIdentifier = function () {\n\t var type;\n\t var start = this.index;\n\t // Backslash (U+005C) starts an escaped character.\n\t var id = (this.source.charCodeAt(start) === 0x5C) ? this.getComplexIdentifier() : this.getIdentifier();\n\t // There is no keyword or literal with only one character.\n\t // Thus, it must be an identifier.\n\t if (id.length === 1) {\n\t type = 3 /* Identifier */;\n\t }\n\t else if (this.isKeyword(id)) {\n\t type = 4 /* Keyword */;\n\t }\n\t else if (id === 'null') {\n\t type = 5 /* NullLiteral */;\n\t }\n\t else if (id === 'true' || id === 'false') {\n\t type = 1 /* BooleanLiteral */;\n\t }\n\t else {\n\t type = 3 /* Identifier */;\n\t }\n\t if (type !== 3 /* Identifier */ && (start + id.length !== this.index)) {\n\t var restore = this.index;\n\t this.index = start;\n\t this.tolerateUnexpectedToken(messages_1.Messages.InvalidEscapedReservedWord);\n\t this.index = restore;\n\t }\n\t return {\n\t type: type,\n\t value: id,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-punctuators\n\t Scanner.prototype.scanPunctuator = function () {\n\t var start = this.index;\n\t // Check for most common single-character punctuators.\n\t var str = this.source[this.index];\n\t switch (str) {\n\t case '(':\n\t case '{':\n\t if (str === '{') {\n\t this.curlyStack.push('{');\n\t }\n\t ++this.index;\n\t break;\n\t case '.':\n\t ++this.index;\n\t if (this.source[this.index] === '.' && this.source[this.index + 1] === '.') {\n\t // Spread operator: ...\n\t this.index += 2;\n\t str = '...';\n\t }\n\t break;\n\t case '}':\n\t ++this.index;\n\t this.curlyStack.pop();\n\t break;\n\t case ')':\n\t case ';':\n\t case ',':\n\t case '[':\n\t case ']':\n\t case ':':\n\t case '?':\n\t case '~':\n\t ++this.index;\n\t break;\n\t default:\n\t // 4-character punctuator.\n\t str = this.source.substr(this.index, 4);\n\t if (str === '>>>=') {\n\t this.index += 4;\n\t }\n\t else {\n\t // 3-character punctuators.\n\t str = str.substr(0, 3);\n\t if (str === '===' || str === '!==' || str === '>>>' ||\n\t str === '<<=' || str === '>>=' || str === '**=') {\n\t this.index += 3;\n\t }\n\t else {\n\t // 2-character punctuators.\n\t str = str.substr(0, 2);\n\t if (str === '&&' || str === '||' || str === '==' || str === '!=' ||\n\t str === '+=' || str === '-=' || str === '*=' || str === '/=' ||\n\t str === '++' || str === '--' || str === '<<' || str === '>>' ||\n\t str === '&=' || str === '|=' || str === '^=' || str === '%=' ||\n\t str === '<=' || str === '>=' || str === '=>' || str === '**') {\n\t this.index += 2;\n\t }\n\t else {\n\t // 1-character punctuators.\n\t str = this.source[this.index];\n\t if ('<>=!+-*%&|^/'.indexOf(str) >= 0) {\n\t ++this.index;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t if (this.index === start) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 7 /* Punctuator */,\n\t value: str,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-numeric-literals\n\t Scanner.prototype.scanHexLiteral = function (start) {\n\t var num = '';\n\t while (!this.eof()) {\n\t if (!character_1.Character.isHexDigit(this.source.charCodeAt(this.index))) {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (num.length === 0) {\n\t this.throwUnexpectedToken();\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt('0x' + num, 16),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.scanBinaryLiteral = function (start) {\n\t var num = '';\n\t var ch;\n\t while (!this.eof()) {\n\t ch = this.source[this.index];\n\t if (ch !== '0' && ch !== '1') {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (num.length === 0) {\n\t // only 0b or 0B\n\t this.throwUnexpectedToken();\n\t }\n\t if (!this.eof()) {\n\t ch = this.source.charCodeAt(this.index);\n\t /* istanbul ignore else */\n\t if (character_1.Character.isIdentifierStart(ch) || character_1.Character.isDecimalDigit(ch)) {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt(num, 2),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.scanOctalLiteral = function (prefix, start) {\n\t var num = '';\n\t var octal = false;\n\t if (character_1.Character.isOctalDigit(prefix.charCodeAt(0))) {\n\t octal = true;\n\t num = '0' + this.source[this.index++];\n\t }\n\t else {\n\t ++this.index;\n\t }\n\t while (!this.eof()) {\n\t if (!character_1.Character.isOctalDigit(this.source.charCodeAt(this.index))) {\n\t break;\n\t }\n\t num += this.source[this.index++];\n\t }\n\t if (!octal && num.length === 0) {\n\t // only 0o or 0O\n\t this.throwUnexpectedToken();\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index)) || character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseInt(num, 8),\n\t octal: octal,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.isImplicitOctalLiteral = function () {\n\t // Implicit octal, unless there is a non-octal digit.\n\t // (Annex B.1.1 on Numeric Literals)\n\t for (var i = this.index + 1; i < this.length; ++i) {\n\t var ch = this.source[i];\n\t if (ch === '8' || ch === '9') {\n\t return false;\n\t }\n\t if (!character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t return true;\n\t }\n\t }\n\t return true;\n\t };\n\t Scanner.prototype.scanNumericLiteral = function () {\n\t var start = this.index;\n\t var ch = this.source[start];\n\t assert_1.assert(character_1.Character.isDecimalDigit(ch.charCodeAt(0)) || (ch === '.'), 'Numeric literal must start with a decimal digit or a decimal point');\n\t var num = '';\n\t if (ch !== '.') {\n\t num = this.source[this.index++];\n\t ch = this.source[this.index];\n\t // Hex number starts with '0x'.\n\t // Octal number starts with '0'.\n\t // Octal number in ES6 starts with '0o'.\n\t // Binary number in ES6 starts with '0b'.\n\t if (num === '0') {\n\t if (ch === 'x' || ch === 'X') {\n\t ++this.index;\n\t return this.scanHexLiteral(start);\n\t }\n\t if (ch === 'b' || ch === 'B') {\n\t ++this.index;\n\t return this.scanBinaryLiteral(start);\n\t }\n\t if (ch === 'o' || ch === 'O') {\n\t return this.scanOctalLiteral(ch, start);\n\t }\n\t if (ch && character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t if (this.isImplicitOctalLiteral()) {\n\t return this.scanOctalLiteral(ch, start);\n\t }\n\t }\n\t }\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t ch = this.source[this.index];\n\t }\n\t if (ch === '.') {\n\t num += this.source[this.index++];\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t ch = this.source[this.index];\n\t }\n\t if (ch === 'e' || ch === 'E') {\n\t num += this.source[this.index++];\n\t ch = this.source[this.index];\n\t if (ch === '+' || ch === '-') {\n\t num += this.source[this.index++];\n\t }\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t while (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t num += this.source[this.index++];\n\t }\n\t }\n\t else {\n\t this.throwUnexpectedToken();\n\t }\n\t }\n\t if (character_1.Character.isIdentifierStart(this.source.charCodeAt(this.index))) {\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 6 /* NumericLiteral */,\n\t value: parseFloat(num),\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-string-literals\n\t Scanner.prototype.scanStringLiteral = function () {\n\t var start = this.index;\n\t var quote = this.source[start];\n\t assert_1.assert((quote === '\\'' || quote === '\"'), 'String literal must starts with a quote');\n\t ++this.index;\n\t var octal = false;\n\t var str = '';\n\t while (!this.eof()) {\n\t var ch = this.source[this.index++];\n\t if (ch === quote) {\n\t quote = '';\n\t break;\n\t }\n\t else if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t if (!ch || !character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t switch (ch) {\n\t case 'u':\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t str += this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t var unescaped_1 = this.scanHexEscape(ch);\n\t if (unescaped_1 === null) {\n\t this.throwUnexpectedToken();\n\t }\n\t str += unescaped_1;\n\t }\n\t break;\n\t case 'x':\n\t var unescaped = this.scanHexEscape(ch);\n\t if (unescaped === null) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidHexEscapeSequence);\n\t }\n\t str += unescaped;\n\t break;\n\t case 'n':\n\t str += '\\n';\n\t break;\n\t case 'r':\n\t str += '\\r';\n\t break;\n\t case 't':\n\t str += '\\t';\n\t break;\n\t case 'b':\n\t str += '\\b';\n\t break;\n\t case 'f':\n\t str += '\\f';\n\t break;\n\t case 'v':\n\t str += '\\x0B';\n\t break;\n\t case '8':\n\t case '9':\n\t str += ch;\n\t this.tolerateUnexpectedToken();\n\t break;\n\t default:\n\t if (ch && character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t var octToDec = this.octalToDecimal(ch);\n\t octal = octToDec.octal || octal;\n\t str += String.fromCharCode(octToDec.code);\n\t }\n\t else {\n\t str += ch;\n\t }\n\t break;\n\t }\n\t }\n\t else {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t }\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t else {\n\t str += ch;\n\t }\n\t }\n\t if (quote !== '') {\n\t this.index = start;\n\t this.throwUnexpectedToken();\n\t }\n\t return {\n\t type: 8 /* StringLiteral */,\n\t value: str,\n\t octal: octal,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-template-literal-lexical-components\n\t Scanner.prototype.scanTemplate = function () {\n\t var cooked = '';\n\t var terminated = false;\n\t var start = this.index;\n\t var head = (this.source[start] === '`');\n\t var tail = false;\n\t var rawOffset = 2;\n\t ++this.index;\n\t while (!this.eof()) {\n\t var ch = this.source[this.index++];\n\t if (ch === '`') {\n\t rawOffset = 1;\n\t tail = true;\n\t terminated = true;\n\t break;\n\t }\n\t else if (ch === '$') {\n\t if (this.source[this.index] === '{') {\n\t this.curlyStack.push('${');\n\t ++this.index;\n\t terminated = true;\n\t break;\n\t }\n\t cooked += ch;\n\t }\n\t else if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t if (!character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t switch (ch) {\n\t case 'n':\n\t cooked += '\\n';\n\t break;\n\t case 'r':\n\t cooked += '\\r';\n\t break;\n\t case 't':\n\t cooked += '\\t';\n\t break;\n\t case 'u':\n\t if (this.source[this.index] === '{') {\n\t ++this.index;\n\t cooked += this.scanUnicodeCodePointEscape();\n\t }\n\t else {\n\t var restore = this.index;\n\t var unescaped_2 = this.scanHexEscape(ch);\n\t if (unescaped_2 !== null) {\n\t cooked += unescaped_2;\n\t }\n\t else {\n\t this.index = restore;\n\t cooked += ch;\n\t }\n\t }\n\t break;\n\t case 'x':\n\t var unescaped = this.scanHexEscape(ch);\n\t if (unescaped === null) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidHexEscapeSequence);\n\t }\n\t cooked += unescaped;\n\t break;\n\t case 'b':\n\t cooked += '\\b';\n\t break;\n\t case 'f':\n\t cooked += '\\f';\n\t break;\n\t case 'v':\n\t cooked += '\\v';\n\t break;\n\t default:\n\t if (ch === '0') {\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index))) {\n\t // Illegal: \\01 \\02 and so on\n\t this.throwUnexpectedToken(messages_1.Messages.TemplateOctalLiteral);\n\t }\n\t cooked += '\\0';\n\t }\n\t else if (character_1.Character.isOctalDigit(ch.charCodeAt(0))) {\n\t // Illegal: \\1 \\2\n\t this.throwUnexpectedToken(messages_1.Messages.TemplateOctalLiteral);\n\t }\n\t else {\n\t cooked += ch;\n\t }\n\t break;\n\t }\n\t }\n\t else {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t }\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t ++this.lineNumber;\n\t if (ch === '\\r' && this.source[this.index] === '\\n') {\n\t ++this.index;\n\t }\n\t this.lineStart = this.index;\n\t cooked += '\\n';\n\t }\n\t else {\n\t cooked += ch;\n\t }\n\t }\n\t if (!terminated) {\n\t this.throwUnexpectedToken();\n\t }\n\t if (!head) {\n\t this.curlyStack.pop();\n\t }\n\t return {\n\t type: 10 /* Template */,\n\t value: this.source.slice(start + 1, this.index - rawOffset),\n\t cooked: cooked,\n\t head: head,\n\t tail: tail,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t // https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals\n\t Scanner.prototype.testRegExp = function (pattern, flags) {\n\t // The BMP character to use as a replacement for astral symbols when\n\t // translating an ES6 \"u\"-flagged pattern to an ES5-compatible\n\t // approximation.\n\t // Note: replacing with '\\uFFFF' enables false positives in unlikely\n\t // scenarios. For example, `[\\u{1044f}-\\u{10440}]` is an invalid\n\t // pattern that would not be detected by this substitution.\n\t var astralSubstitute = '\\uFFFF';\n\t var tmp = pattern;\n\t var self = this;\n\t if (flags.indexOf('u') >= 0) {\n\t tmp = tmp\n\t .replace(/\\\\u\\{([0-9a-fA-F]+)\\}|\\\\u([a-fA-F0-9]{4})/g, function ($0, $1, $2) {\n\t var codePoint = parseInt($1 || $2, 16);\n\t if (codePoint > 0x10FFFF) {\n\t self.throwUnexpectedToken(messages_1.Messages.InvalidRegExp);\n\t }\n\t if (codePoint <= 0xFFFF) {\n\t return String.fromCharCode(codePoint);\n\t }\n\t return astralSubstitute;\n\t })\n\t .replace(/[\\uD800-\\uDBFF][\\uDC00-\\uDFFF]/g, astralSubstitute);\n\t }\n\t // First, detect invalid regular expressions.\n\t try {\n\t RegExp(tmp);\n\t }\n\t catch (e) {\n\t this.throwUnexpectedToken(messages_1.Messages.InvalidRegExp);\n\t }\n\t // Return a regular expression object for this pattern-flag pair, or\n\t // `null` in case the current environment doesn't support the flags it\n\t // uses.\n\t try {\n\t return new RegExp(pattern, flags);\n\t }\n\t catch (exception) {\n\t /* istanbul ignore next */\n\t return null;\n\t }\n\t };\n\t Scanner.prototype.scanRegExpBody = function () {\n\t var ch = this.source[this.index];\n\t assert_1.assert(ch === '/', 'Regular expression literal must start with a slash');\n\t var str = this.source[this.index++];\n\t var classMarker = false;\n\t var terminated = false;\n\t while (!this.eof()) {\n\t ch = this.source[this.index++];\n\t str += ch;\n\t if (ch === '\\\\') {\n\t ch = this.source[this.index++];\n\t // https://tc39.github.io/ecma262/#sec-literals-regular-expression-literals\n\t if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t str += ch;\n\t }\n\t else if (character_1.Character.isLineTerminator(ch.charCodeAt(0))) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t else if (classMarker) {\n\t if (ch === ']') {\n\t classMarker = false;\n\t }\n\t }\n\t else {\n\t if (ch === '/') {\n\t terminated = true;\n\t break;\n\t }\n\t else if (ch === '[') {\n\t classMarker = true;\n\t }\n\t }\n\t }\n\t if (!terminated) {\n\t this.throwUnexpectedToken(messages_1.Messages.UnterminatedRegExp);\n\t }\n\t // Exclude leading and trailing slash.\n\t return str.substr(1, str.length - 2);\n\t };\n\t Scanner.prototype.scanRegExpFlags = function () {\n\t var str = '';\n\t var flags = '';\n\t while (!this.eof()) {\n\t var ch = this.source[this.index];\n\t if (!character_1.Character.isIdentifierPart(ch.charCodeAt(0))) {\n\t break;\n\t }\n\t ++this.index;\n\t if (ch === '\\\\' && !this.eof()) {\n\t ch = this.source[this.index];\n\t if (ch === 'u') {\n\t ++this.index;\n\t var restore = this.index;\n\t var char = this.scanHexEscape('u');\n\t if (char !== null) {\n\t flags += char;\n\t for (str += '\\\\u'; restore < this.index; ++restore) {\n\t str += this.source[restore];\n\t }\n\t }\n\t else {\n\t this.index = restore;\n\t flags += 'u';\n\t str += '\\\\u';\n\t }\n\t this.tolerateUnexpectedToken();\n\t }\n\t else {\n\t str += '\\\\';\n\t this.tolerateUnexpectedToken();\n\t }\n\t }\n\t else {\n\t flags += ch;\n\t str += ch;\n\t }\n\t }\n\t return flags;\n\t };\n\t Scanner.prototype.scanRegExp = function () {\n\t var start = this.index;\n\t var pattern = this.scanRegExpBody();\n\t var flags = this.scanRegExpFlags();\n\t var value = this.testRegExp(pattern, flags);\n\t return {\n\t type: 9 /* RegularExpression */,\n\t value: '',\n\t pattern: pattern,\n\t flags: flags,\n\t regex: value,\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: start,\n\t end: this.index\n\t };\n\t };\n\t Scanner.prototype.lex = function () {\n\t if (this.eof()) {\n\t return {\n\t type: 2 /* EOF */,\n\t value: '',\n\t lineNumber: this.lineNumber,\n\t lineStart: this.lineStart,\n\t start: this.index,\n\t end: this.index\n\t };\n\t }\n\t var cp = this.source.charCodeAt(this.index);\n\t if (character_1.Character.isIdentifierStart(cp)) {\n\t return this.scanIdentifier();\n\t }\n\t // Very common: ( and ) and ;\n\t if (cp === 0x28 || cp === 0x29 || cp === 0x3B) {\n\t return this.scanPunctuator();\n\t }\n\t // String literal starts with single quote (U+0027) or double quote (U+0022).\n\t if (cp === 0x27 || cp === 0x22) {\n\t return this.scanStringLiteral();\n\t }\n\t // Dot (.) U+002E can also start a floating-point number, hence the need\n\t // to check the next character.\n\t if (cp === 0x2E) {\n\t if (character_1.Character.isDecimalDigit(this.source.charCodeAt(this.index + 1))) {\n\t return this.scanNumericLiteral();\n\t }\n\t return this.scanPunctuator();\n\t }\n\t if (character_1.Character.isDecimalDigit(cp)) {\n\t return this.scanNumericLiteral();\n\t }\n\t // Template literals start with ` (U+0060) for template head\n\t // or } (U+007D) for template middle or template tail.\n\t if (cp === 0x60 || (cp === 0x7D && this.curlyStack[this.curlyStack.length - 1] === '${')) {\n\t return this.scanTemplate();\n\t }\n\t // Possible identifier start in a surrogate pair.\n\t if (cp >= 0xD800 && cp < 0xDFFF) {\n\t if (character_1.Character.isIdentifierStart(this.codePointAt(this.index))) {\n\t return this.scanIdentifier();\n\t }\n\t }\n\t return this.scanPunctuator();\n\t };\n\t return Scanner;\n\t}());\n\texports.Scanner = Scanner;\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.TokenName = {};\n\texports.TokenName[1 /* BooleanLiteral */] = 'Boolean';\n\texports.TokenName[2 /* EOF */] = '<end>';\n\texports.TokenName[3 /* Identifier */] = 'Identifier';\n\texports.TokenName[4 /* Keyword */] = 'Keyword';\n\texports.TokenName[5 /* NullLiteral */] = 'Null';\n\texports.TokenName[6 /* NumericLiteral */] = 'Numeric';\n\texports.TokenName[7 /* Punctuator */] = 'Punctuator';\n\texports.TokenName[8 /* StringLiteral */] = 'String';\n\texports.TokenName[9 /* RegularExpression */] = 'RegularExpression';\n\texports.TokenName[10 /* Template */] = 'Template';\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports) {\n\n\t\"use strict\";\n\t// Generated by generate-xhtml-entities.js. DO NOT MODIFY!\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\texports.XHTMLEntities = {\n\t quot: '\\u0022',\n\t amp: '\\u0026',\n\t apos: '\\u0027',\n\t gt: '\\u003E',\n\t nbsp: '\\u00A0',\n\t iexcl: '\\u00A1',\n\t cent: '\\u00A2',\n\t pound: '\\u00A3',\n\t curren: '\\u00A4',\n\t yen: '\\u00A5',\n\t brvbar: '\\u00A6',\n\t sect: '\\u00A7',\n\t uml: '\\u00A8',\n\t copy: '\\u00A9',\n\t ordf: '\\u00AA',\n\t laquo: '\\u00AB',\n\t not: '\\u00AC',\n\t shy: '\\u00AD',\n\t reg: '\\u00AE',\n\t macr: '\\u00AF',\n\t deg: '\\u00B0',\n\t plusmn: '\\u00B1',\n\t sup2: '\\u00B2',\n\t sup3: '\\u00B3',\n\t acute: '\\u00B4',\n\t micro: '\\u00B5',\n\t para: '\\u00B6',\n\t middot: '\\u00B7',\n\t cedil: '\\u00B8',\n\t sup1: '\\u00B9',\n\t ordm: '\\u00BA',\n\t raquo: '\\u00BB',\n\t frac14: '\\u00BC',\n\t frac12: '\\u00BD',\n\t frac34: '\\u00BE',\n\t iquest: '\\u00BF',\n\t Agrave: '\\u00C0',\n\t Aacute: '\\u00C1',\n\t Acirc: '\\u00C2',\n\t Atilde: '\\u00C3',\n\t Auml: '\\u00C4',\n\t Aring: '\\u00C5',\n\t AElig: '\\u00C6',\n\t Ccedil: '\\u00C7',\n\t Egrave: '\\u00C8',\n\t Eacute: '\\u00C9',\n\t Ecirc: '\\u00CA',\n\t Euml: '\\u00CB',\n\t Igrave: '\\u00CC',\n\t Iacute: '\\u00CD',\n\t Icirc: '\\u00CE',\n\t Iuml: '\\u00CF',\n\t ETH: '\\u00D0',\n\t Ntilde: '\\u00D1',\n\t Ograve: '\\u00D2',\n\t Oacute: '\\u00D3',\n\t Ocirc: '\\u00D4',\n\t Otilde: '\\u00D5',\n\t Ouml: '\\u00D6',\n\t times: '\\u00D7',\n\t Oslash: '\\u00D8',\n\t Ugrave: '\\u00D9',\n\t Uacute: '\\u00DA',\n\t Ucirc: '\\u00DB',\n\t Uuml: '\\u00DC',\n\t Yacute: '\\u00DD',\n\t THORN: '\\u00DE',\n\t szlig: '\\u00DF',\n\t agrave: '\\u00E0',\n\t aacute: '\\u00E1',\n\t acirc: '\\u00E2',\n\t atilde: '\\u00E3',\n\t auml: '\\u00E4',\n\t aring: '\\u00E5',\n\t aelig: '\\u00E6',\n\t ccedil: '\\u00E7',\n\t egrave: '\\u00E8',\n\t eacute: '\\u00E9',\n\t ecirc: '\\u00EA',\n\t euml: '\\u00EB',\n\t igrave: '\\u00EC',\n\t iacute: '\\u00ED',\n\t icirc: '\\u00EE',\n\t iuml: '\\u00EF',\n\t eth: '\\u00F0',\n\t ntilde: '\\u00F1',\n\t ograve: '\\u00F2',\n\t oacute: '\\u00F3',\n\t ocirc: '\\u00F4',\n\t otilde: '\\u00F5',\n\t ouml: '\\u00F6',\n\t divide: '\\u00F7',\n\t oslash: '\\u00F8',\n\t ugrave: '\\u00F9',\n\t uacute: '\\u00FA',\n\t ucirc: '\\u00FB',\n\t uuml: '\\u00FC',\n\t yacute: '\\u00FD',\n\t thorn: '\\u00FE',\n\t yuml: '\\u00FF',\n\t OElig: '\\u0152',\n\t oelig: '\\u0153',\n\t Scaron: '\\u0160',\n\t scaron: '\\u0161',\n\t Yuml: '\\u0178',\n\t fnof: '\\u0192',\n\t circ: '\\u02C6',\n\t tilde: '\\u02DC',\n\t Alpha: '\\u0391',\n\t Beta: '\\u0392',\n\t Gamma: '\\u0393',\n\t Delta: '\\u0394',\n\t Epsilon: '\\u0395',\n\t Zeta: '\\u0396',\n\t Eta: '\\u0397',\n\t Theta: '\\u0398',\n\t Iota: '\\u0399',\n\t Kappa: '\\u039A',\n\t Lambda: '\\u039B',\n\t Mu: '\\u039C',\n\t Nu: '\\u039D',\n\t Xi: '\\u039E',\n\t Omicron: '\\u039F',\n\t Pi: '\\u03A0',\n\t Rho: '\\u03A1',\n\t Sigma: '\\u03A3',\n\t Tau: '\\u03A4',\n\t Upsilon: '\\u03A5',\n\t Phi: '\\u03A6',\n\t Chi: '\\u03A7',\n\t Psi: '\\u03A8',\n\t Omega: '\\u03A9',\n\t alpha: '\\u03B1',\n\t beta: '\\u03B2',\n\t gamma: '\\u03B3',\n\t delta: '\\u03B4',\n\t epsilon: '\\u03B5',\n\t zeta: '\\u03B6',\n\t eta: '\\u03B7',\n\t theta: '\\u03B8',\n\t iota: '\\u03B9',\n\t kappa: '\\u03BA',\n\t lambda: '\\u03BB',\n\t mu: '\\u03BC',\n\t nu: '\\u03BD',\n\t xi: '\\u03BE',\n\t omicron: '\\u03BF',\n\t pi: '\\u03C0',\n\t rho: '\\u03C1',\n\t sigmaf: '\\u03C2',\n\t sigma: '\\u03C3',\n\t tau: '\\u03C4',\n\t upsilon: '\\u03C5',\n\t phi: '\\u03C6',\n\t chi: '\\u03C7',\n\t psi: '\\u03C8',\n\t omega: '\\u03C9',\n\t thetasym: '\\u03D1',\n\t upsih: '\\u03D2',\n\t piv: '\\u03D6',\n\t ensp: '\\u2002',\n\t emsp: '\\u2003',\n\t thinsp: '\\u2009',\n\t zwnj: '\\u200C',\n\t zwj: '\\u200D',\n\t lrm: '\\u200E',\n\t rlm: '\\u200F',\n\t ndash: '\\u2013',\n\t mdash: '\\u2014',\n\t lsquo: '\\u2018',\n\t rsquo: '\\u2019',\n\t sbquo: '\\u201A',\n\t ldquo: '\\u201C',\n\t rdquo: '\\u201D',\n\t bdquo: '\\u201E',\n\t dagger: '\\u2020',\n\t Dagger: '\\u2021',\n\t bull: '\\u2022',\n\t hellip: '\\u2026',\n\t permil: '\\u2030',\n\t prime: '\\u2032',\n\t Prime: '\\u2033',\n\t lsaquo: '\\u2039',\n\t rsaquo: '\\u203A',\n\t oline: '\\u203E',\n\t frasl: '\\u2044',\n\t euro: '\\u20AC',\n\t image: '\\u2111',\n\t weierp: '\\u2118',\n\t real: '\\u211C',\n\t trade: '\\u2122',\n\t alefsym: '\\u2135',\n\t larr: '\\u2190',\n\t uarr: '\\u2191',\n\t rarr: '\\u2192',\n\t darr: '\\u2193',\n\t harr: '\\u2194',\n\t crarr: '\\u21B5',\n\t lArr: '\\u21D0',\n\t uArr: '\\u21D1',\n\t rArr: '\\u21D2',\n\t dArr: '\\u21D3',\n\t hArr: '\\u21D4',\n\t forall: '\\u2200',\n\t part: '\\u2202',\n\t exist: '\\u2203',\n\t empty: '\\u2205',\n\t nabla: '\\u2207',\n\t isin: '\\u2208',\n\t notin: '\\u2209',\n\t ni: '\\u220B',\n\t prod: '\\u220F',\n\t sum: '\\u2211',\n\t minus: '\\u2212',\n\t lowast: '\\u2217',\n\t radic: '\\u221A',\n\t prop: '\\u221D',\n\t infin: '\\u221E',\n\t ang: '\\u2220',\n\t and: '\\u2227',\n\t or: '\\u2228',\n\t cap: '\\u2229',\n\t cup: '\\u222A',\n\t int: '\\u222B',\n\t there4: '\\u2234',\n\t sim: '\\u223C',\n\t cong: '\\u2245',\n\t asymp: '\\u2248',\n\t ne: '\\u2260',\n\t equiv: '\\u2261',\n\t le: '\\u2264',\n\t ge: '\\u2265',\n\t sub: '\\u2282',\n\t sup: '\\u2283',\n\t nsub: '\\u2284',\n\t sube: '\\u2286',\n\t supe: '\\u2287',\n\t oplus: '\\u2295',\n\t otimes: '\\u2297',\n\t perp: '\\u22A5',\n\t sdot: '\\u22C5',\n\t lceil: '\\u2308',\n\t rceil: '\\u2309',\n\t lfloor: '\\u230A',\n\t rfloor: '\\u230B',\n\t loz: '\\u25CA',\n\t spades: '\\u2660',\n\t clubs: '\\u2663',\n\t hearts: '\\u2665',\n\t diams: '\\u2666',\n\t lang: '\\u27E8',\n\t rang: '\\u27E9'\n\t};\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t\"use strict\";\n\tObject.defineProperty(exports, \"__esModule\", { value: true });\n\tvar error_handler_1 = __webpack_require__(10);\n\tvar scanner_1 = __webpack_require__(12);\n\tvar token_1 = __webpack_require__(13);\n\tvar Reader = (function () {\n\t function Reader() {\n\t this.values = [];\n\t this.curly = this.paren = -1;\n\t }\n\t // A function following one of those tokens is an expression.\n\t Reader.prototype.beforeFunctionExpression = function (t) {\n\t return ['(', '{', '[', 'in', 'typeof', 'instanceof', 'new',\n\t 'return', 'case', 'delete', 'throw', 'void',\n\t // assignment operators\n\t '=', '+=', '-=', '*=', '**=', '/=', '%=', '<<=', '>>=', '>>>=',\n\t '&=', '|=', '^=', ',',\n\t // binary/unary operators\n\t '+', '-', '*', '**', '/', '%', '++', '--', '<<', '>>', '>>>', '&',\n\t '|', '^', '!', '~', '&&', '||', '?', ':', '===', '==', '>=',\n\t '<=', '<', '>', '!=', '!=='].indexOf(t) >= 0;\n\t };\n\t // Determine if forward slash (/) is an operator or part of a regular expression\n\t // https://github.com/mozilla/sweet.js/wiki/design\n\t Reader.prototype.isRegexStart = function () {\n\t var previous = this.values[this.values.length - 1];\n\t var regex = (previous !== null);\n\t switch (previous) {\n\t case 'this':\n\t case ']':\n\t regex = false;\n\t break;\n\t case ')':\n\t var keyword = this.values[this.paren - 1];\n\t regex = (keyword === 'if' || keyword === 'while' || keyword === 'for' || keyword === 'with');\n\t break;\n\t case '}':\n\t // Dividing a function by anything makes little sense,\n\t // but we have to check for that.\n\t regex = false;\n\t if (this.values[this.curly - 3] === 'function') {\n\t // Anonymous function, e.g. function(){} /42\n\t var check = this.values[this.curly - 4];\n\t regex = check ? !this.beforeFunctionExpression(check) : false;\n\t }\n\t else if (this.values[this.curly - 4] === 'function') {\n\t // Named function, e.g. function f(){} /42/\n\t var check = this.values[this.curly - 5];\n\t regex = check ? !this.beforeFunctionExpression(check) : true;\n\t }\n\t break;\n\t default:\n\t break;\n\t }\n\t return regex;\n\t };\n\t Reader.prototype.push = function (token) {\n\t if (token.type === 7 /* Punctuator */ || token.type === 4 /* Keyword */) {\n\t if (token.value === '{') {\n\t this.curly = this.values.length;\n\t }\n\t else if (token.value === '(') {\n\t this.paren = this.values.length;\n\t }\n\t this.values.push(token.value);\n\t }\n\t else {\n\t this.values.push(null);\n\t }\n\t };\n\t return Reader;\n\t}());\n\tvar Tokenizer = (function () {\n\t function Tokenizer(code, config) {\n\t this.errorHandler = new error_handler_1.ErrorHandler();\n\t this.errorHandler.tolerant = config ? (typeof config.tolerant === 'boolean' && config.tolerant) : false;\n\t this.scanner = new scanner_1.Scanner(code, this.errorHandler);\n\t this.scanner.trackComment = config ? (typeof config.comment === 'boolean' && config.comment) : false;\n\t this.trackRange = config ? (typeof config.range === 'boolean' && config.range) : false;\n\t this.trackLoc = config ? (typeof config.loc === 'boolean' && config.loc) : false;\n\t this.buffer = [];\n\t this.reader = new Reader();\n\t }\n\t Tokenizer.prototype.errors = function () {\n\t return this.errorHandler.errors;\n\t };\n\t Tokenizer.prototype.getNextToken = function () {\n\t if (this.buffer.length === 0) {\n\t var comments = this.scanner.scanComments();\n\t if (this.scanner.trackComment) {\n\t for (var i = 0; i < comments.length; ++i) {\n\t var e = comments[i];\n\t var value = this.scanner.source.slice(e.slice[0], e.slice[1]);\n\t var comment = {\n\t type: e.multiLine ? 'BlockComment' : 'LineComment',\n\t value: value\n\t };\n\t if (this.trackRange) {\n\t comment.range = e.range;\n\t }\n\t if (this.trackLoc) {\n\t comment.loc = e.loc;\n\t }\n\t this.buffer.push(comment);\n\t }\n\t }\n\t if (!this.scanner.eof()) {\n\t var loc = void 0;\n\t if (this.trackLoc) {\n\t loc = {\n\t start: {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t },\n\t end: {}\n\t };\n\t }\n\t var startRegex = (this.scanner.source[this.scanner.index] === '/') && this.reader.isRegexStart();\n\t var token = startRegex ? this.scanner.scanRegExp() : this.scanner.lex();\n\t this.reader.push(token);\n\t var entry = {\n\t type: token_1.TokenName[token.type],\n\t value: this.scanner.source.slice(token.start, token.end)\n\t };\n\t if (this.trackRange) {\n\t entry.range = [token.start, token.end];\n\t }\n\t if (this.trackLoc) {\n\t loc.end = {\n\t line: this.scanner.lineNumber,\n\t column: this.scanner.index - this.scanner.lineStart\n\t };\n\t entry.loc = loc;\n\t }\n\t if (token.type === 9 /* RegularExpression */) {\n\t var pattern = token.pattern;\n\t var flags = token.flags;\n\t entry.regex = { pattern: pattern, flags: flags };\n\t }\n\t this.buffer.push(entry);\n\t }\n\t }\n\t return this.buffer.shift();\n\t };\n\t return Tokenizer;\n\t}());\n\texports.Tokenizer = Tokenizer;\n\n\n/***/ }\n/******/ ])\n});\n;","import { __, s__ } from '~/locale';\n\nexport const COMMENT_FORM = {\n GENERIC_UNSUBMITTABLE_NETWORK: __(\n 'Your comment could not be submitted! Please check your network connection and try again.',\n ),\n error: __('Comment could not be submitted: %{reason}.'),\n note: __('Note'),\n comment: __('Comment'),\n wiki: __('Wiki'),\n internalComment: __('Add internal note'),\n issue: __('issue'),\n startThread: __('Start thread'),\n startInternalThread: __('Start internal thread'),\n mergeRequest: __('merge request'),\n epic: __('epic'),\n bodyPlaceholder: __('Write a comment or drag your files here…'),\n bodyPlaceholderInternal: __('Write an internal note or drag your files here…'),\n internal: s__('Notes|Make this an internal note'),\n internalVisibility: s__(\n 'Notes|Internal notes are only visible to members with the role of Planner or higher',\n ),\n discussionThatNeedsResolution: __(\n 'Discuss a specific suggestion or question that needs to be resolved.',\n ),\n internalDiscussionThatNeedsResolution: __(\n 'Discuss a specific suggestion or question internally that needs to be resolved.',\n ),\n discussion: __('Discuss a specific suggestion or question.'),\n internalDiscussion: __('Discuss a specific suggestion or question internally.'),\n actionButtonWithNote: __('%{actionText} & %{openOrClose} %{noteable}'),\n actionButton: {\n withNote: {\n reopen: __('%{actionText} & reopen %{noteable}'),\n close: __('%{actionText} & close %{noteable}'),\n },\n withoutNote: {\n reopen: __('Reopen %{noteable}'),\n close: __('Close %{noteable}'),\n },\n },\n submitButton: {\n startThread: __('Start thread'),\n startInternalThread: __('Start internal thread'),\n comment: __('Comment'),\n internalComment: __('Add internal note'),\n commentHelp: __('Add a general comment to this %{noteableDisplayName}.'),\n internalCommentHelp: __('Add a confidential internal note to this %{noteableDisplayName}.'),\n },\n addToReviewButton: {\n saveThread: __('Add thread to review'),\n saveComment: __('Add comment to review'),\n },\n addToReview: __('Add to review'),\n startReview: __('Start review'),\n addCommentNow: __('Add comment now'),\n addThreadNow: __('Add thread now'),\n};\n\nexport const EDITED_TEXT = {\n actionWithAuthor: __('%{actionText} %{actionDetail} %{timeago} by %{author}'),\n actionWithoutAuthor: __('%{actionText} %{actionDetail}'),\n};\n\nexport const UPDATE_COMMENT_FORM = {\n error: __('Comment could not be updated: %{reason}.'),\n defaultError: __('Something went wrong while editing your comment. Please try again.'),\n};\n","// Constants used by table helpers\n\nconst FIELD_KEY_CELL_VARIANT = '_cellVariants';\nconst FIELD_KEY_ROW_VARIANT = '_rowVariant';\nconst FIELD_KEY_SHOW_DETAILS = '_showDetails';\n\n// Object of item keys that should be ignored for headers and\n// stringification and filter events\nconst IGNORED_FIELD_KEYS = [FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS].reduce((result, key) => ({\n ...result,\n [key]: true\n}), {});\n\n// Filter CSS selector for click/dblclick/etc. events\n// If any of these selectors match the clicked element, we ignore the event\nconst EVENT_FILTER = ['a', 'a *',\n// Include content inside links\n'button', 'button *',\n// Include content inside buttons\n'input:not(.disabled):not([disabled])', 'select:not(.disabled):not([disabled])', 'textarea:not(.disabled):not([disabled])', '[role=\"link\"]', '[role=\"link\"] *', '[role=\"button\"]', '[role=\"button\"] *', '[tabindex]:not(.disabled):not([disabled])'].join(',');\n\nexport { EVENT_FILTER, FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT, FIELD_KEY_SHOW_DETAILS, IGNORED_FIELD_KEYS };\n","var isArrayLikeObject = require('./isArrayLikeObject');\n\n/**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\nfunction castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n}\n\nmodule.exports = castArrayLikeObject;\n","export default function(update) {\n return new Array(update.length);\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._enter || this._groups.map(sparse), this._parents);\n}\n\nexport function EnterNode(parent, datum) {\n this.ownerDocument = parent.ownerDocument;\n this.namespaceURI = parent.namespaceURI;\n this._next = null;\n this._parent = parent;\n this.__data__ = datum;\n}\n\nEnterNode.prototype = {\n constructor: EnterNode,\n appendChild: function(child) { return this._parent.insertBefore(child, this._next); },\n insertBefore: function(child, next) { return this._parent.insertBefore(child, next); },\n querySelector: function(selector) { return this._parent.querySelector(selector); },\n querySelectorAll: function(selector) { return this._parent.querySelectorAll(selector); }\n};\n","import {Selection} from \"./index\";\nimport {EnterNode} from \"./enter\";\nimport constant from \"../constant\";\n\nvar keyPrefix = \"$\"; // Protect against keys like “__proto__”.\n\nfunction bindIndex(parent, group, enter, update, exit, data) {\n var i = 0,\n node,\n groupLength = group.length,\n dataLength = data.length;\n\n // Put any non-null nodes that fit into update.\n // Put any null nodes into enter.\n // Put any remaining data into enter.\n for (; i < dataLength; ++i) {\n if (node = group[i]) {\n node.__data__ = data[i];\n update[i] = node;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Put any non-null nodes that don’t fit into exit.\n for (; i < groupLength; ++i) {\n if (node = group[i]) {\n exit[i] = node;\n }\n }\n}\n\nfunction bindKey(parent, group, enter, update, exit, data, key) {\n var i,\n node,\n nodeByKeyValue = {},\n groupLength = group.length,\n dataLength = data.length,\n keyValues = new Array(groupLength),\n keyValue;\n\n // Compute the key for each node.\n // If multiple nodes have the same key, the duplicates are added to exit.\n for (i = 0; i < groupLength; ++i) {\n if (node = group[i]) {\n keyValues[i] = keyValue = keyPrefix + key.call(node, node.__data__, i, group);\n if (keyValue in nodeByKeyValue) {\n exit[i] = node;\n } else {\n nodeByKeyValue[keyValue] = node;\n }\n }\n }\n\n // Compute the key for each datum.\n // If there a node associated with this key, join and add it to update.\n // If there is not (or the key is a duplicate), add it to enter.\n for (i = 0; i < dataLength; ++i) {\n keyValue = keyPrefix + key.call(parent, data[i], i, data);\n if (node = nodeByKeyValue[keyValue]) {\n update[i] = node;\n node.__data__ = data[i];\n nodeByKeyValue[keyValue] = null;\n } else {\n enter[i] = new EnterNode(parent, data[i]);\n }\n }\n\n // Add any remaining nodes that were not bound to data to exit.\n for (i = 0; i < groupLength; ++i) {\n if ((node = group[i]) && (nodeByKeyValue[keyValues[i]] === node)) {\n exit[i] = node;\n }\n }\n}\n\nexport default function(value, key) {\n if (!value) {\n data = new Array(this.size()), j = -1;\n this.each(function(d) { data[++j] = d; });\n return data;\n }\n\n var bind = key ? bindKey : bindIndex,\n parents = this._parents,\n groups = this._groups;\n\n if (typeof value !== \"function\") value = constant(value);\n\n for (var m = groups.length, update = new Array(m), enter = new Array(m), exit = new Array(m), j = 0; j < m; ++j) {\n var parent = parents[j],\n group = groups[j],\n groupLength = group.length,\n data = value.call(parent, parent && parent.__data__, j, parents),\n dataLength = data.length,\n enterGroup = enter[j] = new Array(dataLength),\n updateGroup = update[j] = new Array(dataLength),\n exitGroup = exit[j] = new Array(groupLength);\n\n bind(parent, group, enterGroup, updateGroup, exitGroup, data, key);\n\n // Now connect the enter nodes to their following update node, such that\n // appendChild can insert the materialized enter node before this node,\n // rather than at the end of the parent node.\n for (var i0 = 0, i1 = 0, previous, next; i0 < dataLength; ++i0) {\n if (previous = enterGroup[i0]) {\n if (i0 >= i1) i1 = i0 + 1;\n while (!(next = updateGroup[i1]) && ++i1 < dataLength);\n previous._next = next || null;\n }\n }\n }\n\n update = new Selection(update, parents);\n update._enter = enter;\n update._exit = exit;\n return update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(compare) {\n if (!compare) compare = ascending;\n\n function compareNode(a, b) {\n return a && b ? compare(a.__data__, b.__data__) : !a - !b;\n }\n\n for (var groups = this._groups, m = groups.length, sortgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, sortgroup = sortgroups[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n sortgroup[i] = node;\n }\n }\n sortgroup.sort(compareNode);\n }\n\n return new Selection(sortgroups, this._parents).order();\n}\n\nfunction ascending(a, b) {\n return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;\n}\n","export default function() {\n var callback = arguments[0];\n arguments[0] = this;\n callback.apply(null, arguments);\n return this;\n}\n","import namespace from \"../namespace\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, value) {\n return function() {\n this.setAttribute(name, value);\n };\n}\n\nfunction attrConstantNS(fullname, value) {\n return function() {\n this.setAttributeNS(fullname.space, fullname.local, value);\n };\n}\n\nfunction attrFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttribute(name);\n else this.setAttribute(name, v);\n };\n}\n\nfunction attrFunctionNS(fullname, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) this.removeAttributeNS(fullname.space, fullname.local);\n else this.setAttributeNS(fullname.space, fullname.local, v);\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name);\n\n if (arguments.length < 2) {\n var node = this.node();\n return fullname.local\n ? node.getAttributeNS(fullname.space, fullname.local)\n : node.getAttribute(fullname);\n }\n\n return this.each((value == null\n ? (fullname.local ? attrRemoveNS : attrRemove) : (typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)\n : (fullname.local ? attrConstantNS : attrConstant)))(fullname, value));\n}\n","function propertyRemove(name) {\n return function() {\n delete this[name];\n };\n}\n\nfunction propertyConstant(name, value) {\n return function() {\n this[name] = value;\n };\n}\n\nfunction propertyFunction(name, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (v == null) delete this[name];\n else this[name] = v;\n };\n}\n\nexport default function(name, value) {\n return arguments.length > 1\n ? this.each((value == null\n ? propertyRemove : typeof value === \"function\"\n ? propertyFunction\n : propertyConstant)(name, value))\n : this.node()[name];\n}\n","function classArray(string) {\n return string.trim().split(/^|\\s+/);\n}\n\nfunction classList(node) {\n return node.classList || new ClassList(node);\n}\n\nfunction ClassList(node) {\n this._node = node;\n this._names = classArray(node.getAttribute(\"class\") || \"\");\n}\n\nClassList.prototype = {\n add: function(name) {\n var i = this._names.indexOf(name);\n if (i < 0) {\n this._names.push(name);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n remove: function(name) {\n var i = this._names.indexOf(name);\n if (i >= 0) {\n this._names.splice(i, 1);\n this._node.setAttribute(\"class\", this._names.join(\" \"));\n }\n },\n contains: function(name) {\n return this._names.indexOf(name) >= 0;\n }\n};\n\nfunction classedAdd(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.add(names[i]);\n}\n\nfunction classedRemove(node, names) {\n var list = classList(node), i = -1, n = names.length;\n while (++i < n) list.remove(names[i]);\n}\n\nfunction classedTrue(names) {\n return function() {\n classedAdd(this, names);\n };\n}\n\nfunction classedFalse(names) {\n return function() {\n classedRemove(this, names);\n };\n}\n\nfunction classedFunction(names, value) {\n return function() {\n (value.apply(this, arguments) ? classedAdd : classedRemove)(this, names);\n };\n}\n\nexport default function(name, value) {\n var names = classArray(name + \"\");\n\n if (arguments.length < 2) {\n var list = classList(this.node()), i = -1, n = names.length;\n while (++i < n) if (!list.contains(names[i])) return false;\n return true;\n }\n\n return this.each((typeof value === \"function\"\n ? classedFunction : value\n ? classedTrue\n : classedFalse)(names, value));\n}\n","function textRemove() {\n this.textContent = \"\";\n}\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.textContent = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? textRemove : (typeof value === \"function\"\n ? textFunction\n : textConstant)(value))\n : this.node().textContent;\n}\n","function htmlRemove() {\n this.innerHTML = \"\";\n}\n\nfunction htmlConstant(value) {\n return function() {\n this.innerHTML = value;\n };\n}\n\nfunction htmlFunction(value) {\n return function() {\n var v = value.apply(this, arguments);\n this.innerHTML = v == null ? \"\" : v;\n };\n}\n\nexport default function(value) {\n return arguments.length\n ? this.each(value == null\n ? htmlRemove : (typeof value === \"function\"\n ? htmlFunction\n : htmlConstant)(value))\n : this.node().innerHTML;\n}\n","function raise() {\n if (this.nextSibling) this.parentNode.appendChild(this);\n}\n\nexport default function() {\n return this.each(raise);\n}\n","function lower() {\n if (this.previousSibling) this.parentNode.insertBefore(this, this.parentNode.firstChild);\n}\n\nexport default function() {\n return this.each(lower);\n}\n","import namespace from \"./namespace\";\nimport {xhtml} from \"./namespaces\";\n\nfunction creatorInherit(name) {\n return function() {\n var document = this.ownerDocument,\n uri = this.namespaceURI;\n return uri === xhtml && document.documentElement.namespaceURI === xhtml\n ? document.createElement(name)\n : document.createElementNS(uri, name);\n };\n}\n\nfunction creatorFixed(fullname) {\n return function() {\n return this.ownerDocument.createElementNS(fullname.space, fullname.local);\n };\n}\n\nexport default function(name) {\n var fullname = namespace(name);\n return (fullname.local\n ? creatorFixed\n : creatorInherit)(fullname);\n}\n","import creator from \"../creator\";\nimport selector from \"../selector\";\n\nfunction constantNull() {\n return null;\n}\n\nexport default function(name, before) {\n var create = typeof name === \"function\" ? name : creator(name),\n select = before == null ? constantNull : typeof before === \"function\" ? before : selector(before);\n return this.select(function() {\n return this.insertBefore(create.apply(this, arguments), select.apply(this, arguments) || null);\n });\n}\n","function remove() {\n var parent = this.parentNode;\n if (parent) parent.removeChild(this);\n}\n\nexport default function() {\n return this.each(remove);\n}\n","function selection_cloneShallow() {\n var clone = this.cloneNode(false), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nfunction selection_cloneDeep() {\n var clone = this.cloneNode(true), parent = this.parentNode;\n return parent ? parent.insertBefore(clone, this.nextSibling) : clone;\n}\n\nexport default function(deep) {\n return this.select(deep ? selection_cloneDeep : selection_cloneShallow);\n}\n","import defaultView from \"../window\";\n\nfunction dispatchEvent(node, type, params) {\n var window = defaultView(node),\n event = window.CustomEvent;\n\n if (typeof event === \"function\") {\n event = new event(type, params);\n } else {\n event = window.document.createEvent(\"Event\");\n if (params) event.initEvent(type, params.bubbles, params.cancelable), event.detail = params.detail;\n else event.initEvent(type, false, false);\n }\n\n node.dispatchEvent(event);\n}\n\nfunction dispatchConstant(type, params) {\n return function() {\n return dispatchEvent(this, type, params);\n };\n}\n\nfunction dispatchFunction(type, params) {\n return function() {\n return dispatchEvent(this, type, params.apply(this, arguments));\n };\n}\n\nexport default function(type, params) {\n return this.each((typeof params === \"function\"\n ? dispatchFunction\n : dispatchConstant)(type, params));\n}\n","import selection_select from \"./select\";\nimport selection_selectAll from \"./selectAll\";\nimport selection_filter from \"./filter\";\nimport selection_data from \"./data\";\nimport selection_enter from \"./enter\";\nimport selection_exit from \"./exit\";\nimport selection_join from \"./join\";\nimport selection_merge from \"./merge\";\nimport selection_order from \"./order\";\nimport selection_sort from \"./sort\";\nimport selection_call from \"./call\";\nimport selection_nodes from \"./nodes\";\nimport selection_node from \"./node\";\nimport selection_size from \"./size\";\nimport selection_empty from \"./empty\";\nimport selection_each from \"./each\";\nimport selection_attr from \"./attr\";\nimport selection_style from \"./style\";\nimport selection_property from \"./property\";\nimport selection_classed from \"./classed\";\nimport selection_text from \"./text\";\nimport selection_html from \"./html\";\nimport selection_raise from \"./raise\";\nimport selection_lower from \"./lower\";\nimport selection_append from \"./append\";\nimport selection_insert from \"./insert\";\nimport selection_remove from \"./remove\";\nimport selection_clone from \"./clone\";\nimport selection_datum from \"./datum\";\nimport selection_on from \"./on\";\nimport selection_dispatch from \"./dispatch\";\n\nexport var root = [null];\n\nexport function Selection(groups, parents) {\n this._groups = groups;\n this._parents = parents;\n}\n\nfunction selection() {\n return new Selection([[document.documentElement]], root);\n}\n\nSelection.prototype = selection.prototype = {\n constructor: Selection,\n select: selection_select,\n selectAll: selection_selectAll,\n filter: selection_filter,\n data: selection_data,\n enter: selection_enter,\n exit: selection_exit,\n join: selection_join,\n merge: selection_merge,\n order: selection_order,\n sort: selection_sort,\n call: selection_call,\n nodes: selection_nodes,\n node: selection_node,\n size: selection_size,\n empty: selection_empty,\n each: selection_each,\n attr: selection_attr,\n style: selection_style,\n property: selection_property,\n classed: selection_classed,\n text: selection_text,\n html: selection_html,\n raise: selection_raise,\n lower: selection_lower,\n append: selection_append,\n insert: selection_insert,\n remove: selection_remove,\n clone: selection_clone,\n datum: selection_datum,\n on: selection_on,\n dispatch: selection_dispatch\n};\n\nexport default selection;\n","import {Selection} from \"./index\";\nimport selector from \"../selector\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","import {Selection} from \"./index\";\nimport selectorAll from \"../selectorAll\";\n\nexport default function(select) {\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n subgroups.push(select.call(node, node.__data__, i, group));\n parents.push(node);\n }\n }\n }\n\n return new Selection(subgroups, parents);\n}\n","import {Selection} from \"./index\";\nimport matcher from \"../matcher\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Selection(subgroups, this._parents);\n}\n","export default function(x) {\n return function() {\n return x;\n };\n}\n","import sparse from \"./sparse\";\nimport {Selection} from \"./index\";\n\nexport default function() {\n return new Selection(this._exit || this._groups.map(sparse), this._parents);\n}\n","export default function(onenter, onupdate, onexit) {\n var enter = this.enter(), update = this, exit = this.exit();\n enter = typeof onenter === \"function\" ? onenter(enter) : enter.append(onenter + \"\");\n if (onupdate != null) update = onupdate(update);\n if (onexit == null) exit.remove(); else onexit(exit);\n return enter && update ? enter.merge(update).order() : update;\n}\n","import {Selection} from \"./index\";\n\nexport default function(selection) {\n\n for (var groups0 = this._groups, groups1 = selection._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Selection(merges, this._parents);\n}\n","export default function() {\n\n for (var groups = this._groups, j = -1, m = groups.length; ++j < m;) {\n for (var group = groups[j], i = group.length - 1, next = group[i], node; --i >= 0;) {\n if (node = group[i]) {\n if (next && node.compareDocumentPosition(next) ^ 4) next.parentNode.insertBefore(node, next);\n next = node;\n }\n }\n }\n\n return this;\n}\n","export default function() {\n var nodes = new Array(this.size()), i = -1;\n this.each(function() { nodes[++i] = this; });\n return nodes;\n}\n","export default function() {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length; i < n; ++i) {\n var node = group[i];\n if (node) return node;\n }\n }\n\n return null;\n}\n","export default function() {\n var size = 0;\n this.each(function() { ++size; });\n return size;\n}\n","export default function() {\n return !this.node();\n}\n","export default function(callback) {\n\n for (var groups = this._groups, j = 0, m = groups.length; j < m; ++j) {\n for (var group = groups[j], i = 0, n = group.length, node; i < n; ++i) {\n if (node = group[i]) callback.call(node, node.__data__, i, group);\n }\n }\n\n return this;\n}\n","import creator from \"../creator\";\n\nexport default function(name) {\n var create = typeof name === \"function\" ? name : creator(name);\n return this.select(function() {\n return this.appendChild(create.apply(this, arguments));\n });\n}\n","export default function(value) {\n return arguments.length\n ? this.property(\"__data__\", value)\n : this.node().__data__;\n}\n","import { extend } from '../../../vue';\nimport { SLOT_NAME_TABLE_COLGROUP } from '../../../constants/slots';\n\n// --- Props ---\n\nconst props = {};\n\n// --- Mixin ---\n\n// @vue/component\nconst colgroupMixin = extend({\n methods: {\n renderColgroup() {\n const {\n computedFields: fields\n } = this;\n const h = this.$createElement;\n let $colgroup = h();\n if (this.hasNormalizedSlot(SLOT_NAME_TABLE_COLGROUP)) {\n $colgroup = h('colgroup', {\n key: 'colgroup'\n }, [this.normalizeSlot(SLOT_NAME_TABLE_COLGROUP, {\n columns: fields.length,\n fields\n })]);\n }\n return $colgroup;\n }\n }\n});\n\nexport { colgroupMixin, props };\n","import { formatNumber, sprintf, __ } from '~/locale';\nimport { BYTES_IN_KIB, THOUSAND, MILLION } from './constants';\n\n/**\n * Utility function that calculates KiB of the given bytes.\n *\n * @param {Number} number bytes\n * @return {Number} KiB\n */\nexport function bytesToKiB(number) {\n return number / BYTES_IN_KIB;\n}\n\n/**\n * Utility function that calculates MiB of the given bytes.\n *\n * @param {Number} number bytes\n * @return {Number} MiB\n */\nexport function bytesToMiB(number) {\n return number / (BYTES_IN_KIB * BYTES_IN_KIB);\n}\n\n/**\n * Utility function that calculates GiB of the given bytes.\n * @param {Number} number\n * @returns {Number}\n */\nexport function bytesToGiB(number) {\n return number / (BYTES_IN_KIB * BYTES_IN_KIB * BYTES_IN_KIB);\n}\n\n/**\n * Formats the bytes in number into a more understandable\n * representation. Returns an array with the first value being the human size\n * and the second value being the label (e.g., [1.5, 'KiB']).\n *\n * @param {number} size\n * @param {number} [digits=2] - The number of digits to appear after the decimal point\n * @param {string} locale\n * @returns {string[]}\n */\nexport function numberToHumanSizeSplit({ size, digits = 2, locale } = {}) {\n const abs = Math.abs(size);\n const digitsOptions = { minimumFractionDigits: digits, maximumFractionDigits: digits };\n const formatNumberWithLocaleAndDigits = (n) => formatNumber(n, digitsOptions, locale);\n\n if (abs < BYTES_IN_KIB) {\n return [size.toString(), __('B')];\n }\n if (abs < BYTES_IN_KIB ** 2) {\n return [formatNumberWithLocaleAndDigits(bytesToKiB(size)), __('KiB')];\n }\n if (abs < BYTES_IN_KIB ** 3) {\n return [formatNumberWithLocaleAndDigits(bytesToMiB(size)), __('MiB')];\n }\n return [formatNumberWithLocaleAndDigits(bytesToGiB(size)), __('GiB')];\n}\n\n/**\n * Port of rails number_to_human_size\n * Formats the bytes in number into a more understandable\n * representation (e.g., giving it 1536 yields 1.5 KiB).\n *\n * @param {number} size\n * @param {number} [digits=2] - The number of digits to appear after the decimal point\n * @param {string} locale\n * @returns {string}\n */\nexport function numberToHumanSize(size, digits = 2, locale) {\n const [humanSize, label] = numberToHumanSizeSplit({ size, digits, locale });\n\n switch (label) {\n case __('B'):\n return sprintf(__('%{size} B'), { size: humanSize });\n case __('KiB'):\n return sprintf(__('%{size} KiB'), { size: humanSize });\n case __('MiB'):\n return sprintf(__('%{size} MiB'), { size: humanSize });\n case __('GiB'):\n return sprintf(__('%{size} GiB'), { size: humanSize });\n default:\n return '';\n }\n}\n\n/**\n * Converts a number to kilos or megas.\n *\n * For example:\n * - 123 becomes 123\n * - 123456 becomes 123.4k\n * - 123456789 becomes 123.4m\n *\n * @param number Number to format\n * @param digits The number of digits to appear after the decimal point\n * @param uppercase Whether to use uppercase suffix (K, M)\n * @return {string} Formatted number\n */\nexport function numberToMetricPrefix(number, uppercase = false) {\n if (number < THOUSAND) {\n return number.toString();\n }\n const digits = 1;\n if (number < MILLION) {\n return `${Number((number / THOUSAND).toFixed(digits))}${uppercase ? 'K' : 'k'}`;\n }\n return `${Number((number / MILLION).toFixed(digits))}${uppercase ? 'M' : 'm'}`;\n}\n/**\n * A simple method that returns the value of a + b\n * It seems unessesary, but when combined with a reducer it\n * adds up all the values in an array.\n *\n * e.g. `[1, 2, 3, 4, 5].reduce(sum) // => 15`\n *\n * @param {Float} a\n * @param {Float} b\n * @example\n * // return 15\n * [1, 2, 3, 4, 5].reduce(sum);\n *\n * // returns 6\n * Object.values([{a: 1, b: 2, c: 3].reduce(sum);\n * @returns {Float} The summed value\n */\nexport const sum = (a = 0, b = 0) => a + b;\n\n/**\n * Checks if the provided number is odd\n * @param {Int} number\n */\nexport const isOdd = (number = 0) => number % 2;\n\n/**\n * Computes the median for a given array.\n * @param {Array} arr An array of numbers\n * @returns {Number} The median of the given array\n */\nexport const median = (arr) => {\n const middle = Math.floor(arr.length / 2);\n const sorted = arr.sort((a, b) => a - b);\n return arr.length % 2 !== 0 ? sorted[middle] : (sorted[middle - 1] + sorted[middle]) / 2;\n};\n\n/**\n * Computes the change from one value to the other as a percentage.\n * @param {Number} firstY\n * @param {Number} lastY\n * @returns {Number}\n */\nexport const changeInPercent = (firstY, lastY) => {\n if (firstY === lastY) {\n return 0;\n }\n\n return Math.round(((lastY - firstY) / Math.abs(firstY)) * 100);\n};\n\n/**\n * Computes and formats the change from one value to the other as a percentage.\n * Prepends the computed percentage with either \"+\" or \"-\" to indicate an in- or decrease and\n * returns a given string if the result is not finite (for example, if the first value is \"0\").\n * @param firstY\n * @param lastY\n * @param nonFiniteResult\n * @returns {String}\n */\nexport const formattedChangeInPercent = (firstY, lastY, { nonFiniteResult = '-' } = {}) => {\n const change = changeInPercent(firstY, lastY);\n\n if (!Number.isFinite(change)) {\n return nonFiniteResult;\n }\n\n return `${change >= 0 ? '+' : ''}${change}%`;\n};\n\n/**\n * Checks whether a value is numerical in nature by converting it using parseInt\n *\n * Example outcomes:\n * - isNumeric(100) = true\n * - isNumeric('100') = true\n * - isNumeric(1.0) = true\n * - isNumeric('1.0') = true\n * - isNumeric('abc100') = false\n * - isNumeric('abc') = false\n * - isNumeric(true) = false\n * - isNumeric(undefined) = false\n * - isNumeric(null) = false\n *\n * @param value\n * @returns {boolean}\n */\nexport const isNumeric = (value) => {\n return !Number.isNaN(parseInt(value, 10));\n};\n\nconst numberRegex = /^[0-9]+$/;\n\n/**\n * Checks whether the value is a positive number or 0, or a string with equivalent value\n *\n * @param value\n * @return {boolean}\n */\nexport const isPositiveInteger = (value) => numberRegex.test(value);\n\n/**\n * Splits a number into an integer and decimal component\n * returns an object with the integer and decimal values extracted\n *\n * @param value\n * @return {Object}\n */\nexport const splitDecimalNumber = (value) => {\n if (isNumeric(value)) {\n const parts = String(value).split('.');\n if (value === 0) return { integer: '0', decimal: '0' };\n\n if (parts.length) {\n return parts.length > 1\n ? { integer: parts[0], decimal: parts[1] }\n : { integer: parts[0], decimal: null };\n }\n }\n return { integer: null, decimal: null };\n};\n\n/**\n * Calculates the number of digits after the decimal place\n *\n * @param num - any numeric value\n * @return number of digits after the decimal (if any)\n */\nexport const countFloatingPointDigits = (num = null) => {\n if (!num || !isNumeric(num)) return 0;\n\n const { decimal } = splitDecimalNumber(num);\n return String(decimal).length;\n};\n","var baseToString = require('./_baseToString'),\n castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n isObject = require('./isObject'),\n isRegExp = require('./isRegExp'),\n stringSize = require('./_stringSize'),\n stringToArray = require('./_stringToArray'),\n toInteger = require('./toInteger'),\n toString = require('./toString');\n\n/** Used as default options for `_.truncate`. */\nvar DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Truncates `string` if it's longer than the given maximum string length.\n * The last characters of the truncated string are replaced with the omission\n * string which defaults to \"...\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to truncate.\n * @param {Object} [options={}] The options object.\n * @param {number} [options.length=30] The maximum string length.\n * @param {string} [options.omission='...'] The string to indicate text is omitted.\n * @param {RegExp|string} [options.separator] The separator pattern to truncate to.\n * @returns {string} Returns the truncated string.\n * @example\n *\n * _.truncate('hi-diddly-ho there, neighborino');\n * // => 'hi-diddly-ho there, neighbo...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': ' '\n * });\n * // => 'hi-diddly-ho there,...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'length': 24,\n * 'separator': /,? +/\n * });\n * // => 'hi-diddly-ho there...'\n *\n * _.truncate('hi-diddly-ho there, neighborino', {\n * 'omission': ' [...]'\n * });\n * // => 'hi-diddly-ho there, neig [...]'\n */\nfunction truncate(string, options) {\n var length = DEFAULT_TRUNC_LENGTH,\n omission = DEFAULT_TRUNC_OMISSION;\n\n if (isObject(options)) {\n var separator = 'separator' in options ? options.separator : separator;\n length = 'length' in options ? toInteger(options.length) : length;\n omission = 'omission' in options ? baseToString(options.omission) : omission;\n }\n string = toString(string);\n\n var strLength = string.length;\n if (hasUnicode(string)) {\n var strSymbols = stringToArray(string);\n strLength = strSymbols.length;\n }\n if (length >= strLength) {\n return string;\n }\n var end = length - stringSize(omission);\n if (end < 1) {\n return omission;\n }\n var result = strSymbols\n ? castSlice(strSymbols, 0, end).join('')\n : string.slice(0, end);\n\n if (separator === undefined) {\n return result + omission;\n }\n if (strSymbols) {\n end += (result.length - end);\n }\n if (isRegExp(separator)) {\n if (string.slice(end).search(separator)) {\n var match,\n substring = result;\n\n if (!separator.global) {\n separator = RegExp(separator.source, toString(reFlags.exec(separator)) + 'g');\n }\n separator.lastIndex = 0;\n while ((match = separator.exec(substring))) {\n var newEnd = match.index;\n }\n result = result.slice(0, newEnd === undefined ? end : newEnd);\n }\n } else if (string.indexOf(baseToString(separator), end) != end) {\n var index = result.lastIndexOf(separator);\n if (index > -1) {\n result = result.slice(0, index);\n }\n }\n return result + omission;\n}\n\nmodule.exports = truncate;\n","const createLoadedImage = (imageSrc) => new Promise((resolve) => {\n const image = document.createElement(\"img\");\n image.addEventListener(\"load\", () => resolve(image), { once: true });\n image.src = imageSrc;\n});\nconst makeReactive = (object) => {\n const reactiveObject = {};\n Object.keys(object).forEach((key) => {\n Object.defineProperty(reactiveObject, key, {\n get() {\n return object[key];\n },\n set(value) {\n if (value == object[key]) {\n return;\n }\n requestAnimationFrame(FaviconOverlayManager.render);\n return (object[key] = value);\n },\n });\n });\n return reactiveObject;\n};\nclass FaviconOverlay {\n constructor(image) {\n this._position = makeReactive({\n x: 0,\n y: 0,\n centered: false,\n });\n this.image = image;\n }\n get position() {\n return this._position;\n }\n set position(value) {\n Object.assign(this._position, value);\n }\n}\nexport class FaviconOverlayManager {\n constructor(image) {\n this.image = image;\n throw new Error(\"THIS BLOWS UP! DONT DO IT!\");\n }\n static setFaviconOverlay(imageUrl) {\n return createLoadedImage(imageUrl).then((overlayImage) => {\n FaviconOverlayManager.overlays = [new FaviconOverlay(overlayImage)];\n requestAnimationFrame(FaviconOverlayManager.render);\n });\n }\n static resetFaviconOverlay() {\n FaviconOverlayManager.overlays = [];\n requestAnimationFrame(FaviconOverlayManager.render);\n }\n static get isInitialized() {\n return Boolean(FaviconOverlayManager.canvas);\n }\n static get faviconUrl() {\n const { faviconElement } = FaviconOverlayManager;\n const url = faviconElement.dataset.originalHref;\n if (url) {\n return url;\n }\n return (faviconElement.dataset.originalHref = faviconElement.href);\n }\n static getOverlay(idx) {\n return FaviconOverlayManager.overlays[idx];\n }\n static initialize({ faviconSelector = 'link[rel=\"icon\"]', } = {}) {\n if (FaviconOverlayManager.isInitialized) {\n return Promise.resolve();\n }\n FaviconOverlayManager.canvas = document.createElement(\"canvas\");\n FaviconOverlayManager.faviconElement = document.querySelector(faviconSelector);\n return createLoadedImage(FaviconOverlayManager.faviconUrl).then((image) => {\n FaviconOverlayManager.canvas.width = image.width;\n FaviconOverlayManager.canvas.height = image.height;\n FaviconOverlayManager.faviconImage = image;\n });\n }\n static render() {\n const { overlays, faviconImage, faviconElement, canvas, } = FaviconOverlayManager;\n if (!overlays.length) {\n faviconElement.href = faviconElement.dataset.originalHref;\n return;\n }\n const context = canvas.getContext(\"2d\");\n context.clearRect(0, 0, faviconImage.width, faviconImage.height);\n context.drawImage(faviconImage, 0, 0, faviconImage.width, faviconImage.height, 0, 0, faviconImage.width, faviconImage.height);\n overlays.forEach((overlay) => {\n let { x, y } = overlay.position;\n if (overlay.position.centered) {\n x -= overlay.image.width / 2;\n y -= overlay.image.height / 2;\n }\n context.drawImage(overlay.image, 0, 0, overlay.image.width, overlay.image.height, x, y, overlay.image.width, overlay.image.height);\n });\n faviconElement.href = canvas.toDataURL();\n }\n}\nFaviconOverlayManager.canvas = null;\nFaviconOverlayManager.faviconElement = null;\nFaviconOverlayManager.faviconImage = null;\nFaviconOverlayManager.overlays = [];\n","import { FaviconOverlayManager } from '@gitlab/favicon-overlay';\nimport { memoize } from 'lodash';\n\n// FaviconOverlayManager is a glorious singleton/static class. Let's start to encapsulate that with this helper.\nconst getDefaultFaviconManager = memoize(async () => {\n await FaviconOverlayManager.initialize({ faviconSelector: '#favicon' });\n\n return FaviconOverlayManager;\n});\n\nexport const setFaviconOverlay = async (path) => {\n const manager = await getDefaultFaviconManager();\n\n manager.setFaviconOverlay(path);\n};\n\nexport const resetFavicon = async () => {\n const manager = await getDefaultFaviconManager();\n\n manager.resetFaviconOverlay();\n};\n\n/**\n * Clears the cached memoization of the default manager.\n *\n * This is needed for determinism in tests.\n */\nexport const clearMemoizeCache = () => {\n getDefaultFaviconManager.cache.clear();\n};\n","import { marked } from 'marked';\nimport markedBidi from 'marked-bidi';\nimport { sanitize } from '~/lib/dompurify';\nimport { markdownConfig } from '~/lib/utils/text_utility';\nimport { HTTP_STATUS_UNPROCESSABLE_ENTITY } from '~/lib/utils/http_status';\nimport { sprintf } from '~/locale';\nimport { UPDATE_COMMENT_FORM, COMMENT_FORM } from './i18n';\n\n/**\n * Tracks snowplow event when User toggles timeline view\n * @param {Boolean} enabled that will be send as a property for the event\n */\nexport const trackToggleTimelineView = (enabled) => ({\n category: 'Incident Management', // eslint-disable-line @gitlab/require-i18n-strings\n action: 'toggle_incident_comments_into_timeline_view',\n label: 'Status', // eslint-disable-line @gitlab/require-i18n-strings\n property: enabled,\n});\n\nmarked.use(markedBidi());\n\nexport const renderMarkdown = (rawMarkdown) => {\n return sanitize(marked(rawMarkdown), markdownConfig);\n};\n\nexport const createNoteErrorMessages = (data, status) => {\n const errors = data?.errors;\n\n if (status === HTTP_STATUS_UNPROCESSABLE_ENTITY) {\n if (data.quick_actions_status?.error_messages?.length) {\n return data.quick_actions_status.error_messages;\n }\n\n if (errors) {\n return [sprintf(COMMENT_FORM.error, { reason: errors.toLowerCase() }, false)];\n }\n }\n\n return [COMMENT_FORM.GENERIC_UNSUBMITTABLE_NETWORK];\n};\n\nexport const updateNoteErrorMessage = (e) => {\n const errors = e?.response?.data?.errors;\n\n if (errors) {\n return sprintf(UPDATE_COMMENT_FORM.error, { reason: errors.toLowerCase() }, false);\n }\n\n return UPDATE_COMMENT_FORM.defaultError;\n};\n\nexport const isSlashCommand = (message) => {\n const trimmedMessage = message\n ?.split('\\n')\n .filter((line) => line.trim() !== '')\n .join('\\n');\n return trimmedMessage?.startsWith('/') || false;\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadyToMergeMergeRequest\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detailedMergeStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"autoMergeEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"shouldRemoveSourceBranch\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"forceRemoveSourceBranch\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"defaultMergeCommitMessage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"defaultSquashCommitMessage\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"squash\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"squashOnMerge\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"availableAutoMergeStrategies\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasCi\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeable\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeWhenPipelineSucceeds\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"commitCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"diffHeadSha\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canMerge\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"removeSourceBranch\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"updateMergeRequest\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetBranch\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeError\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"commitsWithoutMergeCommits\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sha\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"shortId\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"headPipeline\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"path\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"active\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":624}};\n doc.loc.source = {\"body\":\"fragment ReadyToMergeMergeRequest on MergeRequest {\\n id\\n detailedMergeStatus\\n autoMergeEnabled\\n shouldRemoveSourceBranch\\n forceRemoveSourceBranch\\n defaultMergeCommitMessage\\n defaultSquashCommitMessage\\n squash\\n squashOnMerge\\n availableAutoMergeStrategies\\n hasCi\\n mergeable\\n mergeWhenPipelineSucceeds\\n commitCount\\n diffHeadSha\\n userPermissions {\\n canMerge\\n removeSourceBranch\\n updateMergeRequest\\n }\\n targetBranch\\n mergeError\\n commitsWithoutMergeCommits {\\n nodes {\\n id\\n sha\\n shortId\\n title\\n message\\n }\\n }\\n headPipeline {\\n id\\n status\\n path\\n active\\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[\"ReadyToMergeMergeRequest\"] = oneQuery(doc, \"ReadyToMergeMergeRequest\");\n \n","import { extend } from '../../vue';\nimport { NAME_THEAD } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n // Also sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n // Supported values: 'lite', 'dark', or `null`\n headVariant: makeProp(PROP_TYPE_STRING)\n}, NAME_THEAD);\n\n// --- Main component ---\n\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\nconst BThead = /*#__PURE__*/extend({\n name: NAME_THEAD,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide() {\n return {\n getBvTableRowGroup: () => this\n };\n },\n inject: {\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n getBvTable: {\n default: /* istanbul ignore next */() => () => ({})\n }\n },\n inheritAttrs: false,\n props,\n computed: {\n bvTable() {\n return this.getBvTable();\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n isThead() {\n return true;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n tableVariant() {\n return this.bvTable.tableVariant;\n },\n theadClasses() {\n return [this.headVariant ? `thead-${this.headVariant}` : null];\n },\n theadAttrs() {\n return {\n role: 'rowgroup',\n ...this.bvAttrs\n };\n }\n },\n render(h) {\n return h('thead', {\n class: this.theadClasses,\n attrs: this.theadAttrs,\n // Pass down any native listeners\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});\n\nexport { BThead, props };\n","import { extend } from '../../../vue';\nimport { EVENT_NAME_HEAD_CLICKED } from '../../../constants/events';\nimport { CODE_ENTER, CODE_SPACE } from '../../../constants/key-codes';\nimport { PROP_TYPE_STRING, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';\nimport { SLOT_NAME_THEAD_TOP } from '../../../constants/slots';\nimport { stopEvent } from '../../../utils/events';\nimport { htmlOrText } from '../../../utils/html';\nimport { identity } from '../../../utils/identity';\nimport { isUndefinedOrNull } from '../../../utils/inspect';\nimport { noop } from '../../../utils/noop';\nimport { makeProp } from '../../../utils/props';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { startCase } from '../../../utils/string';\nimport { BThead } from '../thead';\nimport { BTfoot } from '../tfoot';\nimport { BTr } from '../tr';\nimport { BTh } from '../th';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active';\n\n// --- Helper methods ---\n\nconst getHeadSlotName = value => `head(${value || ''})`;\nconst getFootSlotName = value => `foot(${value || ''})`;\n\n// --- Props ---\n\nconst props = {\n // Any Bootstrap theme variant (or custom)\n headRowVariant: makeProp(PROP_TYPE_STRING),\n // 'light', 'dark' or `null` (or custom)\n headVariant: makeProp(PROP_TYPE_STRING),\n theadClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n theadTrClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst theadMixin = extend({\n props,\n methods: {\n fieldClasses(field) {\n // Header field (<th>) classes\n return [field.class ? field.class : '', field.thClass ? field.thClass : ''];\n },\n headClicked(event, field, isFoot) {\n if (this.stopIfBusy && this.stopIfBusy(event)) {\n // If table is busy (via provider) then don't propagate\n return;\n } else if (filterEvent(event)) {\n // Clicked on a non-disabled control so ignore\n return;\n } else if (textSelectionActive(this.$el)) {\n // User is selecting text, so ignore\n /* istanbul ignore next: JSDOM doesn't support getSelection() */\n return;\n }\n stopEvent(event);\n this.$emit(EVENT_NAME_HEAD_CLICKED, field.key, field, event, isFoot);\n },\n renderThead() {\n let isFoot = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n const {\n computedFields: fields,\n isSortable,\n isSelectable,\n headVariant,\n footVariant,\n headRowVariant,\n footRowVariant\n } = safeVueInstance(this);\n const h = this.$createElement;\n\n // In always stacked mode, we don't bother rendering the head/foot\n // Or if no field headings (empty table)\n if (this.isStackedAlways || fields.length === 0) {\n return h();\n }\n const hasHeadClickListener = isSortable || this.hasListener(EVENT_NAME_HEAD_CLICKED);\n\n // Reference to `selectAllRows` and `clearSelected()`, if table is selectable\n const selectAllRows = isSelectable ? this.selectAllRows : noop;\n const clearSelected = isSelectable ? this.clearSelected : noop;\n\n // Helper function to generate a field <th> cell\n const makeCell = (field, colIndex) => {\n const {\n label,\n labelHtml,\n variant,\n stickyColumn,\n key\n } = field;\n let ariaLabel = null;\n if (!field.label.trim() && !field.headerTitle) {\n // In case field's label and title are empty/blank\n // We need to add a hint about what the column is about for non-sighted users\n /* istanbul ignore next */\n ariaLabel = startCase(field.key);\n }\n const on = {};\n if (hasHeadClickListener) {\n on.click = event => {\n this.headClicked(event, field, isFoot);\n };\n on.keydown = event => {\n const keyCode = event.keyCode;\n if (keyCode === CODE_ENTER || keyCode === CODE_SPACE) {\n this.headClicked(event, field, isFoot);\n }\n };\n }\n const sortAttrs = isSortable ? this.sortTheadThAttrs(key, field, isFoot) : {};\n const sortClass = isSortable ? this.sortTheadThClasses(key, field, isFoot) : null;\n const sortLabel = isSortable ? this.sortTheadThLabel(key, field, isFoot) : null;\n const data = {\n class: [{\n // We need to make the header cell relative when we have\n // a `.gl-sr-only` sort label to work around overflow issues\n 'gl-relative': sortLabel\n }, this.fieldClasses(field), sortClass],\n props: {\n variant,\n stickyColumn\n },\n style: field.thStyle || {},\n attrs: {\n // We only add a `tabindex` of `0` if there is a head-clicked listener\n // and the current field is sortable\n tabindex: hasHeadClickListener && field.sortable ? '0' : null,\n abbr: field.headerAbbr || null,\n title: field.headerTitle || null,\n 'aria-colindex': colIndex + 1,\n 'aria-label': ariaLabel,\n ...this.getThValues(null, key, field.thAttr, isFoot ? 'foot' : 'head', {}),\n ...sortAttrs\n },\n on,\n key\n };\n\n // Handle edge case where in-document templates are used with new\n // `v-slot:name` syntax where the browser lower-cases the v-slot's\n // name (attributes become lower cased when parsed by the browser)\n // We have replaced the square bracket syntax with round brackets\n // to prevent confusion with dynamic slot names\n let slotNames = [getHeadSlotName(key), getHeadSlotName(key.toLowerCase()), getHeadSlotName()];\n // Footer will fallback to header slot names\n if (isFoot) {\n slotNames = [getFootSlotName(key), getFootSlotName(key.toLowerCase()), getFootSlotName(), ...slotNames];\n }\n const scope = {\n label,\n column: key,\n field,\n isFoot,\n // Add in row select methods\n selectAllRows,\n clearSelected\n };\n const $content = this.normalizeSlot(slotNames, scope) || h('div', {\n domProps: htmlOrText(labelHtml, label)\n });\n const $srLabel = sortLabel ? h('span', {\n staticClass: 'gl-sr-only'\n }, ` (${sortLabel})`) : null;\n\n // Return the header cell\n return h(BTh, data, [$content, $srLabel].filter(identity));\n };\n\n // Generate the array of <th> cells\n const $cells = fields.map(makeCell).filter(identity);\n\n // Generate the row(s)\n const $trs = [];\n if (isFoot) {\n $trs.push(h(BTr, {\n class: this.tfootTrClass,\n props: {\n variant: isUndefinedOrNull(footRowVariant) ? headRowVariant : /* istanbul ignore next */footRowVariant\n }\n }, $cells));\n } else {\n const scope = {\n columns: fields.length,\n fields,\n // Add in row select methods\n selectAllRows,\n clearSelected\n };\n $trs.push(this.normalizeSlot(SLOT_NAME_THEAD_TOP, scope) || h());\n $trs.push(h(BTr, {\n class: this.theadTrClass,\n props: {\n variant: headRowVariant\n }\n }, $cells));\n }\n return h(isFoot ? BTfoot : BThead, {\n class: (isFoot ? this.tfootClass : this.theadClass) || null,\n props: isFoot ? {\n footVariant: footVariant || headVariant || null\n } : {\n headVariant: headVariant || null\n },\n key: isFoot ? 'bv-tfoot' : 'bv-thead'\n }, $trs);\n }\n }\n});\n\nexport { props, theadMixin };\n","import createEventHub from '~/helpers/event_hub_factory';\n\nexport default createEventHub();\n","import eventHubFactory from '~/helpers/event_hub_factory';\n\nexport default eventHubFactory();\n","function _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (root, factory) {\n var namespace = 'VirtualList';\n /* istanbul ignore next */\n\n if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === 'object') {\n module.exports = factory(namespace, require('vue'));\n } else if (typeof define === 'function' && define.amd) {\n define(['vue'], factory.bind(root, namespace));\n } else if ((typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object') {\n exports[namespace] = factory(namespace, require('vue'));\n } else {\n root[namespace] = factory(namespace, root.Vue);\n }\n})(this, function (namespace, Vue) {\n /* istanbul ignore next */\n if (_typeof(Vue) === 'object' && typeof Vue[\"default\"] === 'function') {\n Vue = Vue[\"default\"];\n }\n /* istanbul ignore next */\n\n\n var _debounce = function _debounce(func, wait, immediate) {\n var timeout;\n return function () {\n var context = this;\n var args = arguments;\n\n var later = function later() {\n timeout = null;\n\n if (!immediate) {\n func.apply(context, args);\n }\n };\n\n var callNow = immediate && !timeout;\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n\n if (callNow) {\n func.apply(context, args);\n }\n };\n };\n\n return Vue.component(namespace, {\n props: {\n size: {\n type: Number,\n required: true\n },\n remain: {\n type: Number,\n required: true\n },\n rtag: {\n type: String,\n \"default\": 'div'\n },\n wtag: {\n type: String,\n \"default\": 'div'\n },\n wclass: {\n type: String,\n \"default\": ''\n },\n wstyle: {\n type: Object,\n \"default\": function _default() {\n return {};\n }\n },\n pagemode: {\n type: Boolean,\n \"default\": false\n },\n scrollelement: {\n type: typeof window === 'undefined' ? Object : HTMLElement,\n \"default\": null\n },\n start: {\n type: Number,\n \"default\": 0\n },\n offset: {\n type: Number,\n \"default\": 0\n },\n variable: {\n type: [Function, Boolean],\n \"default\": false\n },\n bench: {\n type: Number,\n \"default\": 0 // also equal to remain\n\n },\n debounce: {\n type: Number,\n \"default\": 0\n },\n totop: {\n type: [Function, Boolean],\n \"default\": false\n },\n tobottom: {\n type: [Function, Boolean],\n \"default\": false\n },\n onscroll: {\n type: [Function, Boolean],\n // Boolean disables default behavior\n \"default\": false\n },\n istable: {\n type: Boolean,\n \"default\": false\n },\n item: {\n type: [Function, Object],\n \"default\": null\n },\n itemcount: {\n type: Number,\n \"default\": 0\n },\n itemprops: {\n type: Function,\n\n /* istanbul ignore next */\n \"default\": function _default() {}\n }\n },\n // use changeProp to identify the prop change.\n watch: {\n size: function size() {\n this.changeProp = 'size';\n },\n remain: function remain() {\n this.changeProp = 'remain';\n },\n bench: function bench() {\n this.changeProp = 'bench';\n this.itemModeForceRender();\n },\n start: function start() {\n this.changeProp = 'start';\n this.itemModeForceRender();\n },\n offset: function offset() {\n this.changeProp = 'offset';\n this.itemModeForceRender();\n },\n itemcount: function itemcount() {\n this.changeProp = 'itemcount';\n this.itemModeForceRender();\n },\n scrollelement: function scrollelement(newScrollelement, oldScrollelement) {\n if (this.pagemode) {\n return;\n }\n\n if (oldScrollelement) {\n this.removeScrollListener(oldScrollelement);\n }\n\n if (newScrollelement) {\n this.addScrollListener(newScrollelement);\n }\n }\n },\n created: function created() {\n var start = this.start >= this.remain ? this.start : 0;\n var keeps = this.remain + (this.bench || this.remain);\n var delta = Object.create(null);\n delta.direction = ''; // current scroll direction, D: down, U: up.\n\n delta.scrollTop = 0; // current scroll top, use to direction.\n\n delta.start = start; // start index.\n\n delta.end = start + keeps - 1; // end index.\n\n delta.keeps = keeps; // nums keeping in real dom.\n\n delta.total = 0; // all items count, update in filter.\n\n delta.offsetAll = 0; // cache all the scrollable offset.\n\n delta.paddingTop = 0; // container wrapper real padding-top.\n\n delta.paddingBottom = 0; // container wrapper real padding-bottom.\n\n delta.varCache = {}; // object to cache variable index height and scroll offset.\n\n delta.varAverSize = 0; // average/estimate item height before variable be calculated.\n\n delta.varLastCalcIndex = 0; // last calculated variable height/offset index, always increase.\n\n this.delta = delta;\n },\n mounted: function mounted() {\n if (this.pagemode) {\n this.addScrollListener(window);\n } else if (this.scrollelement) {\n this.addScrollListener(this.scrollelement);\n }\n\n if (this.start) {\n var start = this.getZone(this.start).start;\n this.setScrollTop(this.variable ? this.getVarOffset(start) : start * this.size);\n } else if (this.offset) {\n this.setScrollTop(this.offset);\n }\n },\n beforeDestroy: function beforeDestroy() {\n if (this.pagemode) {\n this.removeScrollListener(window);\n } else if (this.scrollelement) {\n this.removeScrollListener(this.scrollelement);\n }\n },\n // check if delta should update when props change.\n beforeUpdate: function beforeUpdate() {\n var delta = this.delta;\n delta.keeps = this.remain + (this.bench || this.remain);\n var calcstart = this.changeProp === 'start' ? this.start : delta.start;\n var zone = this.getZone(calcstart); // if start, size or offset change, update scroll position.\n\n if (this.changeProp && ['start', 'size', 'offset'].includes(this.changeProp)) {\n var scrollTop = this.changeProp === 'offset' ? this.offset : this.variable ? this.getVarOffset(zone.isLast ? delta.total : zone.start) : zone.isLast && delta.total - calcstart <= this.remain ? delta.total * this.size : calcstart * this.size;\n this.$nextTick(this.setScrollTop.bind(this, scrollTop));\n } // if points out difference, force update once again.\n\n\n if (this.changeProp || delta.end !== zone.end || calcstart !== zone.start) {\n this.changeProp = '';\n delta.end = zone.end;\n delta.start = zone.start;\n this.forceRender();\n }\n },\n methods: {\n // add pagemode/scrollelement scroll event listener\n addScrollListener: function addScrollListener(element) {\n this.scrollHandler = this.debounce ? _debounce(this.onScroll.bind(this), this.debounce) : this.onScroll;\n element.addEventListener('scroll', this.scrollHandler, false);\n },\n // remove pagemode/scrollelement scroll event listener\n removeScrollListener: function removeScrollListener(element) {\n element.removeEventListener('scroll', this.scrollHandler, false);\n },\n onScroll: function onScroll(event) {\n var delta = this.delta;\n var vsl = this.$refs.vsl;\n var offset;\n\n if (this.pagemode) {\n var elemRect = this.$el.getBoundingClientRect();\n offset = -elemRect.top;\n } else if (this.scrollelement) {\n var scrollelementRect = this.scrollelement.getBoundingClientRect();\n\n var _elemRect = this.$el.getBoundingClientRect();\n\n offset = scrollelementRect.top - _elemRect.top;\n } else {\n offset = vsl && (vsl.$el || vsl).scrollTop || 0;\n }\n\n delta.direction = offset > delta.scrollTop ? 'D' : 'U';\n delta.scrollTop = offset;\n\n if (delta.total > delta.keeps) {\n this.updateZone(offset);\n } else {\n delta.end = delta.total - 1;\n }\n\n var offsetAll = delta.offsetAll;\n\n if (this.onscroll) {\n var param = Object.create(null);\n param.offset = offset;\n param.offsetAll = offsetAll;\n param.start = delta.start;\n param.end = delta.end;\n this.onscroll(event, param);\n }\n\n if (!offset && delta.total) {\n this.fireEvent('totop');\n }\n\n if (offset >= offsetAll) {\n this.fireEvent('tobottom');\n }\n },\n // update render zone by scroll offset.\n updateZone: function updateZone(offset) {\n var delta = this.delta;\n var overs = this.variable ? this.getVarOvers(offset) : Math.floor(offset / this.size); // if scroll up, we'd better decrease it's numbers.\n\n if (delta.direction === 'U') {\n overs = overs - this.remain + 1;\n }\n\n var zone = this.getZone(overs);\n var bench = this.bench || this.remain; // for better performance, if scroll passes items within the bench, do not update.\n // and if it's close to the last item, render next zone immediately.\n\n var shouldRenderNextZone = Math.abs(overs - delta.start - bench) === 1;\n\n if (!shouldRenderNextZone && overs - delta.start <= bench && !zone.isLast && overs > delta.start) {\n return;\n } // make sure forceRender calls as less as possible.\n\n\n if (shouldRenderNextZone || zone.start !== delta.start || zone.end !== delta.end) {\n delta.end = zone.end;\n delta.start = zone.start;\n this.forceRender();\n }\n },\n // return the right zone info based on `start/index`.\n getZone: function getZone(index) {\n var start, end;\n var delta = this.delta;\n index = parseInt(index, 10);\n index = Math.max(0, index);\n var lastStart = delta.total - delta.keeps;\n var isLast = index <= delta.total && index >= lastStart || index > delta.total;\n\n if (isLast) {\n start = Math.max(0, lastStart);\n } else {\n start = index;\n }\n\n end = start + delta.keeps - 1;\n\n if (delta.total && end > delta.total) {\n end = delta.total - 1;\n }\n\n return {\n end: end,\n start: start,\n isLast: isLast\n };\n },\n // public method, force render ui list if needed.\n // call this before the next rerender to get better performance.\n forceRender: function forceRender() {\n var _this = this;\n\n window.requestAnimationFrame(function () {\n _this.$forceUpdate();\n });\n },\n // force render ui if using item-mode.\n itemModeForceRender: function itemModeForceRender() {\n if (this.item) {\n this.forceRender();\n }\n },\n // return the scroll of passed items count in variable.\n getVarOvers: function getVarOvers(offset) {\n var low = 0;\n var middle = 0;\n var middleOffset = 0;\n var delta = this.delta;\n var high = delta.total;\n\n while (low <= high) {\n middle = low + Math.floor((high - low) / 2);\n middleOffset = this.getVarOffset(middle); // calculate the average variable height at first binary search.\n\n if (!delta.varAverSize) {\n delta.varAverSize = Math.floor(middleOffset / middle);\n }\n\n if (middleOffset === offset) {\n return middle;\n } else if (middleOffset < offset) {\n low = middle + 1;\n } else if (middleOffset > offset) {\n high = middle - 1;\n }\n }\n\n return low > 0 ? --low : 0;\n },\n // return a variable scroll offset from given index.\n getVarOffset: function getVarOffset(index, nocache) {\n var delta = this.delta;\n var cache = delta.varCache[index];\n\n if (!nocache && cache) {\n return cache.offset;\n }\n\n var offset = 0;\n\n for (var i = 0; i < index; i++) {\n var size = this.getVarSize(i, nocache);\n delta.varCache[i] = {\n size: size,\n offset: offset\n };\n offset += size;\n }\n\n delta.varLastCalcIndex = Math.max(delta.varLastCalcIndex, index - 1);\n delta.varLastCalcIndex = Math.min(delta.varLastCalcIndex, delta.total - 1);\n return offset;\n },\n // return a variable size (height) from given index.\n getVarSize: function getVarSize(index, nocache) {\n var cache = this.delta.varCache[index];\n\n if (!nocache && cache) {\n return cache.size;\n }\n\n if (typeof this.variable === 'function') {\n return this.variable(index) || 0;\n } else {\n // when using item, it can only get current components height,\n // need to be enhanced, or consider using variable-function instead\n var slot = this.item ? this.$children[index] ? this.$children[index].$vnode : null : this.$slots[\"default\"][index];\n var style = slot && slot.data && slot.data.style;\n\n if (style && style.height) {\n var shm = style.height.match(/^(.*)px$/);\n return shm && +shm[1] || 0;\n }\n }\n\n return 0;\n },\n // return the variable paddingTop based on current zone.\n // @todo: if set a large `start` before variable was calculated,\n // here will also case too much offset calculate when list is very large,\n // consider use estimate paddingTop in this case just like `getVarPaddingBottom`.\n getVarPaddingTop: function getVarPaddingTop() {\n return this.getVarOffset(this.delta.start);\n },\n // return the variable paddingBottom based on the current zone.\n getVarPaddingBottom: function getVarPaddingBottom() {\n var delta = this.delta;\n var last = delta.total - 1;\n\n if (delta.total - delta.end <= delta.keeps || delta.varLastCalcIndex === last) {\n return this.getVarOffset(last) - this.getVarOffset(delta.end);\n } else {\n // if unreached last zone or uncalculated real behind offset\n // return the estimate paddingBottom and avoid too much calculations.\n return (delta.total - delta.end) * (delta.varAverSize || this.size);\n }\n },\n // return the variable all heights use to judge reach bottom.\n getVarAllHeight: function getVarAllHeight() {\n var delta = this.delta;\n\n if (delta.total - delta.end <= delta.keeps || delta.varLastCalcIndex === delta.total - 1) {\n return this.getVarOffset(delta.total);\n } else {\n return this.getVarOffset(delta.start) + (delta.total - delta.end) * (delta.varAverSize || this.size);\n }\n },\n // public method, allow the parent update variable by index.\n updateVariable: function updateVariable(index) {\n // clear/update all the offsets and heights ahead of index.\n this.getVarOffset(index, true);\n },\n // trigger a props event on parent.\n fireEvent: function fireEvent(event) {\n if (this[event]) {\n this[event]();\n }\n },\n // set manual scroll top.\n setScrollTop: function setScrollTop(scrollTop) {\n if (this.pagemode) {\n window.scrollTo(0, scrollTop);\n } else if (this.scrollelement) {\n this.scrollelement.scrollTo(0, scrollTop);\n } else {\n var vsl = this.$refs.vsl;\n\n if (vsl) {\n (vsl.$el || vsl).scrollTop = scrollTop;\n }\n }\n },\n // filter the shown items based on `start` and `end`.\n filter: function filter(h) {\n var delta = this.delta;\n var slots = this.$slots[\"default\"] || []; // item-mode should be decided from items prop.\n\n if (this.item || this.$scopedSlots.item) {\n delta.total = this.itemcount;\n\n if (delta.keeps > delta.total) {\n delta.end = delta.total - 1;\n }\n } else {\n if (!slots.length) {\n delta.start = 0;\n }\n\n delta.total = slots.length;\n }\n\n var paddingTop, paddingBottom, allHeight;\n var hasPadding = delta.total > delta.keeps;\n\n if (this.variable) {\n allHeight = this.getVarAllHeight();\n paddingTop = hasPadding ? this.getVarPaddingTop() : 0;\n paddingBottom = hasPadding ? this.getVarPaddingBottom() : 0;\n } else {\n allHeight = this.size * delta.total;\n paddingTop = this.size * (hasPadding ? delta.start : 0);\n paddingBottom = this.size * (hasPadding ? delta.total - delta.keeps : 0) - paddingTop;\n }\n\n if (paddingBottom < this.size) {\n paddingBottom = 0;\n }\n\n delta.paddingTop = paddingTop;\n delta.paddingBottom = paddingBottom;\n delta.offsetAll = allHeight - this.size * this.remain;\n var renders = [];\n\n for (var i = delta.start; i < delta.total && i <= Math.ceil(delta.end); i++) {\n var slot = null;\n\n if (this.$scopedSlots.item) {\n slot = this.$scopedSlots.item(i);\n } else if (this.item) {\n slot = h(this.item, this.itemprops(i));\n } else {\n slot = slots[i];\n }\n\n renders.push(slot);\n }\n\n return renders;\n }\n },\n render: function render(h) {\n var dbc = this.debounce;\n var list = this.filter(h);\n var _this$delta = this.delta,\n paddingTop = _this$delta.paddingTop,\n paddingBottom = _this$delta.paddingBottom;\n var istable = this.istable;\n var wtag = istable ? 'div' : this.wtag;\n var rtag = istable ? 'div' : this.rtag;\n\n if (istable) {\n list = [h('table', [h('tbody', list)])];\n }\n\n var renderList = h(wtag, {\n style: Object.assign({\n display: 'block',\n 'padding-top': paddingTop + 'px',\n 'padding-bottom': paddingBottom + 'px'\n }, this.wstyle),\n \"class\": this.wclass,\n attrs: {\n role: 'group'\n }\n }, list); // page mode just render list, no wrapper.\n\n if (this.pagemode || this.scrollelement) {\n return renderList;\n }\n\n return h(rtag, {\n ref: 'vsl',\n style: {\n display: 'block',\n 'overflow-y': this.size >= this.remain ? 'auto' : 'initial',\n height: this.size * this.remain + 'px'\n },\n on: {\n '&scroll': dbc ? _debounce(this.onScroll.bind(this), dbc) : this.onScroll\n }\n }, [renderList]);\n }\n });\n});","import ClipboardJS from 'clipboard';\nimport { DEBOUNCE_DROPDOWN_DELAY } from '~/sidebar/components/labels/labels_select_widget/constants';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { s__ } from '~/locale';\nimport Sidebar from '~/right_sidebar';\nimport {\n ISSUE_MR_CHANGE_ASSIGNEE,\n ISSUE_MR_CHANGE_MILESTONE,\n ISSUABLE_CHANGE_LABEL,\n ISSUABLE_EDIT_DESCRIPTION,\n MR_COPY_SOURCE_BRANCH_NAME,\n ISSUABLE_COPY_REF,\n} from './keybindings';\n\nexport default class ShortcutsIssuable {\n constructor(shortcuts) {\n this.branchInMemoryButton = document.createElement('button');\n this.branchClipboardInstance = new ClipboardJS(this.branchInMemoryButton);\n this.branchClipboardInstance.on('success', () => {\n toast(s__('GlobalShortcuts|Copied source branch name to clipboard.'));\n });\n this.branchClipboardInstance.on('error', () => {\n toast(s__('GlobalShortcuts|Unable to copy the source branch name at this time.'));\n });\n\n this.refInMemoryButton = document.createElement('button');\n this.refClipboardInstance = new ClipboardJS(this.refInMemoryButton);\n this.refClipboardInstance.on('success', () => {\n toast(s__('GlobalShortcuts|Copied reference to clipboard.'));\n });\n this.refClipboardInstance.on('error', () => {\n toast(s__('GlobalShortcuts|Unable to copy the reference at this time.'));\n });\n\n shortcuts.addAll([\n [ISSUE_MR_CHANGE_ASSIGNEE, () => ShortcutsIssuable.openSidebarDropdown('assignee')],\n [ISSUE_MR_CHANGE_MILESTONE, () => ShortcutsIssuable.openSidebarDropdown('milestone')],\n [ISSUABLE_CHANGE_LABEL, () => ShortcutsIssuable.openSidebarDropdown('labels')],\n [ISSUABLE_EDIT_DESCRIPTION, ShortcutsIssuable.editIssue],\n [MR_COPY_SOURCE_BRANCH_NAME, () => this.copyBranchName()],\n [ISSUABLE_COPY_REF, () => this.copyIssuableRef()],\n ]);\n }\n\n static editIssue() {\n // Need to click the element as on issues, editing is inline\n // on merge request, editing is on a different page\n document.querySelector('.js-issuable-edit').click();\n\n return false;\n }\n\n static openSidebarDropdown(name) {\n Sidebar.instance.openDropdown(name);\n // Wait for the sidebar to trigger('click') open\n // so it doesn't cause our dropdown to close preemptively\n setTimeout(() => {\n const editBtn =\n document.querySelector(`.block.${name} .shortcut-sidebar-dropdown-toggle`) ||\n document.querySelector(`.block.${name} .edit-link`);\n editBtn.click();\n }, DEBOUNCE_DROPDOWN_DELAY);\n return false;\n }\n\n async copyBranchName() {\n const button = document.querySelector('.js-source-branch-copy');\n const branchName = button?.dataset.clipboardText;\n\n if (branchName) {\n this.branchInMemoryButton.dataset.clipboardText = branchName;\n\n this.branchInMemoryButton.dispatchEvent(new CustomEvent('click'));\n }\n }\n\n async copyIssuableRef() {\n const refButton = document.querySelector('.js-copy-reference');\n const copiedRef = refButton?.dataset.clipboardText;\n\n if (copiedRef) {\n this.refInMemoryButton.dataset.clipboardText = copiedRef;\n\n this.refInMemoryButton.dispatchEvent(new CustomEvent('click'));\n }\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"note-header-info\"},[(_vm.hasAuthor)?[(_vm.emailParticipant)?_c('span',{staticClass:\"note-header-author-name gl-font-bold\",attrs:{\"data-testid\":\"author-name\"},domProps:{\"textContent\":_vm._s(_vm.authorName)}}):_c('a',{ref:\"authorNameLink\",class:_vm.authorLinkClasses,attrs:{\"href\":_vm.authorHref,\"data-user-id\":_vm.authorId,\"data-username\":_vm.author.username}},[_c('span',{staticClass:\"note-header-author-name gl-font-bold\",attrs:{\"data-testid\":\"author-name\"},domProps:{\"textContent\":_vm._s(_vm.authorName)}})]),_vm._v(\" \"),(!_vm.isSystemNote && !_vm.emailParticipant)?_c('span',{staticClass:\"text-nowrap author-username gl-truncate\"},[_c('a',{ref:\"authorUsernameLink\",staticClass:\"author-username-link\",attrs:{\"href\":_vm.authorHref},on:{\"mouseenter\":_vm.handleUsernameMouseEnter,\"mouseleave\":_vm.handleUsernameMouseLeave}},[_c('span',{staticClass:\"note-headline-light gl-hidden md:gl-inline\"},[_vm._v(\"@\"+_vm._s(_vm.author.username))])]),_vm._v(\" \"),_vm._t(\"note-header-info\")],2):_vm._e(),_vm._v(\" \"),(_vm.emailParticipant)?_c('span',{staticClass:\"note-headline-light\"},[_vm._v(_vm._s(_vm.__('(external participant)')))]):_vm._e()]:_c('span',[_vm._v(_vm._s(_vm.__('A deleted user')))]),_vm._v(\" \"),_c('span',{staticClass:\"note-headline-light note-headline-meta\"},[_c('span',{staticClass:\"system-note-message\",attrs:{\"data-testid\":\"system-note-content\"}},[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.createdAt)?[_c('span',{ref:\"actionText\",staticClass:\"system-note-separator\"},[(_vm.actionText)?[_vm._v(_vm._s(_vm.actionText))]:_vm._e()],2),_vm._v(\" \"),(_vm.noteTimestampLink)?_c('a',{ref:\"noteTimestampLink\",staticClass:\"note-timestamp system-note-separator\",attrs:{\"href\":_vm.noteTimestampLink},on:{\"click\":_vm.updateTargetNoteHash}},[_c('time-ago-tooltip',{attrs:{\"time\":_vm.createdAt,\"tooltip-placement\":\"bottom\"}})],1):_c('time-ago-tooltip',{ref:\"noteTimestamp\",attrs:{\"time\":_vm.createdAt,\"tooltip-placement\":\"bottom\"}})]:_vm._e(),_vm._v(\" \"),(_vm.isImported)?[(_vm.isSystemNote)?_c('span',[_vm._v(\"·\")]):_vm._e(),_vm._v(\" \"),_c('imported-badge',{attrs:{\"text-only\":_vm.isSystemNote,\"importable-type\":_vm.importableType}})]:_vm._e(),_vm._v(\" \"),(_vm.isInternalNote)?_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip:tooltipcontainer.bottom\",arg:\"tooltipcontainer\",modifiers:{\"bottom\":true}}],staticClass:\"gl-ml-2\",attrs:{\"data-testid\":\"internal-note-indicator\",\"variant\":\"warning\",\"title\":_vm.internalNoteTooltip}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Internal note'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"extra-controls\"),_vm._v(\" \"),(_vm.showSpinner)?_c('gl-loading-icon',{ref:\"spinner\",staticClass:\"editing-spinner\",attrs:{\"size\":\"sm\",\"label\":_vm.__('Comment is being updated')}}):_vm._e()],2)],2)\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!./note_header.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!./note_header.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions } from 'vuex';\nimport { isGid, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPE_ACTIVITY, TYPE_COMMENT } from '~/import/constants';\nimport { s__ } from '~/locale';\nimport ImportedBadge from '~/vue_shared/components/imported_badge.vue';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\n\nexport default {\n components: {\n ImportedBadge,\n TimeAgoTooltip,\n GlBadge,\n GlLoadingIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n author: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n createdAt: {\n type: String,\n required: false,\n default: null,\n },\n actionText: {\n type: String,\n required: false,\n default: '',\n },\n noteId: {\n type: [String, Number],\n required: false,\n default: null,\n },\n noteableType: {\n type: String,\n required: false,\n default: '',\n },\n showSpinner: {\n type: Boolean,\n required: false,\n default: true,\n },\n isInternalNote: {\n type: Boolean,\n required: false,\n default: false,\n },\n isImported: {\n type: Boolean,\n required: false,\n default: false,\n },\n isSystemNote: {\n type: Boolean,\n required: false,\n default: false,\n },\n noteUrl: {\n type: String,\n required: false,\n default: '',\n },\n emailParticipant: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n isUsernameLinkHovered: false,\n };\n },\n computed: {\n authorId() {\n return getIdFromGraphQLId(this.author.id);\n },\n authorHref() {\n return this.author.path || this.author.webUrl;\n },\n noteTimestampLink() {\n if (this.noteUrl) return this.noteUrl;\n\n if (this.noteId) {\n let { noteId } = this;\n\n if (isGid(noteId)) noteId = getIdFromGraphQLId(noteId);\n\n return `#note_${noteId}`;\n }\n\n return undefined;\n },\n hasAuthor() {\n return this.author && Object.keys(this.author).length;\n },\n isServiceDeskEmailParticipant() {\n return (\n !this.isInternalNote && this.author.username === 'support-bot' && this.emailParticipant\n );\n },\n authorLinkClasses() {\n return {\n hover: this.isUsernameLinkHovered,\n 'text-underline': this.isUsernameLinkHovered,\n 'author-name-link': true,\n 'js-user-link': true,\n 'gl-overflow-hidden': true,\n 'gl-break-words': true,\n };\n },\n authorName() {\n return this.isServiceDeskEmailParticipant ? this.emailParticipant : this.author.name;\n },\n internalNoteTooltip() {\n return s__('Notes|This internal note will always remain confidential');\n },\n importableType() {\n return this.isSystemNote ? TYPE_ACTIVITY : TYPE_COMMENT;\n },\n },\n methods: {\n ...mapActions(['setTargetNoteHash']),\n updateTargetNoteHash() {\n if (this.$store) {\n this.setTargetNoteHash(this.noteTimestampLink);\n }\n },\n handleUsernameMouseEnter() {\n this.$refs.authorNameLink.dispatchEvent(new Event('mouseenter'));\n this.isUsernameLinkHovered = true;\n },\n handleUsernameMouseLeave() {\n this.$refs.authorNameLink.dispatchEvent(new Event('mouseleave'));\n this.isUsernameLinkHovered = false;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"note-header-info\">\n <template v-if=\"hasAuthor\">\n <span\n v-if=\"emailParticipant\"\n class=\"note-header-author-name gl-font-bold\"\n data-testid=\"author-name\"\n v-text=\"authorName\"\n ></span>\n <a\n v-else\n ref=\"authorNameLink\"\n :href=\"authorHref\"\n :class=\"authorLinkClasses\"\n :data-user-id=\"authorId\"\n :data-username=\"author.username\"\n >\n <span\n class=\"note-header-author-name gl-font-bold\"\n data-testid=\"author-name\"\n v-text=\"authorName\"\n ></span>\n </a>\n <span\n v-if=\"!isSystemNote && !emailParticipant\"\n class=\"text-nowrap author-username gl-truncate\"\n >\n <a\n ref=\"authorUsernameLink\"\n class=\"author-username-link\"\n :href=\"authorHref\"\n @mouseenter=\"handleUsernameMouseEnter\"\n @mouseleave=\"handleUsernameMouseLeave\"\n ><span class=\"note-headline-light gl-hidden md:gl-inline\">@{{ author.username }}</span>\n </a>\n <slot name=\"note-header-info\"></slot>\n </span>\n <span v-if=\"emailParticipant\" class=\"note-headline-light\">{{\n __('(external participant)')\n }}</span>\n </template>\n <span v-else>{{ __('A deleted user') }}</span>\n <span class=\"note-headline-light note-headline-meta\">\n <span class=\"system-note-message\" data-testid=\"system-note-content\">\n <slot></slot>\n </span>\n <template v-if=\"createdAt\">\n <span ref=\"actionText\" class=\"system-note-separator\">\n <template v-if=\"actionText\">{{ actionText }}</template>\n </span>\n <a\n v-if=\"noteTimestampLink\"\n ref=\"noteTimestampLink\"\n :href=\"noteTimestampLink\"\n class=\"note-timestamp system-note-separator\"\n @click=\"updateTargetNoteHash\"\n >\n <time-ago-tooltip :time=\"createdAt\" tooltip-placement=\"bottom\" />\n </a>\n <time-ago-tooltip v-else ref=\"noteTimestamp\" :time=\"createdAt\" tooltip-placement=\"bottom\" />\n </template>\n\n <template v-if=\"isImported\">\n <span v-if=\"isSystemNote\">·</span>\n <imported-badge :text-only=\"isSystemNote\" :importable-type=\"importableType\" />\n </template>\n\n <gl-badge\n v-if=\"isInternalNote\"\n v-gl-tooltip:tooltipcontainer.bottom\n data-testid=\"internal-note-indicator\"\n variant=\"warning\"\n class=\"gl-ml-2\"\n :title=\"internalNoteTooltip\"\n >\n {{ __('Internal note') }}\n </gl-badge>\n <slot name=\"extra-controls\"></slot>\n <gl-loading-icon\n v-if=\"showSpinner\"\n ref=\"spinner\"\n size=\"sm\"\n class=\"editing-spinner\"\n :label=\"__('Comment is being updated')\"\n />\n </span>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_header.vue?vue&type=template&id=d4c29394\"\nimport script from \"./note_header.vue?vue&type=script&lang=js\"\nexport * from \"./note_header.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 SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n arrayMap = require('./_arrayMap'),\n baseUnary = require('./_baseUnary'),\n cacheHas = require('./_cacheHas');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\nfunction baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseDifference;\n","import $ from 'jquery';\n\nconst defaults = {\n // Buttons that will show the `suggestionSections`\n // has `data-fork-path`, and `data-action`\n openButtons: [],\n // Update the href(from `openButton` -> `data-fork-path`)\n // whenever a `openButton` is clicked\n forkButtons: [],\n // Buttons to hide the `suggestionSections`\n cancelButtons: [],\n // Section to show/hide\n suggestionSections: [],\n // Pieces of text that need updating depending on the action, `edit`, `replace`, `delete`\n actionTextPieces: [],\n};\n\nclass BlobForkSuggestion {\n constructor(options) {\n this.elementMap = { ...defaults, ...options };\n this.onOpenButtonClick = this.onOpenButtonClick.bind(this);\n this.onCancelButtonClick = this.onCancelButtonClick.bind(this);\n }\n\n init() {\n this.bindEvents();\n\n return this;\n }\n\n bindEvents() {\n $(this.elementMap.openButtons).on('click', this.onOpenButtonClick);\n $(this.elementMap.cancelButtons).on('click', this.onCancelButtonClick);\n }\n\n showSuggestionSection(forkPath, action = 'edit') {\n $(this.elementMap.suggestionSections).removeClass('hidden');\n $(this.elementMap.forkButtons).attr('href', forkPath);\n $(this.elementMap.actionTextPieces).text(action);\n }\n\n hideSuggestionSection() {\n $(this.elementMap.suggestionSections).addClass('hidden');\n }\n\n onOpenButtonClick(e) {\n const forkPath = $(e.currentTarget).attr('data-fork-path');\n const action = $(e.currentTarget).attr('data-action');\n this.showSuggestionSection(forkPath, action);\n }\n\n onCancelButtonClick() {\n this.hideSuggestionSection();\n }\n\n destroy() {\n $(this.elementMap.openButtons).off('click', this.onOpenButtonClick);\n $(this.elementMap.cancelButtons).off('click', this.onCancelButtonClick);\n }\n}\n\nexport default BlobForkSuggestion;\n","import { s__ } from '~/locale';\nimport sidebarEventHub from '~/sidebar/event_hub';\nimport userPermissionsQuery from '~/merge_requests/components/reviewers/queries/user_permissions.query.graphql';\n\nexport default {\n apollo: {\n userPermissions: {\n query: userPermissionsQuery,\n variables() {\n return {\n fullPath: this.mr.targetProjectFullPath,\n iid: `${this.mr.iid}`,\n };\n },\n update: (data) => data.project?.mergeRequest?.userPermissions || {},\n },\n },\n data() {\n return {\n userPermissions: {},\n };\n },\n computed: {\n tertiaryActionsButtons() {\n return [\n this.userPermissions.adminMergeRequest &&\n this.mr.mergeRequestApproversAvailable && {\n text: s__('MergeChecks|Assign reviewers'),\n onClick() {\n sidebarEventHub.$emit('sidebar.toggleReviewerDrawer');\n },\n },\n ].filter((x) => x);\n },\n },\n};\n","function loadScript(path) {\n const script = document.createElement('script');\n script.type = 'application/javascript';\n script.src = path;\n script.defer = true;\n document.head.appendChild(script);\n}\n\n/**\n * Loads the Sourcegraph integration for support for Sourcegraph extensions and\n * code intelligence.\n */\nexport default function initSourcegraph() {\n const { url } = gon.sourcegraph || {};\n\n if (!url) {\n return;\n }\n\n const assetsUrl = new URL(process.env.SOURCEGRAPH_PUBLIC_PATH, window.location.href);\n const scriptPath = new URL('scripts/integration.bundle.js', assetsUrl).href;\n\n window.SOURCEGRAPH_ASSETS_URL = assetsUrl.href;\n window.SOURCEGRAPH_URL = url;\n window.SOURCEGRAPH_INTEGRATION = 'gitlab-integration';\n\n loadScript(scriptPath);\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"comment-warning-wrapper\"},[(_vm.withAlertContainer)?_c('div',{staticClass:\"error-alert\",attrs:{\"data-testid\":\"comment-field-alert-container\"}}):_vm._e(),_vm._v(\" \"),(_vm.hasWarningAbove)?_c('noteable-warning',{staticClass:\"-gl-mb-3 gl-rounded-lg gl-rounded-b-none gl-pb-5 gl-pt-4\",attrs:{\"is-locked\":_vm.isLocked,\"is-confidential\":_vm.isConfidential,\"noteable-type\":_vm.noteableType,\"locked-noteable-docs-path\":_vm.noteableData.locked_discussion_docs_path,\"confidential-noteable-docs-path\":_vm.noteableData.confidential_issues_docs_path}}):_vm._e(),_vm._v(\" \"),_vm._t(\"default\"),_vm._v(\" \"),(_vm.hasWarningBelow)?_c('div',{staticClass:\"-gl-mt-3 gl-rounded-lg gl-rounded-t-none gl-bg-orange-50 gl-pb-1 gl-pt-4 gl-text-orange-600\"},[(_vm.showConfidentialAttachmentWarning)?_c('div',{staticClass:\"gl-border-b gl-border-b-white gl-px-4 gl-py-2 last:gl-border-none\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.confidentialAttachmentWarning)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showAttachmentWarning)?_c('div',{staticClass:\"gl-border-b gl-border-b-white gl-px-4 gl-py-2 last:gl-border-none\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.attachmentWarning)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showEmailParticipantsWarning)?_c('email-participants-warning',{staticClass:\"gl-px-4 gl-py-2\",attrs:{\"emails\":_vm.emailParticipants}}):_vm._e()],1):_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlLink, GlIcon, GlSprintf } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\n\nconst noteableTypeText = {\n Issue: __('issue'),\n Epic: __('epic'),\n MergeRequest: __('merge request'),\n Task: __('task'),\n KeyResult: __('key result'),\n Objective: __('objective'),\n};\n\nexport default {\n components: {\n GlIcon,\n GlLink,\n GlSprintf,\n },\n props: {\n isLocked: {\n type: Boolean,\n default: false,\n required: false,\n },\n isConfidential: {\n type: Boolean,\n default: false,\n required: false,\n },\n noteableType: {\n type: String,\n required: false,\n // eslint-disable-next-line @gitlab/require-i18n-strings\n default: 'Issue',\n },\n lockedNoteableDocsPath: {\n type: String,\n required: false,\n default: '',\n },\n confidentialNoteableDocsPath: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n warningIcon() {\n if (this.isConfidential) return 'eye-slash';\n if (this.isLocked) return 'lock';\n\n return '';\n },\n isLockedAndConfidential() {\n return this.isConfidential && this.isLocked;\n },\n noteableTypeText() {\n return noteableTypeText[this.noteableType];\n },\n confidentialContextText() {\n return sprintf(__('This is a confidential %{noteableTypeText}.'), {\n noteableTypeText: this.noteableTypeText,\n });\n },\n lockedContextText() {\n return sprintf(__('The discussion in this %{noteableTypeText} is locked.'), {\n noteableTypeText: this.noteableTypeText,\n });\n },\n },\n};\n</script>\n<template>\n <div class=\"issuable-note-warning\" data-testid=\"issuable-note-warning\">\n <gl-icon\n v-if=\"!isLockedAndConfidential\"\n :name=\"warningIcon\"\n :size=\"16\"\n class=\"icon gl-inline-block\"\n />\n\n <span v-if=\"isLockedAndConfidential\" ref=\"lockedAndConfidential\">\n <span>\n <gl-sprintf\n :message=\"\n __(\n 'This %{noteableTypeText} is %{confidentialLinkStart}confidential%{confidentialLinkEnd} and its %{lockedLinkStart}discussion is locked%{lockedLinkEnd}.',\n )\n \"\n >\n <template #noteableTypeText>{{ noteableTypeText }}</template>\n <template #confidentialLink=\"{ content }\">\n <gl-link :href=\"confidentialNoteableDocsPath\" target=\"_blank\">{{ content }}</gl-link>\n </template>\n <template #lockedLink=\"{ content }\">\n <gl-link :href=\"lockedNoteableDocsPath\" target=\"_blank\">{{ content }}</gl-link>\n </template>\n </gl-sprintf>\n </span>\n {{\n __(\"People without permission will never get a notification and won't be able to comment.\")\n }}\n </span>\n\n <span v-else-if=\"isConfidential\" ref=\"confidential\">\n {{ confidentialContextText }}\n {{ __('People without permission will never get a notification.') }}\n <gl-link :href=\"confidentialNoteableDocsPath\" target=\"_blank\">{{\n __('Learn more.')\n }}</gl-link>\n </span>\n\n <span v-else-if=\"isLocked\" ref=\"locked\">\n {{ lockedContextText }}\n {{ __('Only project members can comment.') }}\n <gl-link :href=\"lockedNoteableDocsPath\" target=\"_blank\">{{ __('Learn more.') }}</gl-link>\n </span>\n </div>\n</template>\n","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!./noteable_warning.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!./noteable_warning.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./noteable_warning.vue?vue&type=template&id=704c80a5\"\nimport script from \"./noteable_warning.vue?vue&type=script&lang=js\"\nexport * from \"./noteable_warning.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('div',{staticClass:\"issuable-note-warning\",attrs:{\"data-testid\":\"issuable-note-warning\"}},[(!_vm.isLockedAndConfidential)?_c('gl-icon',{staticClass:\"icon gl-inline-block\",attrs:{\"name\":_vm.warningIcon,\"size\":16}}):_vm._e(),_vm._v(\" \"),(_vm.isLockedAndConfidential)?_c('span',{ref:\"lockedAndConfidential\"},[_c('span',[_c('gl-sprintf',{attrs:{\"message\":_vm.__(\n 'This %{noteableTypeText} is %{confidentialLinkStart}confidential%{confidentialLinkEnd} and its %{lockedLinkStart}discussion is locked%{lockedLinkEnd}.',\n )},scopedSlots:_vm._u([{key:\"noteableTypeText\",fn:function(){return [_vm._v(_vm._s(_vm.noteableTypeText))]},proxy:true},{key:\"confidentialLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.confidentialNoteableDocsPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}},{key:\"lockedLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.lockedNoteableDocsPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}}],null,false,21387600)})],1),_vm._v(\"\\n \"+_vm._s(_vm.__(\"People without permission will never get a notification and won't be able to comment.\"))+\"\\n \")]):(_vm.isConfidential)?_c('span',{ref:\"confidential\"},[_vm._v(\"\\n \"+_vm._s(_vm.confidentialContextText)+\"\\n \"+_vm._s(_vm.__('People without permission will never get a notification.'))+\"\\n \"),_c('gl-link',{attrs:{\"href\":_vm.confidentialNoteableDocsPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.__('Learn more.')))])],1):(_vm.isLocked)?_c('span',{ref:\"locked\"},[_vm._v(\"\\n \"+_vm._s(_vm.lockedContextText)+\"\\n \"+_vm._s(_vm.__('Only project members can comment.'))+\"\\n \"),_c('gl-link',{attrs:{\"href\":_vm.lockedNoteableDocsPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.__('Learn more.')))])],1):_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!./email_participants_warning.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!./email_participants_warning.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf, GlButton } from '@gitlab/ui';\nimport { toNounSeriesText } from '~/lib/utils/grammar';\nimport { s__, sprintf } from '~/locale';\n\nexport default {\n components: {\n GlSprintf,\n GlButton,\n },\n props: {\n emails: {\n type: Array,\n required: true,\n },\n numberOfLessParticipants: {\n type: Number,\n required: false,\n default: 3,\n },\n },\n data() {\n return {\n isShowingMoreParticipants: false,\n };\n },\n computed: {\n title() {\n return this.moreParticipantsAvailable\n ? toNounSeriesText(this.lessParticipants, { onlyCommas: true })\n : toNounSeriesText(this.emails);\n },\n lessParticipants() {\n return this.emails.slice(0, this.numberOfLessParticipants);\n },\n moreLabel() {\n return sprintf(s__('EmailParticipantsWarning|and %{moreCount} more'), {\n moreCount: this.emails.length - this.numberOfLessParticipants,\n });\n },\n moreParticipantsAvailable() {\n return !this.isShowingMoreParticipants && this.emails.length > this.numberOfLessParticipants;\n },\n message() {\n return this.moreParticipantsAvailable\n ? s__('EmailParticipantsWarning|%{emails}, %{andMore} will be notified of your comment.')\n : s__('EmailParticipantsWarning|%{emails} will be notified of your comment.');\n },\n },\n methods: {\n showMoreParticipants() {\n this.isShowingMoreParticipants = true;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <gl-sprintf :message=\"message\">\n <template #andMore>\n <gl-button variant=\"link\" class=\"gl-align-baseline\" @click=\"showMoreParticipants\">\n {{ moreLabel }}\n </gl-button>\n </template>\n <template #emails>\n <span>{{ title }}</span>\n </template>\n </gl-sprintf>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./email_participants_warning.vue?vue&type=template&id=0e120929\"\nimport script from \"./email_participants_warning.vue?vue&type=script&lang=js\"\nexport * from \"./email_participants_warning.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('div',[_c('gl-sprintf',{attrs:{\"message\":_vm.message},scopedSlots:_vm._u([{key:\"andMore\",fn:function(){return [_c('gl-button',{staticClass:\"gl-align-baseline\",attrs:{\"variant\":\"link\"},on:{\"click\":_vm.showMoreParticipants}},[_vm._v(\"\\n \"+_vm._s(_vm.moreLabel)+\"\\n \")])]},proxy:true},{key:\"emails\",fn:function(){return [_c('span',[_vm._v(_vm._s(_vm.title))])]},proxy:true}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { s__ } from '~/locale';\nimport NoteableWarning from '~/vue_shared/components/notes/noteable_warning.vue';\nimport EmailParticipantsWarning from './email_participants_warning.vue';\n\nconst ATTACHMENT_REGEXP = /!?\\[.*?\\]\\(\\/uploads\\/[0-9a-f]{32}\\/.*?\\)/;\nconst DEFAULT_NOTEABLE_TYPE = 'Issue';\n\nexport default {\n i18n: {\n attachmentWarning: s__(\n 'Notes|Attachments are sent by email. Attachments over 10 MB are sent as links to your GitLab instance, and only accessible to project members.',\n ),\n confidentialAttachmentWarning: s__(\n 'Notes|Uploaded files will be accessible to anyone with the file URL. Use caution when sharing file URLs.',\n ),\n },\n components: {\n EmailParticipantsWarning,\n NoteableWarning,\n },\n props: {\n isInternalNote: {\n type: Boolean,\n required: false,\n default: false,\n },\n note: {\n type: String,\n required: false,\n default: '',\n },\n noteableData: {\n type: Object,\n required: true,\n },\n noteableType: {\n type: String,\n required: false,\n default: DEFAULT_NOTEABLE_TYPE,\n },\n withAlertContainer: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n containsLink() {\n return ATTACHMENT_REGEXP.test(this.note);\n },\n isLocked() {\n return Boolean(this.noteableData.discussion_locked);\n },\n isConfidential() {\n return Boolean(this.noteableData.confidential);\n },\n hasWarningAbove() {\n return this.isConfidential || this.isLocked;\n },\n hasWarningBelow() {\n return (\n this.showConfidentialAttachmentWarning ||\n this.showAttachmentWarning ||\n this.showEmailParticipantsWarning\n );\n },\n emailParticipants() {\n return this.noteableData.issue_email_participants?.map(({ email }) => email) || [];\n },\n showEmailParticipantsWarning() {\n return this.emailParticipants.length && !this.isInternalNote;\n },\n showAttachmentWarning() {\n return this.showEmailParticipantsWarning && this.containsLink;\n },\n showConfidentialAttachmentWarning() {\n return (this.isConfidential || this.isInternalNote) && this.containsLink;\n },\n },\n};\n</script>\n<template>\n <div class=\"comment-warning-wrapper\">\n <div\n v-if=\"withAlertContainer\"\n class=\"error-alert\"\n data-testid=\"comment-field-alert-container\"\n ></div>\n <noteable-warning\n v-if=\"hasWarningAbove\"\n class=\"-gl-mb-3 gl-rounded-lg gl-rounded-b-none gl-pb-5 gl-pt-4\"\n :is-locked=\"isLocked\"\n :is-confidential=\"isConfidential\"\n :noteable-type=\"noteableType\"\n :locked-noteable-docs-path=\"noteableData.locked_discussion_docs_path\"\n :confidential-noteable-docs-path=\"noteableData.confidential_issues_docs_path\"\n />\n <slot></slot>\n <div\n v-if=\"hasWarningBelow\"\n class=\"-gl-mt-3 gl-rounded-lg gl-rounded-t-none gl-bg-orange-50 gl-pb-1 gl-pt-4 gl-text-orange-600\"\n >\n <div\n v-if=\"showConfidentialAttachmentWarning\"\n class=\"gl-border-b gl-border-b-white gl-px-4 gl-py-2 last:gl-border-none\"\n >\n {{ $options.i18n.confidentialAttachmentWarning }}\n </div>\n <div\n v-if=\"showAttachmentWarning\"\n class=\"gl-border-b gl-border-b-white gl-px-4 gl-py-2 last:gl-border-none\"\n >\n {{ $options.i18n.attachmentWarning }}\n </div>\n <email-participants-warning\n v-if=\"showEmailParticipantsWarning\"\n class=\"gl-px-4 gl-py-2\"\n :emails=\"emailParticipants\"\n />\n </div>\n </div>\n</template>\n","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!./comment_field_layout.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!./comment_field_layout.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./comment_field_layout.vue?vue&type=template&id=6cb782b2\"\nimport script from \"./comment_field_layout.vue?vue&type=script&lang=js\"\nexport * from \"./comment_field_layout.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-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-shrink-0\",attrs:{\"title\":_vm.confidentialTooltip,\"variant\":\"warning\"}},[_c('gl-icon',{attrs:{\"name\":\"eye-slash\",\"size\":16}}),_vm._v(\" \"),_c('span',{class:_vm.confidentialTextClass,attrs:{\"data-testid\":\"confidential-badge-text\"}},[_vm._v(_vm._s(_vm.__('Confidential')))])],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!./confidentiality_badge.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!./confidentiality_badge.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlTooltipDirective, GlIcon } from '@gitlab/ui';\nimport { confidentialityInfoText } from '../constants';\n\nexport default {\n components: {\n GlBadge,\n GlIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n workspaceType: {\n type: String,\n required: true,\n },\n issuableType: {\n type: String,\n required: true,\n },\n hideTextInSmallScreens: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n confidentialTooltip() {\n return confidentialityInfoText(this.workspaceType, this.issuableType);\n },\n confidentialTextClass() {\n return {\n 'gl-sr-only sm:gl-not-sr-only': this.hideTextInSmallScreens,\n '!gl-ml-2': true,\n };\n },\n },\n};\n</script>\n\n<template>\n <gl-badge v-gl-tooltip :title=\"confidentialTooltip\" variant=\"warning\" class=\"gl-shrink-0\">\n <gl-icon name=\"eye-slash\" :size=\"16\" />\n <span data-testid=\"confidential-badge-text\" :class=\"confidentialTextClass\">{{\n __('Confidential')\n }}</span>\n </gl-badge>\n</template>\n","import { render, staticRenderFns } from \"./confidentiality_badge.vue?vue&type=template&id=632da588\"\nimport script from \"./confidentiality_badge.vue?vue&type=script&lang=js\"\nexport * from \"./confidentiality_badge.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\":\"issueHealthStatus\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":192}};\n doc.loc.source = {\"body\":\"query issueHealthStatus($fullPath: ID!, $iid: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n healthStatus\\n state\\n }\\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[\"issueHealthStatus\"] = oneQuery(doc, \"issueHealthStatus\");\n \n","import namespaces from \"./namespaces\";\n\nexport default function(name) {\n var prefix = name += \"\", i = prefix.indexOf(\":\");\n if (i >= 0 && (prefix = name.slice(0, i)) !== \"xmlns\") name = name.slice(i + 1);\n return namespaces.hasOwnProperty(prefix) ? {space: namespaces[prefix], local: name} : name;\n}\n","// base dropdown events\nconst GL_DROPDOWN_SHOWN = 'shown';\nconst GL_DROPDOWN_HIDDEN = 'hidden';\nconst GL_DROPDOWN_BEFORE_CLOSE = 'beforeClose';\nconst GL_DROPDOWN_FOCUS_CONTENT = 'focusContent';\n\n// KEY Codes\nconst ARROW_DOWN = 'ArrowDown';\nconst ARROW_UP = 'ArrowUp';\nconst END = 'End';\nconst ENTER = 'Enter';\nconst HOME = 'Home';\nconst SPACE = 'Space';\n\n// Positioning strategies\n// https://floating-ui.com/docs/computePosition#strategy\nconst POSITION_ABSOLUTE = 'absolute';\nconst POSITION_FIXED = 'fixed';\nconst GL_DROPDOWN_CONTENTS_CLASS = 'gl-new-dropdown-contents';\n\nexport { ARROW_DOWN, ARROW_UP, END, ENTER, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_CONTENTS_CLASS, GL_DROPDOWN_FOCUS_CONTENT, GL_DROPDOWN_HIDDEN, GL_DROPDOWN_SHOWN, HOME, POSITION_ABSOLUTE, POSITION_FIXED, SPACE };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-drawer',{attrs:{\"header-height\":_vm.getDrawerHeaderHeight,\"z-index\":300,\"open\":_vm.showDrawer && _vm.mounted},on:{\"close\":_vm.closeDrawer},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('h2',{staticClass:\"gl-mb-0 gl-mt-0 gl-text-size-h2 gl-leading-24\",attrs:{\"data-testid\":\"category-drawer-title\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.title)+\"\\n \")])]},proxy:true},{key:\"default\",fn:function(){return [_c('gl-form',{staticClass:\"gl-text-left\",attrs:{\"action\":_vm.reportAbusePath,\"method\":\"post\"}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"authenticity_token\"},domProps:{\"value\":_vm.$options.csrf.token}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"user_id\",\"data-testid\":\"input-user-id\"},domProps:{\"value\":_vm.reportedUserId}}),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"abuse_report[reported_from_url]\",\"data-testid\":\"input-referer\"},domProps:{\"value\":_vm.reportedFromUrl}}),_vm._v(\" \"),_c('gl-form-group',{attrs:{\"label\":_vm.$options.i18n.label,\"label-class\":\"gl-text-default\"}},[_c('gl-form-radio-group',{attrs:{\"options\":_vm.$options.CATEGORY_OPTIONS,\"name\":\"abuse_report[category]\",\"required\":\"\"},model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})],1),_vm._v(\" \"),_c('gl-button',{attrs:{\"type\":\"submit\",\"variant\":\"confirm\",\"data-testid\":\"submit-form-button\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.next)+\"\\n \")])],1)]},proxy:true}])})\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!./abuse_category_selector.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!./abuse_category_selector.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlDrawer, GlForm, GlFormGroup, GlFormRadioGroup } from '@gitlab/ui';\nimport { getContentWrapperHeight } from '~/lib/utils/dom_utils';\nimport { s__, __ } from '~/locale';\nimport csrf from '~/lib/utils/csrf';\nimport { CATEGORY_OPTIONS } from '~/abuse_reports/components/constants';\n\nexport default {\n name: 'AbuseCategorySelector',\n csrf,\n components: {\n GlButton,\n GlDrawer,\n GlForm,\n GlFormGroup,\n GlFormRadioGroup,\n },\n inject: {\n reportAbusePath: {\n default: '',\n },\n },\n props: {\n reportedUserId: {\n type: Number,\n required: true,\n },\n reportedFromUrl: {\n type: String,\n required: false,\n default: '',\n },\n showDrawer: {\n type: Boolean,\n required: true,\n },\n },\n i18n: {\n title: __('Report abuse to administrator'),\n close: __('Close'),\n label: s__('ReportAbuse|Why are you reporting this user?'),\n next: __('Next'),\n },\n CATEGORY_OPTIONS,\n data() {\n return {\n selected: '',\n mounted: false,\n };\n },\n computed: {\n getDrawerHeaderHeight() {\n // avoid calculating this in advance because it causes layout thrashing\n // https://gitlab.com/gitlab-org/gitlab/-/issues/331172#note_1269378396\n if (!this.showDrawer) return '0';\n return getContentWrapperHeight();\n },\n },\n mounted() {\n // this is required for the component to properly animate\n // when it is shown with v-if\n this.mounted = true;\n },\n methods: {\n closeDrawer() {\n this.$emit('close-drawer');\n },\n },\n};\n</script>\n<template>\n <gl-drawer\n :header-height=\"getDrawerHeaderHeight\"\n :z-index=\"300\"\n :open=\"showDrawer && mounted\"\n @close=\"closeDrawer\"\n >\n <template #title>\n <h2 class=\"gl-mb-0 gl-mt-0 gl-text-size-h2 gl-leading-24\" data-testid=\"category-drawer-title\">\n {{ $options.i18n.title }}\n </h2>\n </template>\n <template #default>\n <gl-form :action=\"reportAbusePath\" method=\"post\" class=\"gl-text-left\">\n <input :value=\"$options.csrf.token\" type=\"hidden\" name=\"authenticity_token\" />\n\n <input type=\"hidden\" name=\"user_id\" :value=\"reportedUserId\" data-testid=\"input-user-id\" />\n <input\n type=\"hidden\"\n name=\"abuse_report[reported_from_url]\"\n :value=\"reportedFromUrl\"\n data-testid=\"input-referer\"\n />\n\n <gl-form-group :label=\"$options.i18n.label\" label-class=\"gl-text-default\">\n <gl-form-radio-group\n v-model=\"selected\"\n :options=\"$options.CATEGORY_OPTIONS\"\n name=\"abuse_report[category]\"\n required\n />\n </gl-form-group>\n\n <gl-button type=\"submit\" variant=\"confirm\" data-testid=\"submit-form-button\">\n {{ $options.i18n.next }}\n </gl-button>\n </gl-form>\n </template>\n </gl-drawer>\n</template>\n","import { render, staticRenderFns } from \"./abuse_category_selector.vue?vue&type=template&id=4bfeb9fb\"\nimport script from \"./abuse_category_selector.vue?vue&type=script&lang=js\"\nexport * from \"./abuse_category_selector.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 Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"snakeCaseNote\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NoteID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"note\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"author\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"avatar_url\"},\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"web_url\"},\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"web_path\"},\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"body_html\"},\"name\":{\"kind\":\"Name\",\"value\":\"bodyHtml\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"created_at\"},\"name\":{\"kind\":\"Name\",\"value\":\"createdAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"last_edited_at\"},\"name\":{\"kind\":\"Name\",\"value\":\"lastEditedAt\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"last_edited_by\"},\"name\":{\"kind\":\"Name\",\"value\":\"lastEditedBy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"avatar_url\"},\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"web_url\"},\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"web_path\"},\"name\":{\"kind\":\"Name\",\"value\":\"webPath\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"internal\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"url\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":449}};\n doc.loc.source = {\"body\":\"query snakeCaseNote($id: NoteID!) {\\n note(id: $id) {\\n id\\n author {\\n id\\n avatar_url: avatarUrl\\n name\\n username\\n web_url: webUrl\\n web_path: webPath\\n }\\n body_html: bodyHtml\\n created_at: createdAt\\n last_edited_at: lastEditedAt\\n last_edited_by: lastEditedBy {\\n id\\n avatar_url: avatarUrl\\n name\\n username\\n web_url: webUrl\\n web_path: webPath\\n }\\n internal\\n url\\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[\"snakeCaseNote\"] = oneQuery(doc, \"snakeCaseNote\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('button',{staticClass:\"gl-flex gl-items-center gl-justify-center gl-text-sm\",class:{\n 'comment-indicator gl-border-0 gl-bg-transparent': _vm.isNewNote,\n 'js-image-badge design-note-pin': !_vm.isNewNote,\n resolved: _vm.isResolved,\n inactive: _vm.isInactive,\n draft: _vm.isDraft,\n 'on-image': _vm.isOnImage,\n 'gl-absolute': _vm.position,\n small: _vm.size === 'sm',\n },style:(_vm.position),attrs:{\"aria-label\":_vm.pinLabel,\"type\":\"button\"},on:{\"mousedown\":function($event){return _vm.$emit('mousedown', $event)},\"mouseup\":function($event){return _vm.$emit('mouseup', $event)},\"click\":function($event){return _vm.$emit('click', $event)}}},[(_vm.isNewNote)?_c('gl-icon',{staticClass:\"gl-rounded-full gl-border-2 gl-border-solid gl-border-white gl-bg-white\",attrs:{\"name\":\"image-comment-dark\",\"size\":24}}):[_vm._v(\"\\n \"+_vm._s(_vm.label)+\"\\n \")]],2)\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!./design_note_pin.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!./design_note_pin.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n name: 'DesignNotePin',\n components: {\n GlIcon,\n },\n props: {\n position: {\n type: Object,\n required: false,\n default: null,\n },\n label: {\n type: Number,\n required: false,\n default: null,\n },\n isResolved: {\n type: Boolean,\n required: false,\n default: false,\n },\n isInactive: {\n type: Boolean,\n required: false,\n default: false,\n },\n isOnImage: {\n type: Boolean,\n required: false,\n default: false,\n },\n isDraft: {\n type: Boolean,\n required: false,\n default: false,\n },\n size: {\n type: String,\n required: false,\n default: 'md',\n validator: (value) => ['sm', 'md'].includes(value),\n },\n ariaLabel: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n isNewNote() {\n return this.label === null;\n },\n pinLabel() {\n if (this.ariaLabel) {\n return this.ariaLabel;\n }\n\n return this.isNewNote\n ? __('Comment form position')\n : sprintf(__(\"Comment '%{label}' position\"), { label: this.label });\n },\n },\n};\n</script>\n\n<template>\n <button\n :style=\"position\"\n :aria-label=\"pinLabel\"\n :class=\"{\n 'comment-indicator gl-border-0 gl-bg-transparent': isNewNote,\n 'js-image-badge design-note-pin': !isNewNote,\n resolved: isResolved,\n inactive: isInactive,\n draft: isDraft,\n 'on-image': isOnImage,\n 'gl-absolute': position,\n small: size === 'sm',\n }\"\n class=\"gl-flex gl-items-center gl-justify-center gl-text-sm\"\n type=\"button\"\n @mousedown=\"$emit('mousedown', $event)\"\n @mouseup=\"$emit('mouseup', $event)\"\n @click=\"$emit('click', $event)\"\n >\n <gl-icon\n v-if=\"isNewNote\"\n name=\"image-comment-dark\"\n :size=\"24\"\n class=\"gl-rounded-full gl-border-2 gl-border-solid gl-border-white gl-bg-white\"\n />\n <template v-else>\n {{ label }}\n </template>\n </button>\n</template>\n","import { render, staticRenderFns } from \"./design_note_pin.vue?vue&type=template&id=4941d232\"\nimport script from \"./design_note_pin.vue?vue&type=script&lang=js\"\nexport * from \"./design_note_pin.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\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueUpdateParent\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemUpdateInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAttribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"workItemUpdate\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":342}};\n doc.loc.source = {\"body\":\"mutation projectIssueUpdateParent($input: WorkItemUpdateInput!) {\\n issuableSetAttribute: workItemUpdate(input: $input) {\\n workItem {\\n id\\n widgets {\\n ... on WorkItemWidgetHierarchy {\\n type\\n parent {\\n id\\n title\\n webUrl\\n }\\n }\\n }\\n }\\n errors\\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[\"projectIssueUpdateParent\"] = oneQuery(doc, \"projectIssueUpdateParent\");\n \n","var baseFindIndex = require('./_baseFindIndex'),\n baseIteratee = require('./_baseIteratee'),\n toInteger = require('./toInteger');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\nfunction findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, baseIteratee(predicate, 3), index, true);\n}\n\nmodule.exports = findLastIndex;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.identityVerificationRequired && _vm.isVisible)?_c('gl-alert',{attrs:{\"title\":_vm.title,\"primary-button-text\":_vm.$options.i18n.buttonText,\"primary-button-link\":_vm.identityVerificationPath,\"variant\":\"danger\"},on:{\"dismiss\":_vm.dismissAlert}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.description)+\"\\n\")]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlAlert } from '@gitlab/ui';\nimport { s__ } from '~/locale';\n\nconst DEFAULT_TITLE = s__(\n 'IdentityVerification|Before you can run pipelines, we need to verify your account.',\n);\n\nexport default {\n components: { GlAlert },\n i18n: {\n title: DEFAULT_TITLE,\n description: s__(\n `IdentityVerification|We won't ask you for this information again. It will never be used for marketing purposes.`,\n ),\n buttonText: s__('IdentityVerification|Verify my account'),\n },\n inject: ['identityVerificationRequired', 'identityVerificationPath'],\n props: {\n title: {\n type: String,\n required: false,\n default: DEFAULT_TITLE,\n },\n },\n data() {\n return {\n isVisible: true,\n };\n },\n methods: {\n dismissAlert() {\n this.isVisible = false;\n },\n },\n};\n</script>\n\n<template>\n <gl-alert\n v-if=\"identityVerificationRequired && isVisible\"\n :title=\"title\"\n :primary-button-text=\"$options.i18n.buttonText\"\n :primary-button-link=\"identityVerificationPath\"\n variant=\"danger\"\n @dismiss=\"dismissAlert\"\n >\n {{ $options.i18n.description }}\n </gl-alert>\n</template>\n","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!./pipeline_account_verification_alert.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!./pipeline_account_verification_alert.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./pipeline_account_verification_alert.vue?vue&type=template&id=0eb1d98f\"\nimport script from \"./pipeline_account_verification_alert.vue?vue&type=script&lang=js\"\nexport * from \"./pipeline_account_verification_alert.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('span',{staticClass:\"gl-contents\"},[_c('status-badge',{staticClass:\"gl-mr-2 gl-self-center\",attrs:{\"issuable-type\":_vm.$options.TYPE_MERGE_REQUEST,\"state\":_vm.state}}),_vm._v(\" \"),(_vm.isConfidential)?_c('confidentiality-badge',{staticClass:\"gl-mr-2 gl-self-center\",attrs:{\"issuable-type\":_vm.$options.TYPE_ISSUE,\"workspace-type\":_vm.$options.WORKSPACE_PROJECT}}):_vm._e(),_vm._v(\" \"),(_vm.isLocked)?_c('locked-badge',{staticClass:\"gl-mr-2 gl-self-center\",attrs:{\"issuable-type\":_vm.$options.TYPE_MERGE_REQUEST}}):_vm._e(),_vm._v(\" \"),(_vm.hidden)?_c('hidden-badge',{staticClass:\"gl-mr-2 gl-self-center\",attrs:{\"issuable-type\":_vm.$options.TYPE_MERGE_REQUEST}}):_vm._e(),_vm._v(\" \"),(_vm.isImported)?_c('imported-badge',{staticClass:\"gl-mr-2 gl-self-center\",attrs:{\"importable-type\":_vm.$options.TYPE_MERGE_REQUEST}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters } from 'vuex';\nimport HiddenBadge from '~/issuable/components/hidden_badge.vue';\nimport LockedBadge from '~/issuable/components/locked_badge.vue';\nimport StatusBadge from '~/issuable/components/status_badge.vue';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { fetchPolicies } from '~/lib/graphql';\nimport ConfidentialityBadge from '~/vue_shared/components/confidentiality_badge.vue';\nimport ImportedBadge from '~/vue_shared/components/imported_badge.vue';\n\nexport const badgeState = Vue.observable({\n state: '',\n updateStatus: null,\n});\n\nexport default {\n TYPE_ISSUE,\n TYPE_MERGE_REQUEST,\n WORKSPACE_PROJECT,\n components: {\n ConfidentialityBadge,\n LockedBadge,\n HiddenBadge,\n ImportedBadge,\n StatusBadge,\n },\n inject: {\n query: { default: null },\n projectPath: { default: null },\n hidden: { default: false },\n iid: { default: null },\n },\n props: {\n initialState: {\n type: String,\n required: false,\n default: null,\n },\n isImported: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n if (!this.iid) {\n return {\n state: this.initialState,\n };\n }\n\n if (!badgeState.state && this.initialState) {\n badgeState.state = this.initialState;\n }\n\n return badgeState;\n },\n computed: {\n ...mapGetters(['getNoteableData']),\n isLocked() {\n return this.getNoteableData.discussion_locked;\n },\n isConfidential() {\n return this.getNoteableData.confidential;\n },\n },\n created() {\n if (!badgeState.updateStatus) {\n badgeState.updateStatus = this.fetchState;\n }\n },\n beforeDestroy() {\n if (badgeState.updateStatus && this.query) {\n badgeState.updateStatus = null;\n }\n },\n methods: {\n async fetchState() {\n const { data } = await this.$apollo.query({\n query: this.query,\n variables: {\n projectPath: this.projectPath,\n iid: this.iid,\n },\n fetchPolicy: fetchPolicies.NO_CACHE,\n });\n\n badgeState.state = data?.workspace?.issuable?.state;\n },\n },\n};\n</script>\n\n<template>\n <span class=\"gl-contents\">\n <status-badge\n class=\"gl-mr-2 gl-self-center\"\n :issuable-type=\"$options.TYPE_MERGE_REQUEST\"\n :state=\"state\"\n />\n <confidentiality-badge\n v-if=\"isConfidential\"\n class=\"gl-mr-2 gl-self-center\"\n :issuable-type=\"$options.TYPE_ISSUE\"\n :workspace-type=\"$options.WORKSPACE_PROJECT\"\n />\n <locked-badge\n v-if=\"isLocked\"\n class=\"gl-mr-2 gl-self-center\"\n :issuable-type=\"$options.TYPE_MERGE_REQUEST\"\n />\n <hidden-badge\n v-if=\"hidden\"\n class=\"gl-mr-2 gl-self-center\"\n :issuable-type=\"$options.TYPE_MERGE_REQUEST\"\n />\n <imported-badge\n v-if=\"isImported\"\n class=\"gl-mr-2 gl-self-center\"\n :importable-type=\"$options.TYPE_MERGE_REQUEST\"\n />\n </span>\n</template>\n","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!./merge_request_header.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!./merge_request_header.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./merge_request_header.vue?vue&type=template&id=38b59f51\"\nimport script from \"./merge_request_header.vue?vue&type=script&lang=js\"\nexport * from \"./merge_request_header.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","'use strict';\n\n\nfunction isNothing(subject) {\n return (typeof subject === 'undefined') || (subject === null);\n}\n\n\nfunction isObject(subject) {\n return (typeof subject === 'object') && (subject !== null);\n}\n\n\nfunction toArray(sequence) {\n if (Array.isArray(sequence)) return sequence;\n else if (isNothing(sequence)) return [];\n\n return [ sequence ];\n}\n\n\nfunction extend(target, source) {\n var index, length, key, sourceKeys;\n\n if (source) {\n sourceKeys = Object.keys(source);\n\n for (index = 0, length = sourceKeys.length; index < length; index += 1) {\n key = sourceKeys[index];\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\n\nfunction repeat(string, count) {\n var result = '', cycle;\n\n for (cycle = 0; cycle < count; cycle += 1) {\n result += string;\n }\n\n return result;\n}\n\n\nfunction isNegativeZero(number) {\n return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number);\n}\n\n\nmodule.exports.isNothing = isNothing;\nmodule.exports.isObject = isObject;\nmodule.exports.toArray = toArray;\nmodule.exports.repeat = repeat;\nmodule.exports.isNegativeZero = isNegativeZero;\nmodule.exports.extend = extend;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-dropdown-widget',{attrs:{\"attr-workspace-path\":_vm.attrWorkspacePath,\"iid\":_vm.iid,\"issuable-attribute\":_vm.$options.issuableAttribute,\"issuable-type\":_vm.issuableType,\"workspace-path\":_vm.workspacePath,\"issue-id\":_vm.issueId},on:{\"attribute-updated\":function($event){return _vm.$emit('iteration-updated', $event)}},scopedSlots:_vm._u([{key:\"value\",fn:function({ attributeUrl, currentAttribute }){return [_c('p',{staticClass:\"gl-font-size-sm gl-line-height-21 gl-my-1 gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.getCadenceTitle(currentAttribute))+\"\\n \")]),_vm._v(\" \"),_c('gl-link',{staticClass:\"gl-leading-20 !gl-text-default\",attrs:{\"href\":attributeUrl,\"data-testid\":\"iteration-link\"}},[_c('div',[_c('gl-icon',{staticClass:\"gl-mr-1\",attrs:{\"name\":\"iteration\"}}),_vm._v(\"\\n \"+_vm._s(_vm.getIterationPeriod(currentAttribute))+\"\\n \")],1),_vm._v(\" \"),(currentAttribute.title)?_c('iteration-title',{attrs:{\"title\":currentAttribute.title}}):_vm._e()],1)]}},{key:\"value-collapsed\",fn:function({ currentAttribute }){return [(currentAttribute)?_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.__('Iteration')}},[_c('gl-icon',{attrs:{\"aria-label\":_vm.__('Iteration'),\"name\":\"iteration\"}}),_vm._v(\" \"),_c('span',{staticClass:\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.getIterationPeriod(currentAttribute))+\"\\n \")])],1):_vm._e()]}},{key:\"list\",fn:function({ attributesList = [], isAttributeChecked, updateAttribute }){return [_vm._l((_vm.groupByIterationCadences(attributesList)),function(cadence,index){return [(index !== 0)?_c('gl-dropdown-divider',{key:index}):_vm._e(),_vm._v(\" \"),_c('gl-dropdown-section-header',{key:cadence.title,attrs:{\"data-testid\":\"cadence-title\"}},[_vm._v(\"\\n \"+_vm._s(cadence.title)+\"\\n \")]),_vm._v(\" \"),_vm._l((cadence.iterations),function(iteration){return _c('gl-dropdown-item',{key:iteration.id,attrs:{\"is-check-item\":\"\",\"is-checked\":isAttributeChecked(iteration.id),\"data-testid\":`${_vm.$options.issuableAttribute}-items`},on:{\"click\":function($event){return updateAttribute(iteration)}}},[_vm._v(\"\\n \"+_vm._s(iteration.period)+\"\\n \"),(iteration.title)?_c('iteration-title',{attrs:{\"title\":iteration.title}}):_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!./sidebar_iteration_widget.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!./sidebar_iteration_widget.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlDropdownDivider,\n GlDropdownItem,\n GlDropdownSectionHeader,\n GlIcon,\n GlLink,\n GlTooltipDirective,\n} from '@gitlab/ui';\nimport IterationTitle from 'ee/iterations/components/iteration_title.vue';\nimport { getIterationPeriod, groupByIterationCadences } from 'ee/iterations/utils';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { IssuableAttributeType } from '../../constants';\nimport SidebarDropdownWidget from '../sidebar_dropdown_widget.vue';\n\nexport default {\n issuableAttribute: IssuableAttributeType.Iteration,\n components: {\n GlDropdownDivider,\n GlDropdownItem,\n GlDropdownSectionHeader,\n GlIcon,\n GlLink,\n SidebarDropdownWidget,\n IterationTitle,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n attrWorkspacePath: {\n required: true,\n type: String,\n },\n iid: {\n required: true,\n type: String,\n },\n issuableType: {\n type: String,\n required: true,\n validator(value) {\n return value === TYPE_ISSUE;\n },\n },\n workspacePath: {\n required: true,\n type: String,\n },\n issueId: {\n required: false,\n type: String,\n default: '',\n },\n },\n methods: {\n getCadenceTitle(currentIteration) {\n return currentIteration?.iterationCadence?.title;\n },\n groupByIterationCadences,\n getIterationPeriod,\n },\n};\n</script>\n\n<template>\n <sidebar-dropdown-widget\n :attr-workspace-path=\"attrWorkspacePath\"\n :iid=\"iid\"\n :issuable-attribute=\"$options.issuableAttribute\"\n :issuable-type=\"issuableType\"\n :workspace-path=\"workspacePath\"\n :issue-id=\"issueId\"\n @attribute-updated=\"$emit('iteration-updated', $event)\"\n >\n <template #value=\"{ attributeUrl, currentAttribute }\">\n <p class=\"gl-font-size-sm gl-line-height-21 gl-my-1 gl-text-subtle\">\n {{ getCadenceTitle(currentAttribute) }}\n </p>\n <gl-link\n class=\"gl-leading-20 !gl-text-default\"\n :href=\"attributeUrl\"\n data-testid=\"iteration-link\"\n >\n <div>\n <gl-icon name=\"iteration\" class=\"gl-mr-1\" />\n {{ getIterationPeriod(currentAttribute) }}\n </div>\n <iteration-title v-if=\"currentAttribute.title\" :title=\"currentAttribute.title\" />\n </gl-link>\n </template>\n <template #value-collapsed=\"{ currentAttribute }\">\n <div\n v-if=\"currentAttribute\"\n v-gl-tooltip.left.viewport\n :title=\"__('Iteration')\"\n class=\"sidebar-collapsed-icon\"\n >\n <gl-icon :aria-label=\"__('Iteration')\" name=\"iteration\" />\n <span class=\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\">\n {{ getIterationPeriod(currentAttribute) }}\n </span>\n </div>\n </template>\n <template #list=\"{ attributesList = [], isAttributeChecked, updateAttribute }\">\n <template v-for=\"(cadence, index) in groupByIterationCadences(attributesList)\">\n <gl-dropdown-divider v-if=\"index !== 0\" :key=\"index\" />\n <gl-dropdown-section-header :key=\"cadence.title\" data-testid=\"cadence-title\">\n {{ cadence.title }}\n </gl-dropdown-section-header>\n <gl-dropdown-item\n v-for=\"iteration in cadence.iterations\"\n :key=\"iteration.id\"\n is-check-item\n :is-checked=\"isAttributeChecked(iteration.id)\"\n :data-testid=\"`${$options.issuableAttribute}-items`\"\n @click=\"updateAttribute(iteration)\"\n >\n {{ iteration.period }}\n <iteration-title v-if=\"iteration.title\" :title=\"iteration.title\" />\n </gl-dropdown-item>\n </template>\n </template>\n </sidebar-dropdown-widget>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_iteration_widget.vue?vue&type=template&id=5dc1eb92\"\nimport script from \"./sidebar_iteration_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_iteration_widget.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 GlBaseAnimatedIcon from './base_animated_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlAnimatedSmileIcon',\n extends: GlBaseAnimatedIcon\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('svg',{class:_vm.iconStateClass,attrs:{\"aria-label\":_vm.ariaLabel,\"width\":\"16\",\"height\":\"16\",\"viewBox\":\"0 0 16 16\",\"fill\":\"none\",\"xmlns\":\"http://www.w3.org/2000/svg\"}},[_c('g',{staticClass:\"gl-animated-smile-eyes\"},[_c('circle',{attrs:{\"cy\":\"7\",\"cx\":\"6\",\"r\":\"0.5\"}}),_vm._v(\" \"),_c('circle',{attrs:{\"cy\":\"7\",\"cx\":\"10\",\"r\":\"0.5\"}})]),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-smile-big-smile\",attrs:{\"d\":\"M8 12C9.65685 12 11 10.6569 11 9H5C5 10.6569 6.34315 12 8 12Z\",\"fill\":\"currentColor\"}}),_vm._v(\" \"),_c('path',{staticClass:\"gl-animated-smile-slight-smile\",attrs:{\"d\":\"M6.3 10C6.46667 10.3333 7 11 8 11C9 11 9.53333 10.3333 9.7 10\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\",\"stroke-linecap\":\"round\"}}),_vm._v(\" \"),_c('circle',{attrs:{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"7.25\",\"stroke\":\"currentColor\",\"stroke-width\":\"1.5\"}})])};\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 { rectToClientRect, computePosition as computePosition$1 } from '@floating-ui/core';\nexport { arrow, autoPlacement, detectOverflow, flip, hide, inline, limitShift, offset, shift, size } from '@floating-ui/core';\n\nfunction getWindow(node) {\n var _node$ownerDocument;\n return ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.defaultView) || window;\n}\n\nfunction getComputedStyle$1(element) {\n return getWindow(element).getComputedStyle(element);\n}\n\nfunction isNode(value) {\n return value instanceof getWindow(value).Node;\n}\nfunction getNodeName(node) {\n if (isNode(node)) {\n return (node.nodeName || '').toLowerCase();\n }\n // Mocked nodes in testing environments may not be instances of Node. By\n // returning `#document` an infinite loop won't occur.\n // https://github.com/floating-ui/floating-ui/issues/2317\n return '#document';\n}\n\nfunction isHTMLElement(value) {\n return value instanceof getWindow(value).HTMLElement;\n}\nfunction isElement(value) {\n return value instanceof getWindow(value).Element;\n}\nfunction isShadowRoot(node) {\n // Browsers without `ShadowRoot` support.\n if (typeof ShadowRoot === 'undefined') {\n return false;\n }\n return node instanceof getWindow(node).ShadowRoot || node instanceof ShadowRoot;\n}\nfunction isOverflowElement(element) {\n const {\n overflow,\n overflowX,\n overflowY,\n display\n } = getComputedStyle$1(element);\n return /auto|scroll|overlay|hidden|clip/.test(overflow + overflowY + overflowX) && !['inline', 'contents'].includes(display);\n}\nfunction isTableElement(element) {\n return ['table', 'td', 'th'].includes(getNodeName(element));\n}\nfunction isContainingBlock(element) {\n const safari = isSafari();\n const css = getComputedStyle$1(element);\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n return css.transform !== 'none' || css.perspective !== 'none' || (css.containerType ? css.containerType !== 'normal' : false) || !safari && (css.backdropFilter ? css.backdropFilter !== 'none' : false) || !safari && (css.filter ? css.filter !== 'none' : false) || ['transform', 'perspective', 'filter'].some(value => (css.willChange || '').includes(value)) || ['paint', 'layout', 'strict', 'content'].some(value => (css.contain || '').includes(value));\n}\nfunction isSafari() {\n if (typeof CSS === 'undefined' || !CSS.supports) return false;\n return CSS.supports('-webkit-backdrop-filter', 'none');\n}\nfunction isLastTraversableNode(node) {\n return ['html', 'body', '#document'].includes(getNodeName(node));\n}\n\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createEmptyCoords = v => ({\n x: v,\n y: v\n});\n\nfunction getCssDimensions(element) {\n const css = getComputedStyle$1(element);\n // In testing environments, the `width` and `height` properties are empty\n // strings for SVG elements, returning NaN. Fallback to `0` in this case.\n let width = parseFloat(css.width) || 0;\n let height = parseFloat(css.height) || 0;\n const hasOffset = isHTMLElement(element);\n const offsetWidth = hasOffset ? element.offsetWidth : width;\n const offsetHeight = hasOffset ? element.offsetHeight : height;\n const shouldFallback = round(width) !== offsetWidth || round(height) !== offsetHeight;\n if (shouldFallback) {\n width = offsetWidth;\n height = offsetHeight;\n }\n return {\n width,\n height,\n $: shouldFallback\n };\n}\n\nfunction unwrapElement(element) {\n return !isElement(element) ? element.contextElement : element;\n}\n\nfunction getScale(element) {\n const domElement = unwrapElement(element);\n if (!isHTMLElement(domElement)) {\n return createEmptyCoords(1);\n }\n const rect = domElement.getBoundingClientRect();\n const {\n width,\n height,\n $\n } = getCssDimensions(domElement);\n let x = ($ ? round(rect.width) : rect.width) / width;\n let y = ($ ? round(rect.height) : rect.height) / height;\n\n // 0, NaN, or Infinity should always fallback to 1.\n\n if (!x || !Number.isFinite(x)) {\n x = 1;\n }\n if (!y || !Number.isFinite(y)) {\n y = 1;\n }\n return {\n x,\n y\n };\n}\n\nconst noOffsets = /*#__PURE__*/createEmptyCoords(0);\nfunction getVisualOffsets(element, isFixed, floatingOffsetParent) {\n var _win$visualViewport, _win$visualViewport2;\n if (isFixed === void 0) {\n isFixed = true;\n }\n if (!isSafari()) {\n return noOffsets;\n }\n const win = element ? getWindow(element) : window;\n if (!floatingOffsetParent || isFixed && floatingOffsetParent !== win) {\n return noOffsets;\n }\n return {\n x: ((_win$visualViewport = win.visualViewport) == null ? void 0 : _win$visualViewport.offsetLeft) || 0,\n y: ((_win$visualViewport2 = win.visualViewport) == null ? void 0 : _win$visualViewport2.offsetTop) || 0\n };\n}\n\nfunction getBoundingClientRect(element, includeScale, isFixedStrategy, offsetParent) {\n if (includeScale === void 0) {\n includeScale = false;\n }\n if (isFixedStrategy === void 0) {\n isFixedStrategy = false;\n }\n const clientRect = element.getBoundingClientRect();\n const domElement = unwrapElement(element);\n let scale = createEmptyCoords(1);\n if (includeScale) {\n if (offsetParent) {\n if (isElement(offsetParent)) {\n scale = getScale(offsetParent);\n }\n } else {\n scale = getScale(element);\n }\n }\n const visualOffsets = getVisualOffsets(domElement, isFixedStrategy, offsetParent);\n let x = (clientRect.left + visualOffsets.x) / scale.x;\n let y = (clientRect.top + visualOffsets.y) / scale.y;\n let width = clientRect.width / scale.x;\n let height = clientRect.height / scale.y;\n if (domElement) {\n const win = getWindow(domElement);\n const offsetWin = offsetParent && isElement(offsetParent) ? getWindow(offsetParent) : offsetParent;\n let currentIFrame = win.frameElement;\n while (currentIFrame && offsetParent && offsetWin !== win) {\n const iframeScale = getScale(currentIFrame);\n const iframeRect = currentIFrame.getBoundingClientRect();\n const css = getComputedStyle(currentIFrame);\n const left = iframeRect.left + (currentIFrame.clientLeft + parseFloat(css.paddingLeft)) * iframeScale.x;\n const top = iframeRect.top + (currentIFrame.clientTop + parseFloat(css.paddingTop)) * iframeScale.y;\n x *= iframeScale.x;\n y *= iframeScale.y;\n width *= iframeScale.x;\n height *= iframeScale.y;\n x += left;\n y += top;\n currentIFrame = getWindow(currentIFrame).frameElement;\n }\n }\n return rectToClientRect({\n width,\n height,\n x,\n y\n });\n}\n\nfunction getDocumentElement(node) {\n return ((isNode(node) ? node.ownerDocument : node.document) || window.document).documentElement;\n}\n\nfunction getNodeScroll(element) {\n if (isElement(element)) {\n return {\n scrollLeft: element.scrollLeft,\n scrollTop: element.scrollTop\n };\n }\n return {\n scrollLeft: element.pageXOffset,\n scrollTop: element.pageYOffset\n };\n}\n\nfunction convertOffsetParentRelativeRectToViewportRelativeRect(_ref) {\n let {\n rect,\n offsetParent,\n strategy\n } = _ref;\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n if (offsetParent === documentElement) {\n return rect;\n }\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n let scale = createEmptyCoords(1);\n const offsets = createEmptyCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && strategy !== 'fixed') {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent);\n scale = getScale(offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n }\n }\n return {\n width: rect.width * scale.x,\n height: rect.height * scale.y,\n x: rect.x * scale.x - scroll.scrollLeft * scale.x + offsets.x,\n y: rect.y * scale.y - scroll.scrollTop * scale.y + offsets.y\n };\n}\n\nfunction getWindowScrollBarX(element) {\n // If <html> has a CSS width greater than the viewport, then this will be\n // incorrect for RTL.\n return getBoundingClientRect(getDocumentElement(element)).left + getNodeScroll(element).scrollLeft;\n}\n\n// Gets the entire size of the scrollable document area, even extending outside\n// of the `<html>` and `<body>` rect bounds if horizontally scrollable.\nfunction getDocumentRect(element) {\n const html = getDocumentElement(element);\n const scroll = getNodeScroll(element);\n const body = element.ownerDocument.body;\n const width = max(html.scrollWidth, html.clientWidth, body.scrollWidth, body.clientWidth);\n const height = max(html.scrollHeight, html.clientHeight, body.scrollHeight, body.clientHeight);\n let x = -scroll.scrollLeft + getWindowScrollBarX(element);\n const y = -scroll.scrollTop;\n if (getComputedStyle$1(body).direction === 'rtl') {\n x += max(html.clientWidth, body.clientWidth) - width;\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\nfunction getParentNode(node) {\n if (getNodeName(node) === 'html') {\n return node;\n }\n const result =\n // Step into the shadow DOM of the parent of a slotted node.\n node.assignedSlot ||\n // DOM Element detected.\n node.parentNode ||\n // ShadowRoot detected.\n isShadowRoot(node) && node.host ||\n // Fallback.\n getDocumentElement(node);\n return isShadowRoot(result) ? result.host : result;\n}\n\nfunction getNearestOverflowAncestor(node) {\n const parentNode = getParentNode(node);\n if (isLastTraversableNode(parentNode)) {\n return node.ownerDocument ? node.ownerDocument.body : node.body;\n }\n if (isHTMLElement(parentNode) && isOverflowElement(parentNode)) {\n return parentNode;\n }\n return getNearestOverflowAncestor(parentNode);\n}\n\nfunction getOverflowAncestors(node, list) {\n var _node$ownerDocument;\n if (list === void 0) {\n list = [];\n }\n const scrollableAncestor = getNearestOverflowAncestor(node);\n const isBody = scrollableAncestor === ((_node$ownerDocument = node.ownerDocument) == null ? void 0 : _node$ownerDocument.body);\n const win = getWindow(scrollableAncestor);\n if (isBody) {\n return list.concat(win, win.visualViewport || [], isOverflowElement(scrollableAncestor) ? scrollableAncestor : []);\n }\n return list.concat(scrollableAncestor, getOverflowAncestors(scrollableAncestor));\n}\n\nfunction getViewportRect(element, strategy) {\n const win = getWindow(element);\n const html = getDocumentElement(element);\n const visualViewport = win.visualViewport;\n let width = html.clientWidth;\n let height = html.clientHeight;\n let x = 0;\n let y = 0;\n if (visualViewport) {\n width = visualViewport.width;\n height = visualViewport.height;\n const visualViewportBased = isSafari();\n if (!visualViewportBased || visualViewportBased && strategy === 'fixed') {\n x = visualViewport.offsetLeft;\n y = visualViewport.offsetTop;\n }\n }\n return {\n width,\n height,\n x,\n y\n };\n}\n\n// Returns the inner client rect, subtracting scrollbars if present.\nfunction getInnerBoundingClientRect(element, strategy) {\n const clientRect = getBoundingClientRect(element, true, strategy === 'fixed');\n const top = clientRect.top + element.clientTop;\n const left = clientRect.left + element.clientLeft;\n const scale = isHTMLElement(element) ? getScale(element) : createEmptyCoords(1);\n const width = element.clientWidth * scale.x;\n const height = element.clientHeight * scale.y;\n const x = left * scale.x;\n const y = top * scale.y;\n return {\n width,\n height,\n x,\n y\n };\n}\nfunction getClientRectFromClippingAncestor(element, clippingAncestor, strategy) {\n let rect;\n if (clippingAncestor === 'viewport') {\n rect = getViewportRect(element, strategy);\n } else if (clippingAncestor === 'document') {\n rect = getDocumentRect(getDocumentElement(element));\n } else if (isElement(clippingAncestor)) {\n rect = getInnerBoundingClientRect(clippingAncestor, strategy);\n } else {\n const visualOffsets = getVisualOffsets(element);\n rect = {\n ...clippingAncestor,\n x: clippingAncestor.x - visualOffsets.x,\n y: clippingAncestor.y - visualOffsets.y\n };\n }\n return rectToClientRect(rect);\n}\nfunction hasFixedPositionAncestor(element, stopNode) {\n const parentNode = getParentNode(element);\n if (parentNode === stopNode || !isElement(parentNode) || isLastTraversableNode(parentNode)) {\n return false;\n }\n return getComputedStyle$1(parentNode).position === 'fixed' || hasFixedPositionAncestor(parentNode, stopNode);\n}\n\n// A \"clipping ancestor\" is an `overflow` element with the characteristic of\n// clipping (or hiding) child elements. This returns all clipping ancestors\n// of the given element up the tree.\nfunction getClippingElementAncestors(element, cache) {\n const cachedResult = cache.get(element);\n if (cachedResult) {\n return cachedResult;\n }\n let result = getOverflowAncestors(element).filter(el => isElement(el) && getNodeName(el) !== 'body');\n let currentContainingBlockComputedStyle = null;\n const elementIsFixed = getComputedStyle$1(element).position === 'fixed';\n let currentNode = elementIsFixed ? getParentNode(element) : element;\n\n // https://developer.mozilla.org/en-US/docs/Web/CSS/Containing_block#identifying_the_containing_block\n while (isElement(currentNode) && !isLastTraversableNode(currentNode)) {\n const computedStyle = getComputedStyle$1(currentNode);\n const currentNodeIsContaining = isContainingBlock(currentNode);\n if (!currentNodeIsContaining && computedStyle.position === 'fixed') {\n currentContainingBlockComputedStyle = null;\n }\n const shouldDropCurrentNode = elementIsFixed ? !currentNodeIsContaining && !currentContainingBlockComputedStyle : !currentNodeIsContaining && computedStyle.position === 'static' && !!currentContainingBlockComputedStyle && ['absolute', 'fixed'].includes(currentContainingBlockComputedStyle.position) || isOverflowElement(currentNode) && !currentNodeIsContaining && hasFixedPositionAncestor(element, currentNode);\n if (shouldDropCurrentNode) {\n // Drop non-containing blocks.\n result = result.filter(ancestor => ancestor !== currentNode);\n } else {\n // Record last containing block for next iteration.\n currentContainingBlockComputedStyle = computedStyle;\n }\n currentNode = getParentNode(currentNode);\n }\n cache.set(element, result);\n return result;\n}\n\n// Gets the maximum area that the element is visible in due to any number of\n// clipping ancestors.\nfunction getClippingRect(_ref) {\n let {\n element,\n boundary,\n rootBoundary,\n strategy\n } = _ref;\n const elementClippingAncestors = boundary === 'clippingAncestors' ? getClippingElementAncestors(element, this._c) : [].concat(boundary);\n const clippingAncestors = [...elementClippingAncestors, rootBoundary];\n const firstClippingAncestor = clippingAncestors[0];\n const clippingRect = clippingAncestors.reduce((accRect, clippingAncestor) => {\n const rect = getClientRectFromClippingAncestor(element, clippingAncestor, strategy);\n accRect.top = max(rect.top, accRect.top);\n accRect.right = min(rect.right, accRect.right);\n accRect.bottom = min(rect.bottom, accRect.bottom);\n accRect.left = max(rect.left, accRect.left);\n return accRect;\n }, getClientRectFromClippingAncestor(element, firstClippingAncestor, strategy));\n return {\n width: clippingRect.right - clippingRect.left,\n height: clippingRect.bottom - clippingRect.top,\n x: clippingRect.left,\n y: clippingRect.top\n };\n}\n\nfunction getDimensions(element) {\n return getCssDimensions(element);\n}\n\nfunction getTrueOffsetParent(element, polyfill) {\n if (!isHTMLElement(element) || getComputedStyle$1(element).position === 'fixed') {\n return null;\n }\n if (polyfill) {\n return polyfill(element);\n }\n return element.offsetParent;\n}\nfunction getContainingBlock(element) {\n let currentNode = getParentNode(element);\n while (isHTMLElement(currentNode) && !isLastTraversableNode(currentNode)) {\n if (isContainingBlock(currentNode)) {\n return currentNode;\n } else {\n currentNode = getParentNode(currentNode);\n }\n }\n return null;\n}\n\n// Gets the closest ancestor positioned element. Handles some edge cases,\n// such as table ancestors and cross browser bugs.\nfunction getOffsetParent(element, polyfill) {\n const window = getWindow(element);\n if (!isHTMLElement(element)) {\n return window;\n }\n let offsetParent = getTrueOffsetParent(element, polyfill);\n while (offsetParent && isTableElement(offsetParent) && getComputedStyle$1(offsetParent).position === 'static') {\n offsetParent = getTrueOffsetParent(offsetParent, polyfill);\n }\n if (offsetParent && (getNodeName(offsetParent) === 'html' || getNodeName(offsetParent) === 'body' && getComputedStyle$1(offsetParent).position === 'static' && !isContainingBlock(offsetParent))) {\n return window;\n }\n return offsetParent || getContainingBlock(element) || window;\n}\n\nfunction getRectRelativeToOffsetParent(element, offsetParent, strategy) {\n const isOffsetParentAnElement = isHTMLElement(offsetParent);\n const documentElement = getDocumentElement(offsetParent);\n const isFixed = strategy === 'fixed';\n const rect = getBoundingClientRect(element, true, isFixed, offsetParent);\n let scroll = {\n scrollLeft: 0,\n scrollTop: 0\n };\n const offsets = createEmptyCoords(0);\n if (isOffsetParentAnElement || !isOffsetParentAnElement && !isFixed) {\n if (getNodeName(offsetParent) !== 'body' || isOverflowElement(documentElement)) {\n scroll = getNodeScroll(offsetParent);\n }\n if (isHTMLElement(offsetParent)) {\n const offsetRect = getBoundingClientRect(offsetParent, true, isFixed, offsetParent);\n offsets.x = offsetRect.x + offsetParent.clientLeft;\n offsets.y = offsetRect.y + offsetParent.clientTop;\n } else if (documentElement) {\n offsets.x = getWindowScrollBarX(documentElement);\n }\n }\n return {\n x: rect.left + scroll.scrollLeft - offsets.x,\n y: rect.top + scroll.scrollTop - offsets.y,\n width: rect.width,\n height: rect.height\n };\n}\n\nconst platform = {\n getClippingRect,\n convertOffsetParentRelativeRectToViewportRelativeRect,\n isElement,\n getDimensions,\n getOffsetParent,\n getDocumentElement,\n getScale,\n async getElementRects(_ref) {\n let {\n reference,\n floating,\n strategy\n } = _ref;\n const getOffsetParentFn = this.getOffsetParent || getOffsetParent;\n const getDimensionsFn = this.getDimensions;\n return {\n reference: getRectRelativeToOffsetParent(reference, await getOffsetParentFn(floating), strategy),\n floating: {\n x: 0,\n y: 0,\n ...(await getDimensionsFn(floating))\n }\n };\n },\n getClientRects: element => Array.from(element.getClientRects()),\n isRTL: element => getComputedStyle$1(element).direction === 'rtl'\n};\n\n// https://samthor.au/2021/observing-dom/\nfunction observeMove(element, onMove) {\n let io = null;\n let timeoutId;\n const root = getDocumentElement(element);\n function cleanup() {\n clearTimeout(timeoutId);\n io && io.disconnect();\n io = null;\n }\n function refresh(skip, threshold) {\n if (skip === void 0) {\n skip = false;\n }\n if (threshold === void 0) {\n threshold = 1;\n }\n cleanup();\n const {\n left,\n top,\n width,\n height\n } = element.getBoundingClientRect();\n if (!skip) {\n onMove();\n }\n if (!width || !height) {\n return;\n }\n const insetTop = floor(top);\n const insetRight = floor(root.clientWidth - (left + width));\n const insetBottom = floor(root.clientHeight - (top + height));\n const insetLeft = floor(left);\n const rootMargin = -insetTop + \"px \" + -insetRight + \"px \" + -insetBottom + \"px \" + -insetLeft + \"px\";\n const options = {\n rootMargin,\n threshold: max(0, min(1, threshold)) || 1\n };\n let isFirstUpdate = true;\n function handleObserve(entries) {\n const ratio = entries[0].intersectionRatio;\n if (ratio !== threshold) {\n if (!isFirstUpdate) {\n return refresh();\n }\n if (!ratio) {\n timeoutId = setTimeout(() => {\n refresh(false, 1e-7);\n }, 100);\n } else {\n refresh(false, ratio);\n }\n }\n isFirstUpdate = false;\n }\n\n // Older browsers don't support a `document` as the root and will throw an\n // error.\n try {\n io = new IntersectionObserver(handleObserve, {\n ...options,\n // Handle <iframe>s\n root: root.ownerDocument\n });\n } catch (e) {\n io = new IntersectionObserver(handleObserve, options);\n }\n io.observe(element);\n }\n refresh(true);\n return cleanup;\n}\n\n/**\n * Automatically updates the position of the floating element when necessary.\n * Should only be called when the floating element is mounted on the DOM or\n * visible on the screen.\n * @returns cleanup function that should be invoked when the floating element is\n * removed from the DOM or hidden from the screen.\n * @see https://floating-ui.com/docs/autoUpdate\n */\nfunction autoUpdate(reference, floating, update, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n ancestorScroll = true,\n ancestorResize = true,\n elementResize = typeof ResizeObserver === 'function',\n layoutShift = typeof IntersectionObserver === 'function',\n animationFrame = false\n } = options;\n const referenceEl = unwrapElement(reference);\n const ancestors = ancestorScroll || ancestorResize ? [...(referenceEl ? getOverflowAncestors(referenceEl) : []), ...getOverflowAncestors(floating)] : [];\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.addEventListener('scroll', update, {\n passive: true\n });\n ancestorResize && ancestor.addEventListener('resize', update);\n });\n const cleanupIo = referenceEl && layoutShift ? observeMove(referenceEl, update) : null;\n let reobserveFrame = -1;\n let resizeObserver = null;\n if (elementResize) {\n resizeObserver = new ResizeObserver(_ref => {\n let [firstEntry] = _ref;\n if (firstEntry && firstEntry.target === referenceEl && resizeObserver) {\n // Prevent update loops when using the `size` middleware.\n // https://github.com/floating-ui/floating-ui/issues/1740\n resizeObserver.unobserve(floating);\n cancelAnimationFrame(reobserveFrame);\n reobserveFrame = requestAnimationFrame(() => {\n resizeObserver && resizeObserver.observe(floating);\n });\n }\n update();\n });\n if (referenceEl && !animationFrame) {\n resizeObserver.observe(referenceEl);\n }\n resizeObserver.observe(floating);\n }\n let frameId;\n let prevRefRect = animationFrame ? getBoundingClientRect(reference) : null;\n if (animationFrame) {\n frameLoop();\n }\n function frameLoop() {\n const nextRefRect = getBoundingClientRect(reference);\n if (prevRefRect && (nextRefRect.x !== prevRefRect.x || nextRefRect.y !== prevRefRect.y || nextRefRect.width !== prevRefRect.width || nextRefRect.height !== prevRefRect.height)) {\n update();\n }\n prevRefRect = nextRefRect;\n frameId = requestAnimationFrame(frameLoop);\n }\n update();\n return () => {\n ancestors.forEach(ancestor => {\n ancestorScroll && ancestor.removeEventListener('scroll', update);\n ancestorResize && ancestor.removeEventListener('resize', update);\n });\n cleanupIo && cleanupIo();\n resizeObserver && resizeObserver.disconnect();\n resizeObserver = null;\n if (animationFrame) {\n cancelAnimationFrame(frameId);\n }\n };\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a reference element when it is given a certain CSS positioning\n * strategy.\n */\nconst computePosition = (reference, floating, options) => {\n // This caches the expensive `getClippingElementAncestors` function so that\n // multiple lifecycle resets re-use the same result. It only lives for a\n // single call. If other functions become expensive, we can add them as well.\n const cache = new Map();\n const mergedOptions = {\n platform,\n ...options\n };\n const platformWithCache = {\n ...mergedOptions.platform,\n _c: cache\n };\n return computePosition$1(reference, floating, {\n ...mergedOptions,\n platform: platformWithCache\n });\n};\n\nexport { autoUpdate, computePosition, getOverflowAncestors, platform };\n","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!./discussion_navigator.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!./discussion_navigator.vue?vue&type=script&lang=js\"","<script>\nimport { throttle } from 'lodash';\nimport {\n keysFor,\n MR_NEXT_UNRESOLVED_DISCUSSION,\n MR_PREVIOUS_UNRESOLVED_DISCUSSION,\n} from '~/behaviors/shortcuts/keybindings';\nimport { Mousetrap } from '~/lib/mousetrap';\nimport eventHub from '~/notes/event_hub';\nimport discussionNavigation from '~/notes/mixins/discussion_navigation';\n\nexport default {\n mixins: [discussionNavigation],\n data() {\n return {\n jumpToNext: throttle(() => this.jumpToNextDiscussion({ behavior: 'auto' }), 200),\n jumpToPrevious: throttle(() => this.jumpToPreviousDiscussion({ behavior: 'auto' }), 200),\n };\n },\n created() {\n eventHub.$on('jumpToFirstUnresolvedDiscussion', this.jumpToFirstUnresolvedDiscussion);\n },\n mounted() {\n Mousetrap.bind(keysFor(MR_NEXT_UNRESOLVED_DISCUSSION), this.jumpToNext);\n Mousetrap.bind(keysFor(MR_PREVIOUS_UNRESOLVED_DISCUSSION), this.jumpToPrevious);\n },\n beforeDestroy() {\n Mousetrap.unbind(keysFor(MR_NEXT_UNRESOLVED_DISCUSSION));\n Mousetrap.unbind(keysFor(MR_PREVIOUS_UNRESOLVED_DISCUSSION));\n\n eventHub.$off('jumpToFirstUnresolvedDiscussion', this.jumpToFirstUnresolvedDiscussion);\n },\n render() {\n return this.$scopedSlots.default?.();\n },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./discussion_navigator.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_navigator.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 { __, s__ } from '~/locale';\n\nexport const FETCH_LOADING = __('Checking approval status');\nexport const FETCH_ERROR = s__(\n 'mrWidget|An error occurred while retrieving approval data for this merge request.',\n);\nexport const APPROVE_ERROR = s__('mrWidget|An error occurred while submitting your approval.');\nexport const UNAPPROVE_ERROR = s__('mrWidget|An error occurred while removing your approval.');\nexport const APPROVED_BY_YOU_AND_OTHERS = s__('mrWidget|Approved by you and others');\nexport const APPROVED_BY_YOU = s__('mrWidget|Approved by you');\nexport const APPROVED_BY_OTHERS = s__('mrWidget|Approved by');\n","import mergeRequestApprovalStateUpdated from 'ee_else_ce/vue_merge_request_widget/components/approvals/queries/approvals.subscription.graphql';\nimport approvedByQuery from 'ee_else_ce/vue_merge_request_widget/components/approvals/queries/approvals.query.graphql';\n\nimport { createAlert } from '~/alert';\n\nimport { convertToGraphQLId } from '../../graphql_shared/utils';\nimport { TYPENAME_MERGE_REQUEST } from '../../graphql_shared/constants';\n\nimport { FETCH_ERROR } from '../components/approvals/messages';\n\nexport default {\n apollo: {\n approvals: {\n query: approvedByQuery,\n variables() {\n return {\n projectPath: this.mr.targetProjectFullPath,\n iid: `${this.mr.iid}`,\n };\n },\n update: (data) => data.project?.mergeRequest,\n result({ data }) {\n // This case can occur when backend returns an empty project due to expired session.\n // See https://gitlab.com/gitlab-org/gitlab/-/issues/413627 for more information.\n if (!data.project) {\n // Needed to suppress several errors.\n this.mr.setApprovals({});\n return;\n }\n\n const { mergeRequest } = data.project;\n\n this.disableCommittersApproval = data.project.mergeRequestsDisableCommittersApproval;\n\n this.mr.setApprovals(mergeRequest);\n },\n error() {\n createAlert({\n message: FETCH_ERROR,\n });\n },\n subscribeToMore: {\n document: mergeRequestApprovalStateUpdated,\n variables() {\n return {\n issuableId: convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.mr.id),\n };\n },\n skip() {\n return !this.mr?.id;\n },\n updateQuery(\n _,\n {\n subscriptionData: {\n data: { mergeRequestApprovalStateUpdated: queryResult },\n },\n },\n ) {\n if (queryResult) {\n this.mr.setApprovals(queryResult);\n }\n },\n },\n },\n },\n data() {\n return {\n alerts: [],\n approvals: null,\n disableCommittersApproval: false,\n };\n },\n methods: {\n clearError() {\n this.$emit('clearError');\n this.hasApprovalAuthError = false;\n this.alerts.forEach((alert) => alert.dismiss());\n this.alerts = [];\n },\n refreshApprovals() {\n return this.service.fetchApprovals().then((data) => {\n this.mr.setApprovals(data);\n });\n },\n },\n};\n","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!./state_container.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!./state_container.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport { STATUS_CLOSED, STATUS_MERGED } from '~/issues/constants';\nimport StatusIcon from './mr_widget_status_icon.vue';\nimport Actions from './action_buttons.vue';\n\nexport default {\n components: {\n GlButton,\n StatusIcon,\n Actions,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n isCollapsible: {\n type: Boolean,\n required: false,\n default: false,\n },\n collapseOnDesktop: {\n type: Boolean,\n required: false,\n default: false,\n },\n collapsed: {\n type: Boolean,\n required: false,\n default: false,\n },\n mr: {\n type: Object,\n required: false,\n default: null,\n },\n isLoading: {\n type: Boolean,\n required: false,\n default: false,\n },\n status: {\n type: String,\n required: false,\n default: '',\n },\n actions: {\n type: Array,\n required: false,\n default: () => [],\n },\n expandDetailsTooltip: {\n required: false,\n type: String,\n default: __('Expand merge details'),\n },\n collapseDetailsTooltip: {\n required: false,\n type: String,\n default: __('Collapse merge details'),\n },\n },\n computed: {\n wrapperClasses() {\n if (this.status === STATUS_MERGED) return 'gl-bg-blue-50';\n if (this.status === STATUS_CLOSED) return 'gl-bg-red-50';\n return null;\n },\n hasActionsSlot() {\n return this.$scopedSlots.actions?.()?.length;\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"mr-widget-body media gl-flex gl-items-center gl-py-4 gl-pl-5 gl-pr-4\"\n :class=\"wrapperClasses\"\n v-on=\"$listeners\"\n >\n <div v-if=\"isLoading\" class=\"mr-state-loader gl-w-full\">\n <slot name=\"loading\">\n <div class=\"gl-flex\">\n <status-icon status=\"loading\" />\n <div class=\"media-body gl-flex gl-items-center\">\n <slot></slot>\n </div>\n </div>\n </slot>\n </div>\n <template v-else>\n <slot name=\"icon\">\n <status-icon :status=\"status\" />\n </slot>\n <div class=\"gl-flex gl-w-full\">\n <div\n :class=\"{\n 'gl-flex gl-items-center': actions.length,\n 'gl-flex-wrap gl-items-center gl-gap-3 md:gl-flex': !actions.length,\n }\"\n class=\"media-body gl-leading-normal\"\n >\n <slot></slot>\n </div>\n <div\n :class=\"{\n 'state-container-action-buttons gl-flex-wrap lg:gl-justify-end': !actions.length,\n 'gl-pt-3 md:gl-pt-0': hasActionsSlot,\n }\"\n class=\"gl-font-size-0 gl-flex gl-gap-3\"\n >\n <slot name=\"actions\">\n <actions v-if=\"actions.length\" :tertiary-buttons=\"actions\" />\n </slot>\n </div>\n <div\n v-if=\"isCollapsible\"\n :class=\"{ 'md:gl-hidden': !collapseOnDesktop }\"\n class=\"gl-border-l gl-ml-3 gl-h-6 gl-pl-3\"\n >\n <gl-button\n v-gl-tooltip\n :title=\"collapsed ? expandDetailsTooltip : collapseDetailsTooltip\"\n :aria-label=\"collapsed ? expandDetailsTooltip : collapseDetailsTooltip\"\n :icon=\"collapsed ? 'chevron-lg-down' : 'chevron-lg-up'\"\n category=\"tertiary\"\n size=\"small\"\n class=\"gl-align-top\"\n data-testid=\"widget-toggle\"\n @click=\"() => $emit('toggle')\"\n />\n </div>\n </div>\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./state_container.vue?vue&type=template&id=6c08a7c1\"\nimport script from \"./state_container.vue?vue&type=script&lang=js\"\nexport * from \"./state_container.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('div',_vm._g({staticClass:\"mr-widget-body media gl-flex gl-items-center gl-py-4 gl-pl-5 gl-pr-4\",class:_vm.wrapperClasses},_vm.$listeners),[(_vm.isLoading)?_c('div',{staticClass:\"mr-state-loader gl-w-full\"},[_vm._t(\"loading\",function(){return [_c('div',{staticClass:\"gl-flex\"},[_c('status-icon',{attrs:{\"status\":\"loading\"}}),_vm._v(\" \"),_c('div',{staticClass:\"media-body gl-flex gl-items-center\"},[_vm._t(\"default\")],2)],1)]})],2):[_vm._t(\"icon\",function(){return [_c('status-icon',{attrs:{\"status\":_vm.status}})]}),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-w-full\"},[_c('div',{staticClass:\"media-body gl-leading-normal\",class:{\n 'gl-flex gl-items-center': _vm.actions.length,\n 'gl-flex-wrap gl-items-center gl-gap-3 md:gl-flex': !_vm.actions.length,\n }},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('div',{staticClass:\"gl-font-size-0 gl-flex gl-gap-3\",class:{\n 'state-container-action-buttons gl-flex-wrap lg:gl-justify-end': !_vm.actions.length,\n 'gl-pt-3 md:gl-pt-0': _vm.hasActionsSlot,\n }},[_vm._t(\"actions\",function(){return [(_vm.actions.length)?_c('actions',{attrs:{\"tertiary-buttons\":_vm.actions}}):_vm._e()]})],2),_vm._v(\" \"),(_vm.isCollapsible)?_c('div',{staticClass:\"gl-border-l gl-ml-3 gl-h-6 gl-pl-3\",class:{ 'md:gl-hidden': !_vm.collapseOnDesktop }},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-align-top\",attrs:{\"title\":_vm.collapsed ? _vm.expandDetailsTooltip : _vm.collapseDetailsTooltip,\"aria-label\":_vm.collapsed ? _vm.expandDetailsTooltip : _vm.collapseDetailsTooltip,\"icon\":_vm.collapsed ? 'chevron-lg-down' : 'chevron-lg-up',\"category\":\"tertiary\",\"size\":\"small\",\"data-testid\":\"widget-toggle\"},on:{\"click\":() => _vm.$emit('toggle')}})],1):_vm._e()])]],2)\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!./policy_approval_settings_icon.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!./policy_approval_settings_icon.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlLink, GlPopover, GlSprintf } from '@gitlab/ui';\nimport { s__ } from '~/locale';\nimport { isMergeRequestSettingOverridden } from 'ee/security_orchestration/components/policy_editor/scan_result/lib';\n\nexport default {\n i18n: {\n title: s__('SecurityOrchestration|Policy override'),\n popoverTextGeneric: s__(\n 'SecurityOrchestration|Default approval settings on this merge request have been overridden by policies based on their rules.',\n ),\n popoverTextSingle: s__(\n 'SecurityOrchestration|Default approval settings on this merge request have been overridden by policy %{policyName} based on its rules.',\n ),\n popoverTextMultiple: s__(\n 'SecurityOrchestration|Default approval settings on this merge request have been overridden by the following policies based on their rules:',\n ),\n },\n name: 'PolicyApprovalSettingsIcon',\n components: {\n GlIcon,\n GlLink,\n GlPopover,\n GlSprintf,\n },\n props: {\n policies: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n computed: {\n policiesWithMergeRequestSettingsOverride() {\n return (this.policies || []).filter(({ settings = {} }) =>\n Object.entries(settings).some(([setting, value]) =>\n isMergeRequestSettingOverridden(setting, value),\n ),\n );\n },\n // TODO: Temporary to handle policies without details\n // Remove when backfill from https://gitlab.com/gitlab-org/gitlab/-/merge_requests/173714 is finished\n showPolicyDetails() {\n return (this.policies || []).every(\n (policy) => Boolean(policy.name) && Boolean(policy.editPath),\n );\n },\n hasPoliciesOverridingApprovalSettings() {\n return this.policiesWithMergeRequestSettingsOverride.length > 0;\n },\n hasMultiplePolicies() {\n return this.policiesWithMergeRequestSettingsOverride.length > 1;\n },\n },\n};\n</script>\n\n<template>\n <div v-if=\"hasPoliciesOverridingApprovalSettings\">\n <gl-popover\n :title=\"$options.i18n.title\"\n target=\"policy-override-warning-icon\"\n show-close-button\n >\n <template v-if=\"showPolicyDetails\">\n <template v-if=\"hasMultiplePolicies\">\n {{ $options.i18n.popoverTextMultiple }}\n <ul class=\"gl-pl-5\">\n <li v-for=\"(policy, index) in policiesWithMergeRequestSettingsOverride\" :key=\"index\">\n <gl-link\n :href=\"policy.editPath\"\n target=\"_blank\"\n :data-testid=\"`policy-item-${index}`\"\n >\n {{ policy.name }}\n </gl-link>\n </li>\n </ul>\n </template>\n <template v-else>\n <gl-sprintf :message=\"$options.i18n.popoverTextSingle\">\n <template #policyName>\n <gl-link :href=\"policiesWithMergeRequestSettingsOverride[0].editPath\" target=\"_blank\">\n {{ policiesWithMergeRequestSettingsOverride[0].name }}\n </gl-link>\n </template>\n </gl-sprintf>\n </template>\n </template>\n <template v-else>\n {{ $options.i18n.popoverTextGeneric }}\n </template>\n </gl-popover>\n\n <gl-icon id=\"policy-override-warning-icon\" name=\"warning\" />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./policy_approval_settings_icon.vue?vue&type=template&id=44927e8c\"\nimport script from \"./policy_approval_settings_icon.vue?vue&type=script&lang=js\"\nexport * from \"./policy_approval_settings_icon.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 (_vm.hasPoliciesOverridingApprovalSettings)?_c('div',[_c('gl-popover',{attrs:{\"title\":_vm.$options.i18n.title,\"target\":\"policy-override-warning-icon\",\"show-close-button\":\"\"}},[(_vm.showPolicyDetails)?[(_vm.hasMultiplePolicies)?[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.popoverTextMultiple)+\"\\n \"),_c('ul',{staticClass:\"gl-pl-5\"},_vm._l((_vm.policiesWithMergeRequestSettingsOverride),function(policy,index){return _c('li',{key:index},[_c('gl-link',{attrs:{\"href\":policy.editPath,\"target\":\"_blank\",\"data-testid\":`policy-item-${index}`}},[_vm._v(\"\\n \"+_vm._s(policy.name)+\"\\n \")])],1)}),0)]:[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.popoverTextSingle},scopedSlots:_vm._u([{key:\"policyName\",fn:function(){return [_c('gl-link',{attrs:{\"href\":_vm.policiesWithMergeRequestSettingsOverride[0].editPath,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.policiesWithMergeRequestSettingsOverride[0].name)+\"\\n \")])]},proxy:true}],null,false,4075357879)})]]:[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.popoverTextGeneric)+\"\\n \")]],2),_vm._v(\" \"),_c('gl-icon',{attrs:{\"id\":\"policy-override-warning-icon\",\"name\":\"warning\"}})],1):_vm._e()\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!./approvals_summary.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!./approvals_summary.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlPopover } from '@gitlab/ui';\nimport PolicyApprovalSettingsIcon from 'ee_component/vue_merge_request_widget/components/approvals/policy_approval_settings_icon.vue';\nimport { toNounSeriesText } from '~/lib/utils/grammar';\nimport { n__, sprintf } from '~/locale';\nimport {\n APPROVED_BY_YOU_AND_OTHERS,\n APPROVED_BY_YOU,\n APPROVED_BY_OTHERS,\n} from '~/vue_merge_request_widget/components/approvals/messages';\nimport UserAvatarList from '~/vue_shared/components/user_avatar/user_avatar_list.vue';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { getApprovalRuleNamesLeft } from 'ee_else_ce/vue_merge_request_widget/mappers';\n\nexport default {\n components: {\n GlLink,\n GlPopover,\n UserAvatarList,\n PolicyApprovalSettingsIcon,\n },\n props: {\n multipleApprovalRulesAvailable: {\n type: Boolean,\n required: false,\n default: false,\n },\n approvalState: {\n type: Object,\n required: true,\n },\n disableCommittersApproval: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isUserAvatarListExpanded: false,\n };\n },\n computed: {\n approvers() {\n return this.approvalState.approvedBy?.nodes || [];\n },\n approved() {\n return this.approvalState.approved || this.approvalState.approvedBy?.nodes.length > 0;\n },\n approvalsLeft() {\n return this.approvalState.approvalsLeft || 0;\n },\n rulesLeft() {\n return getApprovalRuleNamesLeft(\n this.multipleApprovalRulesAvailable,\n (this.approvalState.approvalState?.rules || []).filter((r) => !r.approved),\n );\n },\n approvalLeftMessage() {\n if (this.rulesLeft.length) {\n return sprintf(\n n__(\n 'Requires %{count} approval from %{names}.',\n 'Requires %{count} approvals from %{names}.',\n this.approvalsLeft,\n ),\n {\n names: toNounSeriesText(this.rulesLeft),\n count: this.approvalsLeft,\n },\n false,\n );\n }\n\n if (!this.approved) {\n return n__(\n 'Requires %d approval from eligible users.',\n 'Requires %d approvals from eligible users.',\n this.approvalsLeft,\n );\n }\n\n return '';\n },\n message() {\n if (this.approvedByMe && this.approvedByOthers) {\n return APPROVED_BY_YOU_AND_OTHERS;\n }\n\n if (this.approvedByMe) {\n return APPROVED_BY_YOU;\n }\n\n if (this.approved) {\n return APPROVED_BY_OTHERS;\n }\n\n return '';\n },\n hasApprovers() {\n return Boolean(this.approvers.length);\n },\n approvedByMe() {\n if (!this.currentUserId) {\n return false;\n }\n return this.approvers.some(\n (approver) => getIdFromGraphQLId(approver.id) === this.currentUserId,\n );\n },\n approvedByOthers() {\n if (!this.currentUserId) {\n return false;\n }\n return this.approvers.some(\n (approver) => getIdFromGraphQLId(approver.id) !== this.currentUserId,\n );\n },\n currentUserHasCommitted() {\n if (!this.currentUserId) return false;\n\n return this.approvalState.committers?.nodes?.some(\n (user) => getIdFromGraphQLId(user.id) === this.currentUserId,\n );\n },\n currentUserId() {\n return gon.current_user_id;\n },\n policiesOverridingApprovalSettings() {\n return this.approvalState.policiesOverridingApprovalSettings;\n },\n },\n methods: {\n onUserAvatarListExpanded() {\n this.isUserAvatarListExpanded = true;\n },\n onUserAvatarListCollapsed() {\n this.isUserAvatarListExpanded = false;\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"gl-flex gl-flex-wrap gl-items-center gl-gap-2\"\n data-testid=\"approvals-summary-content\"\n >\n <span v-if=\"approvalLeftMessage\" class=\"gl-font-bold\">{{ approvalLeftMessage }}</span>\n <template v-if=\"hasApprovers\">\n <span v-if=\"approvalLeftMessage\">{{ message }}</span>\n <span v-else class=\"gl-font-bold\">{{ message }}</span>\n <user-avatar-list\n class=\"gl-inline-block\"\n :class=\"{ 'gl-pt-1': isUserAvatarListExpanded }\"\n :img-size=\"24\"\n :items=\"approvers\"\n @expanded=\"onUserAvatarListExpanded\"\n @collapsed=\"onUserAvatarListCollapsed\"\n />\n </template>\n <policy-approval-settings-icon :policies=\"policiesOverridingApprovalSettings\" />\n <template v-if=\"disableCommittersApproval && currentUserHasCommitted\">\n <gl-link id=\"cant-approve-popover\" data-testid=\"commit-cant-approve\" class=\"gl-cursor-help\">{{\n __(\"Why can't I approve?\")\n }}</gl-link>\n <gl-popover target=\"cant-approve-popover\">\n {{ __(\"You can't approve because you added one or more commits to this merge request.\") }}\n </gl-popover>\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./approvals_summary.vue?vue&type=template&id=01112af4\"\nimport script from \"./approvals_summary.vue?vue&type=script&lang=js\"\nexport * from \"./approvals_summary.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('div',{staticClass:\"gl-flex gl-flex-wrap gl-items-center gl-gap-2\",attrs:{\"data-testid\":\"approvals-summary-content\"}},[(_vm.approvalLeftMessage)?_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.approvalLeftMessage))]):_vm._e(),_vm._v(\" \"),(_vm.hasApprovers)?[(_vm.approvalLeftMessage)?_c('span',[_vm._v(_vm._s(_vm.message))]):_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(_vm.message))]),_vm._v(\" \"),_c('user-avatar-list',{staticClass:\"gl-inline-block\",class:{ 'gl-pt-1': _vm.isUserAvatarListExpanded },attrs:{\"img-size\":24,\"items\":_vm.approvers},on:{\"expanded\":_vm.onUserAvatarListExpanded,\"collapsed\":_vm.onUserAvatarListCollapsed}})]:_vm._e(),_vm._v(\" \"),_c('policy-approval-settings-icon',{attrs:{\"policies\":_vm.policiesOverridingApprovalSettings}}),_vm._v(\" \"),(_vm.disableCommittersApproval && _vm.currentUserHasCommitted)?[_c('gl-link',{staticClass:\"gl-cursor-help\",attrs:{\"id\":\"cant-approve-popover\",\"data-testid\":\"commit-cant-approve\"}},[_vm._v(_vm._s(_vm.__(\"Why can't I approve?\")))]),_vm._v(\" \"),_c('gl-popover',{attrs:{\"target\":\"cant-approve-popover\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__(\"You can't approve because you added one or more commits to this merge request.\"))+\"\\n \")])]:_vm._e()],2)\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!./approvals_summary_optional.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!./approvals_summary_optional.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlLink } from '@gitlab/ui';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\n\nexport default {\n components: {\n GlLink,\n HelpIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n canApprove: {\n type: Boolean,\n required: true,\n },\n helpPath: {\n type: String,\n required: false,\n default: '',\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-flex gl-items-center\">\n <span class=\"gl-text-subtle\">{{ s__('mrWidget|Approval is optional') }}</span>\n <gl-link\n v-if=\"canApprove && helpPath\"\n v-gl-tooltip\n :href=\"helpPath\"\n :title=\"__('About this feature')\"\n target=\"_blank\"\n class=\"gl-flex gl-items-center gl-justify-center\"\n >\n <help-icon class=\"gl-ml-3\" />\n </gl-link>\n </div>\n</template>\n","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!./approvals.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!./approvals.vue?vue&type=script&lang=js\"","<script>\nimport { GlForm, GlButton, GlSprintf } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport csrf from '~/lib/utils/csrf';\nimport { STATUS_MERGED } from '~/issues/constants';\nimport { BV_SHOW_MODAL } from '~/lib/utils/constants';\nimport { HTTP_STATUS_UNAUTHORIZED } from '~/lib/utils/http_status';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { s__, __, sprintf } from '~/locale';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport approvalsMixin from '../../mixins/approvals';\nimport StateContainer from '../state_container.vue';\nimport { INVALID_RULES_DOCS_PATH } from '../../constants';\nimport ApprovalsSummary from './approvals_summary.vue';\nimport ApprovalsSummaryOptional from './approvals_summary_optional.vue';\nimport { FETCH_LOADING, APPROVE_ERROR, UNAPPROVE_ERROR } from './messages';\n\nexport default {\n name: 'MRWidgetApprovals',\n components: {\n ApprovalsSummary,\n ApprovalsSummaryOptional,\n StateContainer,\n GlButton,\n GlSprintf,\n GlForm,\n },\n csrf,\n mixins: [approvalsMixin, glFeatureFlagsMixin()],\n props: {\n mr: {\n type: Object,\n required: true,\n },\n service: {\n type: Object,\n required: true,\n },\n isOptionalDefault: {\n type: Boolean,\n required: false,\n default: null,\n },\n approveDefault: {\n type: Function,\n required: false,\n default: null,\n },\n modalId: {\n type: String,\n required: false,\n default: null,\n },\n requirePasswordToApprove: {\n type: Boolean,\n required: false,\n default: false,\n },\n collapsed: {\n type: Boolean,\n required: false,\n default: false,\n },\n hasAllApprovals: {\n type: Boolean,\n required: false,\n default: false,\n },\n actionButtons: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n data() {\n return {\n hasApprovalAuthError: false,\n isApproving: false,\n userPermissions: {},\n };\n },\n computed: {\n isLoading() {\n return this.$apollo.queries.approvals.loading || !this.approvals;\n },\n isBasic() {\n return this.mr.approvalsWidgetType === 'base';\n },\n isApproved() {\n return this.hasAllApprovals;\n },\n isOptional() {\n return this.isOptionalDefault !== null ? this.isOptionalDefault : !this.approvedBy.length;\n },\n hasAction() {\n return Boolean(this.action);\n },\n invalidRules() {\n return this.approvals.approvalState?.rules?.filter((rule) => rule.invalid) || [];\n },\n invalidApprovedRules() {\n return this.invalidRules.filter((rule) => rule.allowMergeWhenInvalid);\n },\n invalidFailedRules() {\n return this.invalidRules.filter((rule) => !rule.allowMergeWhenInvalid);\n },\n hasInvalidRules() {\n return this.mr.mergeRequestApproversAvailable && this.invalidRules.length;\n },\n hasInvalidApprovedRules() {\n return this.mr.mergeRequestApproversAvailable && this.invalidApprovedRules.length;\n },\n hasInvalidFailedRules() {\n return this.mr.mergeRequestApproversAvailable && this.invalidFailedRules.length;\n },\n approvedBy() {\n return this.approvals.approvedBy?.nodes || [];\n },\n userHasApproved() {\n return this.approvedBy.some(\n (approver) => getIdFromGraphQLId(approver.id) === gon.current_user_id,\n );\n },\n userCanApprove() {\n return Boolean(this.approvals.userPermissions.canApprove);\n },\n showApprove() {\n return !this.userHasApproved && this.userCanApprove && this.mr.isOpen;\n },\n showUnapprove() {\n return this.userHasApproved && !this.userCanApprove && this.mr.state !== STATUS_MERGED;\n },\n showApproveButton() {\n return (!this.requireSamlAuthToApprove || this.showUnapprove) && this.action;\n },\n approvalText() {\n // Repeating a text of this to keep i18n easier to do (vs, construcing a compound string)\n if (this.requireSamlAuthToApprove) {\n return this.isApproved && this.approvedBy.length > 0\n ? s__('mrWidget|Approve additionally with SAML')\n : s__('mrWidget|Approve with SAML');\n }\n\n return this.isApproved && this.approvedBy.length > 0\n ? s__('mrWidget|Approve additionally')\n : s__('mrWidget|Approve');\n },\n action() {\n // Use the default approve action, only if we aren't using the auth component for it\n if (this.showApprove) {\n return {\n text: this.approvalText,\n category: this.isApproved ? 'secondary' : 'primary',\n variant: 'confirm',\n action: () => this.approve(),\n };\n }\n if (this.showUnapprove) {\n return {\n text: s__('mrWidget|Revoke approval'),\n variant: 'default',\n action: () => this.unapprove(),\n };\n }\n\n return null;\n },\n pluralizedApprovedRuleText() {\n return this.invalidApprovedRules.length > 1\n ? this.$options.i18n.invalidRulesPlural\n : this.$options.i18n.invalidRuleSingular;\n },\n pluralizedFailedRuleText() {\n return this.invalidFailedRules.length > 1\n ? this.$options.i18n.invalidFailedRulesPlural\n : this.$options.i18n.invalidFailedRuleSingular;\n },\n pluralizedRuleText() {\n return [\n this.hasInvalidFailedRules\n ? sprintf(this.pluralizedFailedRuleText, { rules: this.invalidFailedRules.length })\n : null,\n this.hasInvalidApprovedRules\n ? sprintf(this.pluralizedApprovedRuleText, { rules: this.invalidApprovedRules.length })\n : null,\n ]\n .filter((text) => Boolean(text))\n .join(', ')\n .concat('.');\n },\n samlApprovalPath() {\n return this.mr.samlApprovalPath;\n },\n requireSamlAuthToApprove() {\n return this.mr.requireSamlAuthToApprove;\n },\n },\n methods: {\n approve() {\n if (this.requirePasswordToApprove) {\n this.$root.$emit(BV_SHOW_MODAL, this.modalId);\n return;\n }\n this.updateApproval(\n () => this.service.approveMergeRequest(),\n () =>\n this.alerts.push(\n createAlert({\n message: APPROVE_ERROR,\n }),\n ),\n );\n },\n approveWithSamlAuth() {\n // Intentionally direct to SAML Identity Provider for renewed authorization even if SSO session exists\n this.$refs.form.$el.submit();\n },\n approveWithAuth(data) {\n this.updateApproval(\n () => this.service.approveMergeRequestWithAuth(data),\n (error) => {\n if (error?.response?.status === HTTP_STATUS_UNAUTHORIZED) {\n this.hasApprovalAuthError = true;\n return;\n }\n this.alerts.push(\n createAlert({\n message: APPROVE_ERROR,\n }),\n );\n },\n );\n },\n unapprove() {\n this.updateApproval(\n () => this.service.unapproveMergeRequest(),\n () =>\n this.alerts.push(\n createAlert({\n message: UNAPPROVE_ERROR,\n }),\n ),\n );\n },\n updateApproval(serviceFn, errFn) {\n this.isApproving = true;\n this.clearError();\n return serviceFn()\n .then(() => {\n // TODO: Remove this line when we move to Apollo subscriptions\n this.$apollo.queries.approvals.refetch();\n })\n .catch(errFn)\n .then(() => {\n this.isApproving = false;\n });\n },\n },\n FETCH_LOADING,\n linkToInvalidRules: INVALID_RULES_DOCS_PATH,\n i18n: {\n invalidRuleSingular: s__('mrWidget|%{rules} invalid rule has been approved automatically'),\n invalidRulesPlural: s__('mrWidget|%{rules} invalid rules have been approved automatically'),\n invalidFailedRuleSingular: s__(\n \"mrWidget|%{dangerStart}%{rules} rule can't be approved%{dangerEnd}\",\n ),\n invalidFailedRulesPlural: s__(\n \"mrWidget|%{dangerStart}%{rules} rules can't be approved%{dangerEnd}\",\n ),\n learnMore: __('Learn more.'),\n },\n};\n</script>\n<template>\n <div v-if=\"approvals\" class=\"js-mr-approvals mr-section-container\">\n <state-container\n :is-loading=\"isLoading\"\n :mr=\"mr\"\n status=\"approval\"\n is-collapsible\n collapse-on-desktop\n :collapsed=\"collapsed\"\n :expand-details-tooltip=\"__('Expand eligible approvers')\"\n :collapse-details-tooltip=\"__('Collapse eligible approvers')\"\n :actions=\"actionButtons\"\n @toggle=\"() => $emit('toggle')\"\n >\n <template v-if=\"isLoading\">{{ $options.FETCH_LOADING }}</template>\n <template v-else>\n <div class=\"gl-flex gl-flex-col\">\n <div\n class=\"gl-flex gl-flex-col gl-flex-wrap gl-items-baseline gl-gap-3 sm:gl-flex-row sm:gl-items-center\"\n >\n <div v-if=\"requireSamlAuthToApprove && showApprove\">\n <gl-form\n ref=\"form\"\n :action=\"samlApprovalPath\"\n method=\"post\"\n data-testid=\"approve-form\"\n >\n <gl-button\n v-if=\"action\"\n :variant=\"action.variant\"\n size=\"small\"\n :category=\"action.category\"\n :loading=\"isApproving\"\n data-testid=\"approve-button\"\n type=\"submit\"\n >\n {{ action.text }}\n </gl-button>\n <input :value=\"$options.csrf.token\" type=\"hidden\" name=\"authenticity_token\" />\n </gl-form>\n </div>\n <gl-button\n v-if=\"showApproveButton\"\n :variant=\"action.variant\"\n size=\"small\"\n :category=\"action.category\"\n :loading=\"isApproving\"\n data-testid=\"approve-button\"\n @click=\"action.action\"\n >\n {{ action.text }}\n </gl-button>\n <approvals-summary-optional\n v-if=\"isOptional\"\n :can-approve=\"hasAction\"\n :help-path=\"mr.approvalsHelpPath\"\n />\n <approvals-summary\n v-else\n :approval-state=\"approvals\"\n :disable-committers-approval=\"disableCommittersApproval\"\n :multiple-approval-rules-available=\"mr.multipleApprovalRulesAvailable\"\n />\n </div>\n <div v-if=\"hasInvalidRules\" class=\"gl-mt-2 gl-text-subtle\" data-testid=\"invalid-rules\">\n <gl-sprintf :message=\"pluralizedRuleText\">\n <template #danger=\"{ content }\">\n <span class=\"gl-font-bold gl-text-danger\">{{ content }}</span>\n </template>\n </gl-sprintf>\n </div>\n </div>\n <slot\n :is-approving=\"isApproving\"\n :approve-with-auth=\"approveWithAuth\"\n :has-approval-auth-error=\"hasApprovalAuthError\"\n ></slot>\n </template>\n </state-container>\n <slot name=\"footer\"></slot>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./approvals_summary_optional.vue?vue&type=template&id=98283a3c\"\nimport script from \"./approvals_summary_optional.vue?vue&type=script&lang=js\"\nexport * from \"./approvals_summary_optional.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('div',{staticClass:\"gl-flex gl-items-center\"},[_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.s__('mrWidget|Approval is optional')))]),_vm._v(\" \"),(_vm.canApprove && _vm.helpPath)?_c('gl-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-flex gl-items-center gl-justify-center\",attrs:{\"href\":_vm.helpPath,\"title\":_vm.__('About this feature'),\"target\":\"_blank\"}},[_c('help-icon',{staticClass:\"gl-ml-3\"})],1):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./approvals.vue?vue&type=template&id=b4bf8706\"\nimport script from \"./approvals.vue?vue&type=script&lang=js\"\nexport * from \"./approvals.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 (_vm.approvals)?_c('div',{staticClass:\"js-mr-approvals mr-section-container\"},[_c('state-container',{attrs:{\"is-loading\":_vm.isLoading,\"mr\":_vm.mr,\"status\":\"approval\",\"is-collapsible\":\"\",\"collapse-on-desktop\":\"\",\"collapsed\":_vm.collapsed,\"expand-details-tooltip\":_vm.__('Expand eligible approvers'),\"collapse-details-tooltip\":_vm.__('Collapse eligible approvers'),\"actions\":_vm.actionButtons},on:{\"toggle\":() => _vm.$emit('toggle')}},[(_vm.isLoading)?[_vm._v(_vm._s(_vm.$options.FETCH_LOADING))]:[_c('div',{staticClass:\"gl-flex gl-flex-col\"},[_c('div',{staticClass:\"gl-flex gl-flex-col gl-flex-wrap gl-items-baseline gl-gap-3 sm:gl-flex-row sm:gl-items-center\"},[(_vm.requireSamlAuthToApprove && _vm.showApprove)?_c('div',[_c('gl-form',{ref:\"form\",attrs:{\"action\":_vm.samlApprovalPath,\"method\":\"post\",\"data-testid\":\"approve-form\"}},[(_vm.action)?_c('gl-button',{attrs:{\"variant\":_vm.action.variant,\"size\":\"small\",\"category\":_vm.action.category,\"loading\":_vm.isApproving,\"data-testid\":\"approve-button\",\"type\":\"submit\"}},[_vm._v(\"\\n \"+_vm._s(_vm.action.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"authenticity_token\"},domProps:{\"value\":_vm.$options.csrf.token}})],1)],1):_vm._e(),_vm._v(\" \"),(_vm.showApproveButton)?_c('gl-button',{attrs:{\"variant\":_vm.action.variant,\"size\":\"small\",\"category\":_vm.action.category,\"loading\":_vm.isApproving,\"data-testid\":\"approve-button\"},on:{\"click\":_vm.action.action}},[_vm._v(\"\\n \"+_vm._s(_vm.action.text)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isOptional)?_c('approvals-summary-optional',{attrs:{\"can-approve\":_vm.hasAction,\"help-path\":_vm.mr.approvalsHelpPath}}):_c('approvals-summary',{attrs:{\"approval-state\":_vm.approvals,\"disable-committers-approval\":_vm.disableCommittersApproval,\"multiple-approval-rules-available\":_vm.mr.multipleApprovalRulesAvailable}})],1),_vm._v(\" \"),(_vm.hasInvalidRules)?_c('div',{staticClass:\"gl-mt-2 gl-text-subtle\",attrs:{\"data-testid\":\"invalid-rules\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.pluralizedRuleText},scopedSlots:_vm._u([{key:\"danger\",fn:function({ content }){return [_c('span',{staticClass:\"gl-font-bold gl-text-danger\"},[_vm._v(_vm._s(content))])]}}],null,false,56474572)})],1):_vm._e()]),_vm._v(\" \"),_vm._t(\"default\",null,{\"isApproving\":_vm.isApproving,\"approveWithAuth\":_vm.approveWithAuth,\"hasApprovalAuthError\":_vm.hasApprovalAuthError})]],2),_vm._v(\" \"),_vm._t(\"footer\")],2):_vm._e()\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!./approvals_auth.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!./approvals_auth.vue?vue&type=script&lang=js\"","<script>\nimport { GlFormGroup, GlFormInput, GlModal } from '@gitlab/ui';\nimport { __, s__ } from '~/locale';\n\nexport default {\n components: {\n GlFormGroup,\n GlFormInput,\n GlModal,\n },\n props: {\n isApproving: {\n type: Boolean,\n default: false,\n required: false,\n },\n hasError: {\n type: Boolean,\n default: false,\n required: false,\n },\n modalId: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n approvalPassword: '',\n };\n },\n computed: {\n actionPrimaryProps() {\n return {\n text: __('Approve'),\n attributes: {\n loading: this.isApproving,\n variant: 'confirm',\n },\n };\n },\n actionCancelProps() {\n return {\n text: __('Cancel'),\n };\n },\n inputState() {\n return this.hasError ? false : null;\n },\n invalidFeedback() {\n return this.hasError ? s__('mrWidget|Approval password is invalid.') : null;\n },\n },\n methods: {\n approve(event) {\n event.preventDefault();\n this.$emit('approve', this.approvalPassword);\n },\n onHide() {\n this.approvalPassword = '';\n this.$emit('hide');\n },\n onShow() {\n setTimeout(() => {\n this.$refs.approvalPasswordInput.$el.focus();\n }, 0);\n },\n },\n};\n</script>\n\n<template>\n <gl-modal\n :modal-id=\"modalId\"\n :title=\"__('Enter your password to approve')\"\n :action-primary=\"actionPrimaryProps\"\n :action-cancel=\"actionCancelProps\"\n modal-class=\"js-mr-approvals-modal\"\n @ok=\"approve\"\n @hide=\"onHide\"\n @show=\"onShow\"\n >\n <form @submit.prevent=\"approve\">\n <p>\n {{\n s__(\n 'mrWidget|To approve this merge request, please enter your password. This project requires all approvals to be authenticated.',\n )\n }}\n </p>\n <gl-form-group\n :label=\"s__('mrWidget|Your password')\"\n label-for=\"approvalPasswordInput\"\n :invalid-feedback=\"invalidFeedback\"\n class=\"gl-mb-0\"\n >\n <gl-form-input\n id=\"approvalPasswordInput\"\n ref=\"approvalPasswordInput\"\n v-model=\"approvalPassword\"\n type=\"password\"\n autocomplete=\"current-password\"\n :placeholder=\"__('Password')\"\n :state=\"inputState\"\n />\n </gl-form-group>\n </form>\n </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./approvals_auth.vue?vue&type=template&id=62dbdb6f\"\nimport script from \"./approvals_auth.vue?vue&type=script&lang=js\"\nexport * from \"./approvals_auth.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-modal',{attrs:{\"modal-id\":_vm.modalId,\"title\":_vm.__('Enter your password to approve'),\"action-primary\":_vm.actionPrimaryProps,\"action-cancel\":_vm.actionCancelProps,\"modal-class\":\"js-mr-approvals-modal\"},on:{\"ok\":_vm.approve,\"hide\":_vm.onHide,\"show\":_vm.onShow}},[_c('form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.approve.apply(null, arguments)}}},[_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.s__(\n 'mrWidget|To approve this merge request, please enter your password. This project requires all approvals to be authenticated.',\n ))+\"\\n \")]),_vm._v(\" \"),_c('gl-form-group',{staticClass:\"gl-mb-0\",attrs:{\"label\":_vm.s__('mrWidget|Your password'),\"label-for\":\"approvalPasswordInput\",\"invalid-feedback\":_vm.invalidFeedback}},[_c('gl-form-input',{ref:\"approvalPasswordInput\",attrs:{\"id\":\"approvalPasswordInput\",\"type\":\"password\",\"autocomplete\":\"current-password\",\"placeholder\":_vm.__('Password'),\"state\":_vm.inputState},model:{value:(_vm.approvalPassword),callback:function ($$v) {_vm.approvalPassword=$$v},expression:\"approvalPassword\"}})],1)],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!./approval_check_popover.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!./approval_check_popover.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlPopover, GlIcon } from '@gitlab/ui';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\n\nexport default {\n name: 'ApprovalCheckPopover',\n components: {\n GlLink,\n GlPopover,\n GlIcon,\n HelpIcon,\n },\n props: {\n documentationLink: {\n type: String,\n required: false,\n default: '',\n },\n documentationText: {\n type: String,\n required: false,\n default: '',\n },\n title: {\n type: String,\n required: true,\n },\n text: {\n type: String,\n required: false,\n default: '',\n },\n popoverId: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <span class=\"js-help gl-ml-2 gl-inline-flex\">\n <help-icon :id=\"popoverId\" class=\"author-link\" :aria-label=\"__('help')\" />\n <gl-popover :target=\"popoverId\" placement=\"top\" :title=\"title\">\n <div class=\"gl-mb-3\">{{ text }}</div>\n <gl-link v-if=\"documentationLink\" target=\"_blank\" :href=\"documentationLink\">\n <span class=\"gl-align-middle\">{{ documentationText }}</span>\n <gl-icon name=\"external-link\" class=\"gl-align-middle\" />\n </gl-link>\n </gl-popover>\n </span>\n</template>\n","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!./approval_check_rule_popover.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!./approval_check_rule_popover.vue?vue&type=script&lang=js\"","<script>\nimport { COVERAGE_CHECK_NAME, APPROVAL_RULE_CONFIGS } from '../../constants';\nimport ApprovalCheckPopover from './approval_check_popover.vue';\n\nexport default {\n name: 'ApprovalCheckRulePopover',\n components: {\n ApprovalCheckPopover,\n },\n props: {\n rule: {\n type: Object,\n required: true,\n },\n codeCoverageCheckHelpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n showCoverageCheckPopover() {\n return this.rule.name === COVERAGE_CHECK_NAME;\n },\n approvalRuleConfig() {\n return APPROVAL_RULE_CONFIGS[this.rule.name];\n },\n documentationLink() {\n /*\n * The docs for these two rules have the same url & anchor\n * We get the path from a rails view helper\n */\n if (this.showCoverageCheckPopover) {\n return this.codeCoverageCheckHelpPagePath;\n }\n return '';\n },\n popoverTriggerId() {\n return `reportInfo-${this.rule.name}`;\n },\n },\n};\n</script>\n\n<template>\n <approval-check-popover\n v-if=\"showCoverageCheckPopover\"\n :popover-id=\"popoverTriggerId\"\n :title=\"approvalRuleConfig.title\"\n :text=\"approvalRuleConfig.popoverText\"\n :documentation-link=\"documentationLink\"\n :documentation-text=\"approvalRuleConfig.documentationText\"\n />\n</template>\n","import { render, staticRenderFns } from \"./approval_check_popover.vue?vue&type=template&id=7a5b853d\"\nimport script from \"./approval_check_popover.vue?vue&type=script&lang=js\"\nexport * from \"./approval_check_popover.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('span',{staticClass:\"js-help gl-ml-2 gl-inline-flex\"},[_c('help-icon',{staticClass:\"author-link\",attrs:{\"id\":_vm.popoverId,\"aria-label\":_vm.__('help')}}),_vm._v(\" \"),_c('gl-popover',{attrs:{\"target\":_vm.popoverId,\"placement\":\"top\",\"title\":_vm.title}},[_c('div',{staticClass:\"gl-mb-3\"},[_vm._v(_vm._s(_vm.text))]),_vm._v(\" \"),(_vm.documentationLink)?_c('gl-link',{attrs:{\"target\":\"_blank\",\"href\":_vm.documentationLink}},[_c('span',{staticClass:\"gl-align-middle\"},[_vm._v(_vm._s(_vm.documentationText))]),_vm._v(\" \"),_c('gl-icon',{staticClass:\"gl-align-middle\",attrs:{\"name\":\"external-link\"}})],1):_vm._e()],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./approval_check_rule_popover.vue?vue&type=template&id=6fb68442\"\nimport script from \"./approval_check_rule_popover.vue?vue&type=script&lang=js\"\nexport * from \"./approval_check_rule_popover.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 (_vm.showCoverageCheckPopover)?_c('approval-check-popover',{attrs:{\"popover-id\":_vm.popoverTriggerId,\"title\":_vm.approvalRuleConfig.title,\"text\":_vm.approvalRuleConfig.popoverText,\"documentation-link\":_vm.documentationLink,\"documentation-text\":_vm.approvalRuleConfig.documentationText}}):_vm._e()\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!./approved_icon.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!./approved_icon.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\n\nexport default {\n components: {\n GlIcon,\n },\n props: {\n isApproved: {\n type: Boolean,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div>\n <gl-icon v-if=\"isApproved\" name=\"mobile-issue-close\" variant=\"success\" :size=\"16\" />\n <div v-else class=\"square s16\"></div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./approved_icon.vue?vue&type=template&id=22cc35e9\"\nimport script from \"./approved_icon.vue?vue&type=script&lang=js\"\nexport * from \"./approved_icon.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('div',[(_vm.isApproved)?_c('gl-icon',{attrs:{\"name\":\"mobile-issue-close\",\"variant\":\"success\",\"size\":16}}):_c('div',{staticClass:\"square s16\"})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlIcon, GlPopover, GlLink, GlSprintf } from '@gitlab/ui';\nimport { __, s__, sprintf } from '~/locale';\nimport { helpPagePath } from '~/helpers/help_page_helper';\n\nconst i18n = {\n autoApproved: s__('Approvals|Auto approved'),\n actionRequired: s__('Approvals|Action required'),\n optional: __('Optional'),\n help: __('help'),\n countOfTotal: s__('Approvals|%{count} of %{total}'),\n popover: {\n autoApproved: {\n title: s__('Approvals|Rule automatically approved'),\n text: s__(\n 'Approvals|It looks like there was a conflict between the rules for approving this Merge Request and the users who were eligible to approve it. As a result, the system has automatically approved it to keep things moving.',\n ),\n suggestion1: s__(\n 'Approvals|Verify your %{eligibleApproverLinkStart}eligible approvers%{eligibleApproverLinkEnd} and %{approvalSettingsLinkStart}approval settings%{approvalSettingsLinkEnd} agree with each other.',\n ),\n },\n actionRequired: {\n title: s__('Approvals|Rule cannot be approved'),\n text: s__(\n 'Approvals|The number of people who need to approve this is more than those who are allowed to. Please ask the project owner to update %{securityPolicy}.',\n ),\n suggestion1: s__(\n 'Approvals|Verify the number of %{linkStart}eligible security approvers%{linkEnd} matches the required approvers for the security policy.',\n ),\n suggestion2: s__(\n 'Approvals|Verify your %{linkStart}approval settings%{linkEnd} do not conflict with this rule.',\n ),\n },\n },\n};\n\nexport default {\n components: {\n GlIcon,\n GlPopover,\n GlLink,\n GlSprintf,\n },\n props: {\n rule: {\n type: Object,\n required: true,\n },\n },\n computed: {\n pendingApprovalsText() {\n if (this.isAutoApproved) {\n return i18n.autoApproved;\n }\n if (this.isActionRequired) {\n return i18n.actionRequired;\n }\n if (!this.rule.approvalsRequired) {\n return i18n.optional;\n }\n return sprintf(i18n.countOfTotal, {\n count: this.rule.approvedBy.nodes.length,\n total: this.rule.approvalsRequired,\n });\n },\n hasInvalidRules() {\n return this.rule.invalid;\n },\n isAutoApproved() {\n return this.hasInvalidRules && this.rule.allowMergeWhenInvalid;\n },\n isActionRequired() {\n return this.hasInvalidRules && !this.rule.allowMergeWhenInvalid;\n },\n invalidRulesClasses() {\n return { 'gl-text-danger': this.isActionRequired, 'gl-text-subtle': this.isAutoApproved };\n },\n },\n i18n,\n rulesDocsPath: helpPagePath('user/project/merge_requests/approvals/rules.html', {\n anchor: 'eligible-approvers',\n }),\n settingsDocsPath: helpPagePath('user/project/merge_requests/approvals/settings', {\n anchor: 'edit-merge-request-approval-settings',\n }),\n};\n</script>\n\n<template>\n <span>\n <span v-if=\"hasInvalidRules\" class=\"vertical-align-text-top js-help\">\n <gl-icon\n :id=\"rule.name\"\n name=\"status_warning\"\n class=\"gl-cursor-help\"\n :class=\"invalidRulesClasses\"\n :aria-label=\"$options.i18n.help\"\n :size=\"14\"\n />\n <gl-popover\n v-if=\"isAutoApproved\"\n :target=\"rule.name\"\n placement=\"top\"\n :title=\"$options.i18n.popover.autoApproved.title\"\n data-testid=\"popover-auto-approved\"\n >\n {{ $options.i18n.popover.autoApproved.text }}\n <ul class=\"gl-my-2 gl-ml-6 gl-pl-0\">\n <li>\n <gl-sprintf :message=\"$options.i18n.popover.autoApproved.suggestion1\">\n <template #eligibleApproverLink=\"{ content }\">\n <gl-link :href=\"$options.rulesDocsPath\" class=\"gl-text-sm\" target=\"_blank\">\n {{ content }}\n </gl-link>\n </template>\n <template #approvalSettingsLink=\"{ content }\">\n <gl-link :href=\"$options.settingsDocsPath\" class=\"gl-text-sm\" target=\"_blank\">\n {{ content }}\n </gl-link>\n </template>\n </gl-sprintf>\n </li>\n </ul>\n </gl-popover>\n <gl-popover\n v-if=\"isActionRequired\"\n :target=\"rule.name\"\n placement=\"top\"\n :title=\"$options.i18n.popover.actionRequired.title\"\n data-testid=\"popover-action-required\"\n >\n <gl-sprintf :message=\"$options.i18n.popover.actionRequired.text\">\n <template #securityPolicy>{{ rule.name }}</template>\n </gl-sprintf>\n <ul class=\"gl-my-2 gl-ml-6 gl-pl-0\">\n <li>\n <gl-sprintf :message=\"$options.i18n.popover.actionRequired.suggestion1\">\n <template #link=\"{ content }\">\n <gl-link :href=\"$options.rulesDocsPath\" class=\"gl-text-sm\" target=\"_blank\">\n {{ content }}\n </gl-link>\n </template>\n </gl-sprintf>\n </li>\n <li>\n <gl-sprintf :message=\"$options.i18n.popover.actionRequired.suggestion2\">\n <template #link=\"{ content }\">\n <gl-link :href=\"$options.settingsDocsPath\" class=\"gl-text-sm\" target=\"_blank\">\n {{ content }}\n </gl-link>\n </template>\n </gl-sprintf>\n </li>\n </ul>\n </gl-popover>\n </span>\n <span data-testid=\"approvals-text\" :class=\"invalidRulesClasses\">\n {{ pendingApprovalsText }}\n </span>\n </span>\n</template>\n","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!./number_of_approvals.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!./number_of_approvals.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./number_of_approvals.vue?vue&type=template&id=5d5dff68\"\nimport script from \"./number_of_approvals.vue?vue&type=script&lang=js\"\nexport * from \"./number_of_approvals.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('span',[(_vm.hasInvalidRules)?_c('span',{staticClass:\"vertical-align-text-top js-help\"},[_c('gl-icon',{staticClass:\"gl-cursor-help\",class:_vm.invalidRulesClasses,attrs:{\"id\":_vm.rule.name,\"name\":\"status_warning\",\"aria-label\":_vm.$options.i18n.help,\"size\":14}}),_vm._v(\" \"),(_vm.isAutoApproved)?_c('gl-popover',{attrs:{\"target\":_vm.rule.name,\"placement\":\"top\",\"title\":_vm.$options.i18n.popover.autoApproved.title,\"data-testid\":\"popover-auto-approved\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.popover.autoApproved.text)+\"\\n \"),_c('ul',{staticClass:\"gl-my-2 gl-ml-6 gl-pl-0\"},[_c('li',[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.popover.autoApproved.suggestion1},scopedSlots:_vm._u([{key:\"eligibleApproverLink\",fn:function({ content }){return [_c('gl-link',{staticClass:\"gl-text-sm\",attrs:{\"href\":_vm.$options.rulesDocsPath,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}},{key:\"approvalSettingsLink\",fn:function({ content }){return [_c('gl-link',{staticClass:\"gl-text-sm\",attrs:{\"href\":_vm.$options.settingsDocsPath,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}}],null,false,1223161483)})],1)])]):_vm._e(),_vm._v(\" \"),(_vm.isActionRequired)?_c('gl-popover',{attrs:{\"target\":_vm.rule.name,\"placement\":\"top\",\"title\":_vm.$options.i18n.popover.actionRequired.title,\"data-testid\":\"popover-action-required\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.popover.actionRequired.text},scopedSlots:_vm._u([{key:\"securityPolicy\",fn:function(){return [_vm._v(_vm._s(_vm.rule.name))]},proxy:true}],null,false,454644417)}),_vm._v(\" \"),_c('ul',{staticClass:\"gl-my-2 gl-ml-6 gl-pl-0\"},[_c('li',[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.popover.actionRequired.suggestion1},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{staticClass:\"gl-text-sm\",attrs:{\"href\":_vm.$options.rulesDocsPath,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}}],null,false,686071221)})],1),_vm._v(\" \"),_c('li',[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.popover.actionRequired.suggestion2},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{staticClass:\"gl-text-sm\",attrs:{\"href\":_vm.$options.settingsDocsPath,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}}],null,false,2048366893)})],1)])],1):_vm._e()],1):_vm._e(),_vm._v(\" \"),_c('span',{class:_vm.invalidRulesClasses,attrs:{\"data-testid\":\"approvals-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.pendingApprovalsText)+\"\\n \")])])\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!./approvals_users_list.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!./approvals_users_list.vue?vue&type=script&lang=js\"","<script>\nimport UserAvatarList from '~/vue_shared/components/user_avatar/user_avatar_list.vue';\n\nexport default {\n components: {\n UserAvatarList,\n },\n props: {\n label: {\n type: String,\n required: true,\n },\n users: {\n type: Array,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div>\n <span class=\"gl-text-sm gl-text-subtle\">{{ label }}</span>\n <user-avatar-list class=\"gl-ml-2\" :items=\"users\" :img-size=\"16\" />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./approvals_users_list.vue?vue&type=template&id=8c6656b4\"\nimport script from \"./approvals_users_list.vue?vue&type=script&lang=js\"\nexport * from \"./approvals_users_list.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('div',[_c('span',{staticClass:\"gl-text-sm gl-text-subtle\"},[_vm._v(_vm._s(_vm.label))]),_vm._v(\" \"),_c('user-avatar-list',{staticClass:\"gl-ml-2\",attrs:{\"items\":_vm.users,\"img-size\":16}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { sprintf, __, n__, s__ } from '~/locale';\n\nexport const convertRulesToStrings = (rules) => {\n const reportTypes = rules.map((rule) => rule.reportType || '');\n const strings = [...new Set(reportTypes)].map((reportType) => {\n switch (reportType) {\n case 'SCAN_FINDING':\n return s__(\n 'SecurityOrchestration|a security scanner found vulnerabilities matching the criteria',\n );\n case 'LICENSE_SCANNING':\n return s__('SecurityOrchestration|a license scanner found license violations');\n case 'ANY_MERGE_REQUEST':\n return s__(\n 'SecurityOrchestration|a merge request has been opened against a protected branch',\n );\n default:\n return s__('SecurityOrchestration|a security policy has been violated');\n }\n });\n\n let rulesString = '';\n if (strings.length === 1) {\n [rulesString] = strings;\n } else if (strings.length > 1) {\n const last = strings.pop();\n rulesString = strings.join(__(', ')) + __(' and ') + last;\n }\n\n return rulesString;\n};\n\nexport const createSecurityPolicyRuleHelpText = (scanResultPolicies) => {\n const applicableRules = scanResultPolicies.filter((policy) => policy.approvalsRequired);\n\n if (!applicableRules.length) return '';\n\n const approvals = applicableRules[0].approvalsRequired;\n const rulesString = convertRulesToStrings(applicableRules);\n\n return sprintf(\n n__(\n 'This policy needs %{approvals} approval because %{rules}',\n 'This policy needs %{approvals} approvals because %{rules}',\n approvals,\n ),\n { approvals, rules: rulesString },\n );\n};\n","<script>\nimport { GlSkeletonLoader, GlTooltipDirective } from '@gitlab/ui';\nimport { uniqueId, orderBy } from 'lodash';\nimport ApprovalCheckRulePopover from 'ee/approvals/components/mr_widget_approval_check/approval_check_rule_popover.vue';\nimport EmptyRuleApprovers from 'ee/approvals/components/rules/empty_rule_approvers.vue';\nimport { RULE_TYPE_CODE_OWNER, RULE_TYPE_ANY_APPROVER } from 'ee/approvals/constants';\nimport { sprintf, __, s__ } from '~/locale';\nimport UserAvatarList from '~/vue_shared/components/user_avatar/user_avatar_list.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport ApprovedIcon from './approved_icon.vue';\nimport NumberOfApprovals from './number_of_approvals.vue';\nimport ApprovalsUsersList from './approvals_users_list.vue';\nimport approvalRulesQuery from './queries/approval_rules.query.graphql';\nimport mergeRequestApprovalStateUpdated from './queries/approval_rules.subscription.graphql';\nimport { createSecurityPolicyRuleHelpText } from './utils';\n\nconst INCLUDE_APPROVERS = 1;\nconst DO_NOT_INCLUDE_APPROVERS = 2;\n\nexport default {\n apollo: {\n mergeRequest: {\n query: approvalRulesQuery,\n variables() {\n return {\n projectPath: this.projectPath,\n iid: this.iid,\n };\n },\n update: (data) => data?.project?.mergeRequest,\n subscribeToMore: {\n document: mergeRequestApprovalStateUpdated,\n variables() {\n return {\n issuableId: convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.mergeRequest.id),\n };\n },\n skip() {\n return !this.mergeRequest?.id;\n },\n updateQuery(\n _,\n {\n subscriptionData: {\n data: { mergeRequestApprovalStateUpdated: queryResult },\n },\n },\n ) {\n if (queryResult) {\n this.mergeRequest = queryResult;\n }\n },\n },\n },\n },\n components: {\n GlSkeletonLoader,\n UserAvatarList,\n ApprovedIcon,\n ApprovalCheckRulePopover,\n EmptyRuleApprovers,\n NumberOfApprovals,\n ApprovalsUsersList,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [glFeatureFlagsMixin()],\n props: {\n projectPath: {\n type: String,\n required: true,\n },\n iid: {\n type: String,\n required: true,\n },\n codeCoverageCheckHelpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n eligibleApproversDocsPath: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n mergeRequest: null,\n };\n },\n computed: {\n sections() {\n const approvalRules = this.mergeRequest.approvalState.rules;\n\n return [\n {\n id: uniqueId(),\n title: '',\n rules: approvalRules.filter((rule) => rule.type.toLowerCase() !== RULE_TYPE_CODE_OWNER),\n },\n {\n id: uniqueId(),\n title: __('Code Owners'),\n rules: orderBy(\n approvalRules\n .filter((rule) => rule.type.toLowerCase() === RULE_TYPE_CODE_OWNER)\n .map((rule) => ({ ...rule, nameClass: 'gl-font-monospace gl-break-all' })),\n [(o) => o.section === 'codeowners', 'name', 'section'],\n ['desc', 'asc', 'asc'],\n ),\n },\n ].filter((x) => x.rules.length);\n },\n },\n methods: {\n getTooltipText(rule) {\n if (!rule?.scanResultPolicies) return '';\n return createSecurityPolicyRuleHelpText(rule.scanResultPolicies);\n },\n summaryText(rule) {\n return rule.approvalsRequired === 0\n ? this.summaryOptionalText(rule)\n : this.summaryRequiredText(rule);\n },\n summaryRequiredText(rule) {\n return sprintf(__('%{count} of %{required} approvals from %{name}'), {\n count: rule.approvedBy.nodes.length,\n required: rule.approvalsRequired,\n name: rule.name,\n });\n },\n summaryOptionalText(rule) {\n return sprintf(__('%{count} approvals from %{name}'), {\n count: rule.approvedBy.nodes.length,\n name: rule.name,\n });\n },\n sectionNameLabel(rule) {\n return sprintf(s__('Approvals|Section: %{section}'), { section: rule.section });\n },\n numberOfColumns(rule) {\n return rule.type.toLowerCase() === this.$options.ruleTypeAnyApprover\n ? DO_NOT_INCLUDE_APPROVERS\n : INCLUDE_APPROVERS;\n },\n },\n i18n: {\n commentedBy: s__('MRApprovals|Commented by'),\n approvedBy: s__('MRApprovals|Approved by'),\n },\n ruleTypeAnyApprover: RULE_TYPE_ANY_APPROVER,\n};\n</script>\n\n<template>\n <table class=\"table gl-border-t gl-m-0 gl-border-t-section gl-bg-subtle\">\n <thead class=\"thead-white text-nowrap\">\n <tr class=\"gl-hidden gl-text-sm md:gl-table-row\">\n <th class=\"!gl-bg-white\"></th>\n <th class=\"gl-w-full !gl-bg-white !gl-pl-0\">{{ s__('MRApprovals|Approvers') }}</th>\n <th class=\"gl-w-full !gl-bg-white\"></th>\n <th class=\"gl-w-full !gl-bg-white\">{{ s__('MRApprovals|Approvals') }}</th>\n <th class=\"gl-w-full !gl-bg-white\">{{ s__('MRApprovals|Commented by') }}</th>\n <th class=\"gl-w-full !gl-bg-white\">{{ s__('MRApprovals|Approved by') }}</th>\n </tr>\n </thead>\n <tbody v-if=\"$apollo.queries.mergeRequest.loading || !mergeRequest\" class=\"border-top-0\">\n <tr>\n <td></td>\n <td class=\"!gl-pl-0\">\n <div class=\"gl-flex\" style=\"width: 100px; height: 20px\">\n <gl-skeleton-loader :width=\"100\" :height=\"20\">\n <rect width=\"100\" height=\"20\" x=\"0\" y=\"0\" rx=\"4\" />\n </gl-skeleton-loader>\n </div>\n </td>\n <td></td>\n <td>\n <div class=\"gl-flex\" style=\"width: 50px; height: 20px\">\n <gl-skeleton-loader :width=\"50\" :height=\"20\">\n <rect width=\"50\" height=\"20\" x=\"0\" y=\"0\" rx=\"4\" />\n </gl-skeleton-loader>\n </div>\n </td>\n <td>\n <div class=\"gl-flex\" style=\"width: 20px; height: 20px\">\n <gl-skeleton-loader :width=\"20\" :height=\"20\">\n <circle cx=\"10\" cy=\"10\" r=\"10\" />\n </gl-skeleton-loader>\n </div>\n </td>\n <td>\n <div class=\"gl-flex\" style=\"width: 20px; height: 20px\">\n <gl-skeleton-loader :width=\"20\" :height=\"20\">\n <circle cx=\"10\" cy=\"10\" r=\"10\" />\n </gl-skeleton-loader>\n </div>\n </td>\n </tr>\n </tbody>\n <template v-else>\n <tbody v-for=\"{ id, title, rules } in sections\" :key=\"id\" class=\"border-top-0\">\n <tr v-if=\"title\" class=\"js-section-title gl-bg-white\">\n <td class=\"w-0\"></td>\n <td colspan=\"99\" class=\"!gl-pl-0 gl-text-sm gl-text-subtle\">\n <strong>{{ title }}</strong>\n </td>\n </tr>\n <tr v-for=\"rule in rules\" :key=\"rule.id\" data-testid=\"approval-rules-row\">\n <td class=\"gl-min-w-9 !gl-pr-4\">\n <approved-icon class=\"gl-pl-2\" :is-approved=\"rule.approved\" />\n </td>\n <td :colspan=\"numberOfColumns(rule)\" class=\"!gl-pl-0\">\n <div class=\"js-name gl-hidden gl-items-center md:gl-flex\">\n <empty-rule-approvers\n v-if=\"rule.type.toLowerCase() === $options.ruleTypeAnyApprover\"\n :eligible-approvers-docs-path=\"eligibleApproversDocsPath\"\n />\n <span v-else>\n <span\n v-if=\"rule.section && rule.section !== 'codeowners'\"\n :aria-label=\"sectionNameLabel(rule)\"\n class=\"small gl-block gl-text-subtle\"\n data-testid=\"rule-section\"\n >\n {{ rule.section }}\n </span>\n <span\n v-gl-tooltip.left\n :class=\"rule.nameClass\"\n :title=\"getTooltipText(rule)\"\n data-testid=\"approval-name\"\n >\n {{ rule.name }}\n </span>\n </span>\n <approval-check-rule-popover\n :rule=\"rule\"\n :code-coverage-check-help-page-path=\"codeCoverageCheckHelpPagePath\"\n />\n </div>\n <div class=\"flex-column js-summary gl-flex md:gl-hidden\">\n <empty-rule-approvers\n v-if=\"rule.type.toLowerCase() === $options.ruleTypeAnyApprover\"\n :eligible-approvers-docs-path=\"eligibleApproversDocsPath\"\n />\n <span v-else>{{ summaryText(rule) }}</span>\n <user-avatar-list\n v-if=\"!rule.fallback && rule.eligibleApprovers.length\"\n class=\"gl-my-3\"\n :items=\"rule.eligibleApprovers\"\n :img-size=\"24\"\n empty-text=\"\"\n />\n <approvals-users-list\n v-if=\"rule.commentedBy.nodes.length > 0\"\n :label=\"$options.i18n.commentedBy\"\n :users=\"rule.commentedBy.nodes\"\n class=\"gl-mb-3\"\n />\n <approvals-users-list\n v-if=\"rule.approvedBy.nodes.length > 0\"\n :label=\"$options.i18n.approvedBy\"\n :users=\"rule.approvedBy.nodes\"\n class=\"gl-mb-3\"\n />\n </div>\n </td>\n <td\n v-if=\"rule.type.toLowerCase() !== $options.ruleTypeAnyApprover\"\n class=\"js-approvers gl-hidden gl-min-w-20 md:gl-table-cell\"\n >\n <user-avatar-list\n :items=\"rule.eligibleApprovers\"\n :img-size=\"24\"\n empty-text=\"\"\n class=\"gl-flex gl-flex-wrap gl-gap-y-2\"\n />\n </td>\n <td class=\"w-0 js-pending gl-hidden gl-whitespace-nowrap md:gl-table-cell\">\n <number-of-approvals :rule=\"rule\" />\n </td>\n <td class=\"js-commented-by gl-hidden md:gl-table-cell\">\n <user-avatar-list\n :items=\"rule.commentedBy.nodes\"\n :img-size=\"24\"\n empty-text=\"\"\n class=\"gl-flex gl-flex-wrap gl-gap-y-2\"\n />\n </td>\n <td class=\"js-approved-by gl-hidden md:gl-table-cell\">\n <user-avatar-list\n :items=\"rule.approvedBy.nodes\"\n :img-size=\"24\"\n empty-text=\"\"\n class=\"gl-flex gl-flex-wrap gl-gap-y-2\"\n />\n </td>\n </tr>\n </tbody>\n </template>\n </table>\n</template>\n","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!./approvals_list.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!./approvals_list.vue?vue&type=script&lang=js\"","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!./approvals_footer.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!./approvals_footer.vue?vue&type=script&lang=js\"","<script>\nimport ApprovalsList from './approvals_list.vue';\n\nexport default {\n components: {\n ApprovalsList,\n },\n props: {\n codeCoverageCheckHelpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n eligibleApproversDocsPath: {\n type: String,\n required: false,\n default: '',\n },\n projectPath: {\n type: String,\n required: true,\n },\n iid: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"mr-widget-extension gl-rounded-bl-base gl-rounded-br-base gl-border-t-0\"\n data-testid=\"approvals-footer\"\n >\n <approvals-list\n :code-coverage-check-help-page-path=\"codeCoverageCheckHelpPagePath\"\n :eligible-approvers-docs-path=\"eligibleApproversDocsPath\"\n :project-path=\"projectPath\"\n :iid=\"iid\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./approvals_list.vue?vue&type=template&id=20b398f4\"\nimport script from \"./approvals_list.vue?vue&type=script&lang=js\"\nexport * from \"./approvals_list.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('table',{staticClass:\"table gl-border-t gl-m-0 gl-border-t-section gl-bg-subtle\"},[_c('thead',{staticClass:\"thead-white text-nowrap\"},[_c('tr',{staticClass:\"gl-hidden gl-text-sm md:gl-table-row\"},[_c('th',{staticClass:\"!gl-bg-white\"}),_vm._v(\" \"),_c('th',{staticClass:\"gl-w-full !gl-bg-white !gl-pl-0\"},[_vm._v(_vm._s(_vm.s__('MRApprovals|Approvers')))]),_vm._v(\" \"),_c('th',{staticClass:\"gl-w-full !gl-bg-white\"}),_vm._v(\" \"),_c('th',{staticClass:\"gl-w-full !gl-bg-white\"},[_vm._v(_vm._s(_vm.s__('MRApprovals|Approvals')))]),_vm._v(\" \"),_c('th',{staticClass:\"gl-w-full !gl-bg-white\"},[_vm._v(_vm._s(_vm.s__('MRApprovals|Commented by')))]),_vm._v(\" \"),_c('th',{staticClass:\"gl-w-full !gl-bg-white\"},[_vm._v(_vm._s(_vm.s__('MRApprovals|Approved by')))])])]),_vm._v(\" \"),(_vm.$apollo.queries.mergeRequest.loading || !_vm.mergeRequest)?_c('tbody',{staticClass:\"border-top-0\"},[_c('tr',[_c('td'),_vm._v(\" \"),_c('td',{staticClass:\"!gl-pl-0\"},[_c('div',{staticClass:\"gl-flex\",staticStyle:{\"width\":\"100px\",\"height\":\"20px\"}},[_c('gl-skeleton-loader',{attrs:{\"width\":100,\"height\":20}},[_c('rect',{attrs:{\"width\":\"100\",\"height\":\"20\",\"x\":\"0\",\"y\":\"0\",\"rx\":\"4\"}})])],1)]),_vm._v(\" \"),_c('td'),_vm._v(\" \"),_c('td',[_c('div',{staticClass:\"gl-flex\",staticStyle:{\"width\":\"50px\",\"height\":\"20px\"}},[_c('gl-skeleton-loader',{attrs:{\"width\":50,\"height\":20}},[_c('rect',{attrs:{\"width\":\"50\",\"height\":\"20\",\"x\":\"0\",\"y\":\"0\",\"rx\":\"4\"}})])],1)]),_vm._v(\" \"),_c('td',[_c('div',{staticClass:\"gl-flex\",staticStyle:{\"width\":\"20px\",\"height\":\"20px\"}},[_c('gl-skeleton-loader',{attrs:{\"width\":20,\"height\":20}},[_c('circle',{attrs:{\"cx\":\"10\",\"cy\":\"10\",\"r\":\"10\"}})])],1)]),_vm._v(\" \"),_c('td',[_c('div',{staticClass:\"gl-flex\",staticStyle:{\"width\":\"20px\",\"height\":\"20px\"}},[_c('gl-skeleton-loader',{attrs:{\"width\":20,\"height\":20}},[_c('circle',{attrs:{\"cx\":\"10\",\"cy\":\"10\",\"r\":\"10\"}})])],1)])])]):_vm._l((_vm.sections),function({ id, title, rules }){return _c('tbody',{key:id,staticClass:\"border-top-0\"},[(title)?_c('tr',{staticClass:\"js-section-title gl-bg-white\"},[_c('td',{staticClass:\"w-0\"}),_vm._v(\" \"),_c('td',{staticClass:\"!gl-pl-0 gl-text-sm gl-text-subtle\",attrs:{\"colspan\":\"99\"}},[_c('strong',[_vm._v(_vm._s(title))])])]):_vm._e(),_vm._v(\" \"),_vm._l((rules),function(rule){return _c('tr',{key:rule.id,attrs:{\"data-testid\":\"approval-rules-row\"}},[_c('td',{staticClass:\"gl-min-w-9 !gl-pr-4\"},[_c('approved-icon',{staticClass:\"gl-pl-2\",attrs:{\"is-approved\":rule.approved}})],1),_vm._v(\" \"),_c('td',{staticClass:\"!gl-pl-0\",attrs:{\"colspan\":_vm.numberOfColumns(rule)}},[_c('div',{staticClass:\"js-name gl-hidden gl-items-center md:gl-flex\"},[(rule.type.toLowerCase() === _vm.$options.ruleTypeAnyApprover)?_c('empty-rule-approvers',{attrs:{\"eligible-approvers-docs-path\":_vm.eligibleApproversDocsPath}}):_c('span',[(rule.section && rule.section !== 'codeowners')?_c('span',{staticClass:\"small gl-block gl-text-subtle\",attrs:{\"aria-label\":_vm.sectionNameLabel(rule),\"data-testid\":\"rule-section\"}},[_vm._v(\"\\n \"+_vm._s(rule.section)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left\",modifiers:{\"left\":true}}],class:rule.nameClass,attrs:{\"title\":_vm.getTooltipText(rule),\"data-testid\":\"approval-name\"}},[_vm._v(\"\\n \"+_vm._s(rule.name)+\"\\n \")])]),_vm._v(\" \"),_c('approval-check-rule-popover',{attrs:{\"rule\":rule,\"code-coverage-check-help-page-path\":_vm.codeCoverageCheckHelpPagePath}})],1),_vm._v(\" \"),_c('div',{staticClass:\"flex-column js-summary gl-flex md:gl-hidden\"},[(rule.type.toLowerCase() === _vm.$options.ruleTypeAnyApprover)?_c('empty-rule-approvers',{attrs:{\"eligible-approvers-docs-path\":_vm.eligibleApproversDocsPath}}):_c('span',[_vm._v(_vm._s(_vm.summaryText(rule)))]),_vm._v(\" \"),(!rule.fallback && rule.eligibleApprovers.length)?_c('user-avatar-list',{staticClass:\"gl-my-3\",attrs:{\"items\":rule.eligibleApprovers,\"img-size\":24,\"empty-text\":\"\"}}):_vm._e(),_vm._v(\" \"),(rule.commentedBy.nodes.length > 0)?_c('approvals-users-list',{staticClass:\"gl-mb-3\",attrs:{\"label\":_vm.$options.i18n.commentedBy,\"users\":rule.commentedBy.nodes}}):_vm._e(),_vm._v(\" \"),(rule.approvedBy.nodes.length > 0)?_c('approvals-users-list',{staticClass:\"gl-mb-3\",attrs:{\"label\":_vm.$options.i18n.approvedBy,\"users\":rule.approvedBy.nodes}}):_vm._e()],1)]),_vm._v(\" \"),(rule.type.toLowerCase() !== _vm.$options.ruleTypeAnyApprover)?_c('td',{staticClass:\"js-approvers gl-hidden gl-min-w-20 md:gl-table-cell\"},[_c('user-avatar-list',{staticClass:\"gl-flex gl-flex-wrap gl-gap-y-2\",attrs:{\"items\":rule.eligibleApprovers,\"img-size\":24,\"empty-text\":\"\"}})],1):_vm._e(),_vm._v(\" \"),_c('td',{staticClass:\"w-0 js-pending gl-hidden gl-whitespace-nowrap md:gl-table-cell\"},[_c('number-of-approvals',{attrs:{\"rule\":rule}})],1),_vm._v(\" \"),_c('td',{staticClass:\"js-commented-by gl-hidden md:gl-table-cell\"},[_c('user-avatar-list',{staticClass:\"gl-flex gl-flex-wrap gl-gap-y-2\",attrs:{\"items\":rule.commentedBy.nodes,\"img-size\":24,\"empty-text\":\"\"}})],1),_vm._v(\" \"),_c('td',{staticClass:\"js-approved-by gl-hidden md:gl-table-cell\"},[_c('user-avatar-list',{staticClass:\"gl-flex gl-flex-wrap gl-gap-y-2\",attrs:{\"items\":rule.approvedBy.nodes,\"img-size\":24,\"empty-text\":\"\"}})],1)])})],2)})],2)\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!./approvals.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!./approvals.vue?vue&type=script&lang=js\"","<script>\nimport Approvals from '~/vue_merge_request_widget/components/approvals/approvals.vue';\nimport approvalsMixin from '~/vue_merge_request_widget/mixins/approvals';\nimport assignReviewersActionButton from '../../mixins/assign_reviewers_action_button';\nimport ApprovalsAuth from './approvals_auth.vue';\nimport ApprovalsFooter from './approvals_footer.vue';\n\nexport default {\n name: 'MRWidgetMultipleRuleApprovals',\n components: {\n Approvals,\n ApprovalsAuth,\n ApprovalsFooter,\n },\n mixins: [assignReviewersActionButton, approvalsMixin],\n props: {\n mr: {\n type: Object,\n required: true,\n },\n service: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n modalId: 'approvals-auth',\n collapsed: true,\n };\n },\n computed: {\n isBasic() {\n return this.mr.approvalsWidgetType === 'base';\n },\n approvedBy() {\n return this.approvals?.approvedBy?.nodes || [];\n },\n approvalsRequired() {\n return (!this.isBasic && this.approvals?.approvalsRequired) || 0;\n },\n isOptional() {\n return !this.approvedBy.length && !this.approvalsRequired;\n },\n hasFooter() {\n return Boolean(this.approvals);\n },\n requirePasswordToApprove() {\n return !this.isBasic && this.mr.requirePasswordToApprove;\n },\n hasAllApprovals() {\n return (this.approvals?.approvalsLeft || 0) === 0;\n },\n },\n methods: {\n toggleCollapsed() {\n this.collapsed = !this.collapsed;\n },\n },\n};\n</script>\n<template>\n <approvals\n :mr=\"mr\"\n :service=\"service\"\n :is-optional-default=\"isOptional\"\n :require-password-to-approve=\"requirePasswordToApprove\"\n :modal-id=\"modalId\"\n :collapsed=\"collapsed\"\n :has-all-approvals=\"hasAllApprovals\"\n :action-buttons=\"tertiaryActionsButtons\"\n @toggle=\"toggleCollapsed\"\n >\n <template v-if=\"!isBasic\" #default=\"{ isApproving, approveWithAuth, hasApprovalAuthError }\">\n <approvals-auth\n :is-approving=\"isApproving\"\n :has-error=\"hasApprovalAuthError\"\n :modal-id=\"modalId\"\n @approve=\"approveWithAuth\"\n @hide=\"clearError\"\n />\n </template>\n <template v-if=\"!isBasic && !collapsed\" #footer>\n <approvals-footer\n v-if=\"hasFooter\"\n :code-coverage-check-help-page-path=\"mr.codeCoverageCheckHelpPagePath\"\n :eligible-approvers-docs-path=\"mr.eligibleApproversDocsPath\"\n :project-path=\"mr.targetProjectFullPath\"\n :iid=\"`${mr.iid}`\"\n />\n </template>\n </approvals>\n</template>\n","import { render, staticRenderFns } from \"./approvals_footer.vue?vue&type=template&id=7eb8423e\"\nimport script from \"./approvals_footer.vue?vue&type=script&lang=js\"\nexport * from \"./approvals_footer.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('div',{staticClass:\"mr-widget-extension gl-rounded-bl-base gl-rounded-br-base gl-border-t-0\",attrs:{\"data-testid\":\"approvals-footer\"}},[_c('approvals-list',{attrs:{\"code-coverage-check-help-page-path\":_vm.codeCoverageCheckHelpPagePath,\"eligible-approvers-docs-path\":_vm.eligibleApproversDocsPath,\"project-path\":_vm.projectPath,\"iid\":_vm.iid}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./approvals.vue?vue&type=template&id=68e8f314\"\nimport script from \"./approvals.vue?vue&type=script&lang=js\"\nexport * from \"./approvals.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('approvals',{attrs:{\"mr\":_vm.mr,\"service\":_vm.service,\"is-optional-default\":_vm.isOptional,\"require-password-to-approve\":_vm.requirePasswordToApprove,\"modal-id\":_vm.modalId,\"collapsed\":_vm.collapsed,\"has-all-approvals\":_vm.hasAllApprovals,\"action-buttons\":_vm.tertiaryActionsButtons},on:{\"toggle\":_vm.toggleCollapsed},scopedSlots:_vm._u([(!_vm.isBasic)?{key:\"default\",fn:function({ isApproving, approveWithAuth, hasApprovalAuthError }){return [_c('approvals-auth',{attrs:{\"is-approving\":isApproving,\"has-error\":hasApprovalAuthError,\"modal-id\":_vm.modalId},on:{\"approve\":approveWithAuth,\"hide\":_vm.clearError}})]}}:null,(!_vm.isBasic && !_vm.collapsed)?{key:\"footer\",fn:function(){return [(_vm.hasFooter)?_c('approvals-footer',{attrs:{\"code-coverage-check-help-page-path\":_vm.mr.codeCoverageCheckHelpPagePath,\"eligible-approvers-docs-path\":_vm.mr.eligibleApproversDocsPath,\"project-path\":_vm.mr.targetProjectFullPath,\"iid\":`${_vm.mr.iid}`}}):_vm._e()]},proxy:true}:null],null,true)})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import axios from '~/lib/utils/axios_utils';\nimport CEWidgetService from '~/vue_merge_request_widget/services/mr_widget_service';\n\nexport default class MRWidgetService extends CEWidgetService {\n constructor(mr) {\n super(mr);\n\n this.apiApprovalSettingsPath = mr.apiApprovalSettingsPath;\n }\n\n approveMergeRequestWithAuth(approvalPassword) {\n return axios\n .post(this.apiApprovePath, { approval_password: approvalPassword })\n .then((res) => res.data);\n }\n\n fetchApprovalSettings() {\n return axios.get(this.apiApprovalSettingsPath).then((res) => res.data);\n }\n\n // eslint-disable-next-line class-methods-use-this\n fetchReport(endpoint) {\n return axios.get(endpoint).then((res) => res.data);\n }\n}\n","import { DETAILED_MERGE_STATUS, MWCP_MERGE_STRATEGY } from '../constants';\nimport { stateKey } from './state_maps';\n\nexport default function deviseState() {\n if (this.detailedMergeStatus === DETAILED_MERGE_STATUS.PREPARING) {\n return stateKey.preparing;\n }\n if (!this.commitsCount) {\n return stateKey.nothingToMerge;\n }\n if (this.projectArchived) {\n return stateKey.archived;\n }\n if (this.branchMissing) {\n return stateKey.missingBranch;\n }\n if (this.detailedMergeStatus === DETAILED_MERGE_STATUS.CHECKING) {\n return stateKey.checking;\n }\n if (this.canMerge && this.isSHAMismatch) {\n return stateKey.shaMismatch;\n }\n if (\n this.detailedMergeStatus === DETAILED_MERGE_STATUS.MERGEABLE ||\n this.detailedMergeStatus === DETAILED_MERGE_STATUS.CI_STILL_RUNNING ||\n (!this.autoMergeEnabled && this.preferredAutoMergeStrategy === MWCP_MERGE_STRATEGY)\n ) {\n return stateKey.readyToMerge;\n }\n return null;\n}\n","import CEGetStateKey from '~/vue_merge_request_widget/stores/get_state_key';\nimport { MWCP_MERGE_STRATEGY, MTWCP_MERGE_STRATEGY } from '~/vue_merge_request_widget/constants';\nimport { stateKey as CEStateKey } from '~/vue_merge_request_widget/stores/state_maps';\n\nexport default function getStateKey() {\n if (this.isGeoSecondaryNode) {\n return 'geoSecondaryNode';\n }\n\n if (\n !this.autoMergeEnabled &&\n [MWCP_MERGE_STRATEGY, MTWCP_MERGE_STRATEGY].includes(this.preferredAutoMergeStrategy)\n ) {\n return CEStateKey.readyToMerge;\n }\n\n return CEGetStateKey.call(this);\n}\n","/**\n * @module finite_state_machine\n */\n\n/**\n * The states to be used with state machine definitions\n * @typedef {Object} FiniteStateMachineStates\n * @property {!Object} ANY_KEY - Any key that maps to a known state\n * @property {!Object} ANY_KEY.on - A dictionary of transition events for the ANY_KEY state that map to a different state\n * @property {!String} ANY_KEY.on.ANY_EVENT - The resulting state that the machine should end at\n */\n\n/**\n * An object whose minimum definition defined here can be used to guard UI state transitions\n * @typedef {Object} StatelessFiniteStateMachineDefinition\n * @property {FiniteStateMachineStates} states\n */\n\n/**\n * An object whose minimum definition defined here can be used to create a live finite state machine\n * @typedef {Object} LiveFiniteStateMachineDefinition\n * @property {String} initial - The initial state for this machine\n * @property {FiniteStateMachineStates} states\n */\n\n/**\n * An object that allows interacting with a stateful, live finite state machine\n * @typedef {Object} LiveStateMachine\n * @property {String} value - The current state of this machine\n * @property {Object} states - The states from when the machine definition was constructed\n * @property {Function} is - {@link module:finite_state_machine~is LiveStateMachine.is}\n * @property {Function} send - {@link module:finite_state_machine~send LiveStatemachine.send}\n */\n\n// This is not user-facing functionality\n/* eslint-disable @gitlab/require-i18n-strings */\n\nfunction hasKeys(object, keys) {\n return keys.every((key) => Object.keys(object).includes(key));\n}\n\n/**\n * Get an updated state given a machine definition, a starting state, and a transition event\n * @param {StatelessFiniteStateMachineDefinition} definition\n * @param {String} current - The current known state\n * @param {String} event - A transition event\n * @returns {String} A state value\n */\nexport function transition(definition, current, event) {\n return definition?.states?.[current]?.on[event] || current;\n}\n\nfunction startMachine({ states, initial } = {}) {\n let current = initial;\n\n return {\n /**\n * A convenience function to test arbitrary input against the machine's current state\n * @param {String} testState - The value to test against the machine's current state\n */\n is(testState) {\n return current === testState;\n },\n /**\n * A function to transition the live state machine using an arbitrary event\n * @param {String} event - The event to send to the machine\n * @returns {String} A string representing the current state. Note this may not have changed if the current state + transition event combination are not valid.\n */\n send(event) {\n current = transition({ states }, current, event);\n\n return current;\n },\n get value() {\n return current;\n },\n set value(forcedState) {\n current = forcedState;\n },\n states,\n };\n}\n\n/**\n * Create a live state machine\n * @param {LiveFiniteStateMachineDefinition} definition\n * @returns {LiveStateMachine} A live state machine\n */\nexport function machine(definition) {\n if (!hasKeys(definition, ['initial', 'states'])) {\n throw new Error(\n 'A state machine must have an initial state (`.initial`) and a dictionary of possible states (`.states`)',\n );\n } else if (!hasKeys(definition.states, [definition.initial])) {\n throw new Error(\n `Cannot initialize the state machine to state '${definition.initial}'. Is that one of the machine's defined states?`,\n );\n } else {\n return startMachine(definition);\n }\n}\n","import getStateKey from 'ee_else_ce/vue_merge_request_widget/stores/get_state_key';\nimport { STATUS_CLOSED, STATUS_MERGED, STATUS_OPEN } from '~/issues/constants';\nimport { formatDate, getTimeago, newDate, timeagoLanguageCode } from '~/lib/utils/datetime_utility';\nimport { machine } from '~/lib/utils/finite_state_machine';\nimport { badgeState } from '~/merge_requests/components/merge_request_header.vue';\nimport { cleanLeadingSeparator } from '~/lib/utils/url_utility';\nimport {\n MTWPS_MERGE_STRATEGY,\n MT_MERGE_STRATEGY,\n MWCP_MERGE_STRATEGY,\n MWPS_MERGE_STRATEGY,\n MTWCP_MERGE_STRATEGY,\n STATE_MACHINE,\n stateToTransitionMap,\n} from '../constants';\nimport { stateKey } from './state_maps';\n\nconst { format } = getTimeago();\n\nconst { states } = STATE_MACHINE;\nconst { IDLE } = states;\n\nexport default class MergeRequestStore {\n constructor(data) {\n this.sha = data.diff_head_sha;\n this.gitlabLogo = data.gitlabLogo;\n\n this.apiApprovalsPath = data.api_approvals_path;\n this.apiApprovePath = data.api_approve_path;\n this.apiUnapprovePath = data.api_unapprove_path;\n this.hasApprovalsAvailable = data.has_approvals_available;\n\n this.stateMachine = machine(STATE_MACHINE.definition);\n this.machineValue = this.stateMachine.value;\n this.mergeError = data.mergeError;\n this.multipleApprovalRulesAvailable = data.multiple_approval_rules_available || false;\n this.id = data.id;\n this.autoMergeEnabled = false;\n\n this.setPaths(data);\n\n this.setData(data);\n this.initCodeQualityReport(data);\n this.setGitpodData(data);\n }\n\n initCodeQualityReport(data) {\n this.blobPath = data.blob_path;\n this.codeQuality = data.codequality_reports_path;\n }\n\n setData(data, isRebased) {\n this.initApprovals();\n\n this.updateStatusState(data.state);\n\n if (isRebased) {\n this.sha = data.diff_head_sha;\n }\n\n const pipelineStatus = data.pipeline ? data.pipeline.details.status : null;\n\n this.squash = data.squash;\n this.squashIsEnabledByDefault = data.squash_enabled_by_default;\n this.squashIsReadonly = data.squash_readonly;\n this.enableSquashBeforeMerge = this.enableSquashBeforeMerge || true;\n this.squashIsSelected = data.squash_readonly ? data.squash_on_merge : data.squash;\n\n this.iid = data.iid;\n this.title = data.title;\n this.targetBranch = data.target_branch;\n this.targetBranchSha = data.target_branch_sha;\n this.sourceBranch = data.source_branch;\n this.sourceBranchProtected = data.source_branch_protected;\n this.conflictsDocsPath = data.conflicts_docs_path;\n this.commitMessage = data.default_merge_commit_message;\n this.shortMergeCommitSha = data.short_merged_commit_sha;\n this.mergeCommitSha = data.merged_commit_sha;\n this.commitMessageWithDescription = data.default_merge_commit_message_with_description;\n this.divergedCommitsCount = data.diverged_commits_count;\n this.pipeline = data.pipeline || {};\n this.pipelineCoverageDelta = data.pipeline_coverage_delta;\n this.buildsWithCoverage = data.builds_with_coverage;\n this.mergePipeline = data.merge_pipeline || {};\n this.deployments = this.deployments || data.deployments || [];\n this.postMergeDeployments = this.postMergeDeployments || [];\n this.commits = data.commits_without_merge_commits || [];\n this.squashCommitMessage = data.default_squash_commit_message;\n this.rebaseInProgress = data.rebase_in_progress;\n this.mergeRequestDiffsPath = data.diffs_path;\n this.approvalsWidgetType = data.approvals_widget_type;\n this.mergeRequestWidgetPath = data.merge_request_widget_path;\n\n if (data.issues_links) {\n const links = data.issues_links;\n const { closing } = links;\n const mentioned = links.mentioned_but_not_closing;\n const assignToMe = links.assign_to_closing;\n const unassignedCount = links.assign_to_closing_count;\n\n if (closing || mentioned || unassignedCount) {\n this.relatedLinks = {\n closing,\n mentioned,\n assignToMe,\n closingCount: links.closing_count,\n mentionedCount: links.mentioned_count,\n unassignedCount: links.assign_to_closing_count,\n };\n }\n }\n\n this.updatedAt = data.updated_at;\n this.metrics = MergeRequestStore.buildMetrics(data.metrics);\n this.setToAutoMergeBy = MergeRequestStore.formatUserObject(data.merge_user || {});\n this.mergeUserId = data.merge_user_id;\n this.currentUserId = gon.current_user_id;\n this.sourceBranchRemoved = !data.source_branch_exists;\n this.shouldRemoveSourceBranch = data.remove_source_branch || false;\n this.autoMergeStrategy = data.auto_merge_strategy;\n this.availableAutoMergeStrategies = data.available_auto_merge_strategies;\n this.preferredAutoMergeStrategy = MergeRequestStore.getPreferredAutoMergeStrategy(\n this.availableAutoMergeStrategies,\n );\n this.ffOnlyEnabled = data.ff_only_enabled;\n this.ffMergePossible = data.ff_merge_possible;\n this.isRemovingSourceBranch = this.isRemovingSourceBranch || false;\n this.mergeRequestState = data.state;\n this.isOpen = this.mergeRequestState === STATUS_OPEN;\n this.latestSHA = data.diff_head_sha;\n this.isMergeAllowed = data.mergeable || false;\n this.mergeOngoing = data.merge_ongoing;\n this.allowCollaboration = data.allow_collaboration;\n this.sourceProjectId = data.source_project_id;\n this.targetProjectId = data.target_project_id;\n\n // CI related\n this.hasCI = data.has_ci;\n this.ciStatus = data.ci_status;\n this.isPipelinePassing =\n this.ciStatus === 'success' || this.ciStatus === 'success-with-warnings';\n this.isPipelineSkipped = this.ciStatus === 'skipped';\n this.pipelineDetailedStatus = pipelineStatus;\n this.isPipelineActive = data.pipeline ? data.pipeline.active : false;\n this.pipelineIid = data.pipeline?.iid?.toString() || '';\n this.pipelineProjectPath = data.pipeline?.project_path\n ? cleanLeadingSeparator(data.pipeline?.project_path)\n : '';\n this.isPipelineBlocked =\n data.only_allow_merge_if_pipeline_succeeds && pipelineStatus?.group === 'manual';\n this.faviconOverlayPath = data.favicon_overlay_path;\n this.terraformReportsPath = data.terraform_reports_path;\n this.testResultsPath = data.test_reports_path;\n this.accessibilityReportPath = data.accessibility_report_path;\n this.exposedArtifactsPath = data.exposed_artifacts_path;\n this.cancelAutoMergePath = data.cancel_auto_merge_path;\n this.canCancelAutomaticMerge = Boolean(data.cancel_auto_merge_path);\n this.ciIntegrationJenkins = data.jenkins_integration_active;\n this.retargeted = data.retargeted;\n\n this.newBlobPath = data.new_blob_path;\n this.sourceBranchPath = data.source_branch_path;\n this.sourceBranchLink = data.source_branch_with_namespace_link;\n this.rebasePath = data.rebase_path;\n this.targetBranchPath = data.target_branch_commits_path;\n this.targetBranchTreePath = data.target_branch_tree_path;\n this.conflictResolutionPath = data.conflict_resolution_path;\n this.removeWIPPath = data.remove_wip_path;\n this.createIssueToResolveDiscussionsPath = data.create_issue_to_resolve_discussions_path;\n this.mergePath = data.merge_path;\n this.mergeCommitPath = data.merged_commit_path;\n this.canPushToSourceBranch = data.can_push_to_source_branch;\n\n const currentUser = data.current_user;\n\n this.cherryPickInForkPath = currentUser.cherry_pick_in_fork_path;\n this.revertInForkPath = currentUser.revert_in_fork_path;\n\n this.canRemoveSourceBranch = currentUser.can_remove_source_branch || false;\n this.canCreateIssue = currentUser.can_create_issue || false;\n this.canCherryPickInCurrentMR = currentUser.can_cherry_pick_on_current_merge_request || false;\n this.canRevertInCurrentMR = currentUser.can_revert_on_current_merge_request || false;\n\n this.setState();\n }\n\n setGraphqlData(project) {\n const { mergeRequest } = project;\n\n this.updateStatusState(mergeRequest.state);\n\n this.issuableId = mergeRequest.id;\n this.projectArchived = project.archived;\n this.onlyAllowMergeIfPipelineSucceeds = project.onlyAllowMergeIfPipelineSucceeds;\n this.allowMergeOnSkippedPipeline = project.allowMergeOnSkippedPipeline;\n\n this.autoMergeEnabled = mergeRequest.autoMergeEnabled;\n this.canBeMerged = mergeRequest.mergeStatus === 'can_be_merged';\n this.canMerge = mergeRequest.userPermissions.canMerge;\n\n this.commitsCount = mergeRequest.commitCount;\n this.branchMissing =\n mergeRequest.detailedMergeStatus !== 'NOT_OPEN' &&\n (!mergeRequest.sourceBranchExists || !mergeRequest.targetBranchExists);\n this.hasConflicts = mergeRequest.conflicts;\n this.hasMergeableDiscussionsState = mergeRequest.mergeableDiscussionsState === false;\n this.mergeError = mergeRequest.mergeError;\n this.mergeStatus = mergeRequest.mergeStatus;\n this.mergeAfter = mergeRequest.mergeAfter;\n this.isPipelineFailed = this.ciStatus === 'failed' || this.ciStatus === 'canceled';\n this.isSHAMismatch = this.sha !== mergeRequest.diffHeadSha;\n this.shouldBeRebased = mergeRequest.shouldBeRebased;\n this.draft = mergeRequest.draft;\n this.mergeRequestState = mergeRequest.state;\n this.detailedMergeStatus = mergeRequest.detailedMergeStatus;\n\n this.setState();\n }\n\n setGraphqlSubscriptionData(data) {\n this.detailedMergeStatus = data.detailedMergeStatus;\n this.commitsCount = data.commitCount;\n\n this.setState();\n }\n\n updateStatusState(state) {\n if (this.mergeRequestState !== state && badgeState.updateStatus) {\n badgeState.updateStatus();\n }\n }\n\n setGitpodData(data) {\n this.showGitpodButton = data.show_gitpod_button;\n this.gitpodUrl = data.gitpod_url;\n this.gitpodEnabled = data.gitpod_enabled;\n this.userPreferencesGitpodPath = data.user_preferences_gitpod_path;\n this.userProfileEnableGitpodPath = data.user_profile_enable_gitpod_path;\n }\n\n setState() {\n if (this.mergeOngoing) {\n this.state = 'merging';\n } else if (this.isOpen) {\n this.state = getStateKey.call(this);\n } else {\n switch (this.mergeRequestState) {\n case STATUS_MERGED:\n this.state = STATUS_MERGED;\n break;\n case STATUS_CLOSED:\n this.state = STATUS_CLOSED;\n break;\n default:\n this.state = null;\n }\n }\n\n this.translateStateToMachine();\n }\n\n setPaths(data) {\n // Paths are set on the first load of the page and not auto-refreshed\n this.squashBeforeMergeHelpPath = data.squash_before_merge_help_path;\n this.mrTroubleshootingDocsPath = data.mr_troubleshooting_docs_path;\n this.ciTroubleshootingDocsPath = data.ci_troubleshooting_docs_path;\n this.pipelineMustSucceedDocsPath = data.pipeline_must_succeed_docs_path;\n this.mergeRequestBasicPath = data.merge_request_basic_path;\n this.mergeRequestWidgetPath = data.merge_request_widget_path;\n this.mergeRequestCachedWidgetPath = data.merge_request_cached_widget_path;\n this.emailPatchesPath = data.email_patches_path;\n this.plainDiffPath = data.plain_diff_path;\n this.mergeCheckPath = data.merge_check_path;\n this.mergeActionsContentPath = data.commit_change_content_path;\n this.targetProjectFullPath = data.target_project_full_path;\n this.sourceProjectFullPath = data.source_project_full_path;\n this.mergeRequestPipelinesHelpPath = data.merge_request_pipelines_docs_path;\n this.conflictsDocsPath = data.conflicts_docs_path;\n this.reviewingDocsPath = data.reviewing_and_managing_merge_requests_docs_path;\n this.ciEnvironmentsStatusPath = data.ci_environments_status_path;\n this.codeCoverageCheckHelpPagePath = data.code_coverage_check_help_page_path;\n this.licenseComplianceDocsPath = data.license_compliance_docs_path;\n this.eligibleApproversDocsPath = data.eligible_approvers_docs_path;\n this.mergeImmediatelyDocsPath = data.merge_immediately_docs_path;\n this.approvalsHelpPath = data.approvals_help_path;\n this.mergeRequestAddCiConfigPath = data.merge_request_add_ci_config_path;\n this.pipelinesEmptySvgPath = data.pipelines_empty_svg_path;\n this.humanAccess = data.human_access;\n this.newPipelinePath = data.new_project_pipeline_path;\n this.sourceProjectDefaultUrl = data.source_project_default_url;\n this.userCalloutsPath = data.user_callouts_path;\n this.suggestPipelineFeatureId = data.suggest_pipeline_feature_id;\n this.migrateJenkinsFeatureId = data.migrate_jenkins_feature_id;\n this.isDismissedSuggestPipeline = data.is_dismissed_suggest_pipeline;\n this.isDismissedJenkinsMigration = data.is_dismissed_jenkins_migration;\n this.securityReportsDocsPath = data.security_reports_docs_path;\n this.securityConfigurationPath = data.security_configuration_path;\n\n // code quality\n const blobPath = data.blob_path || {};\n this.headBlobPath = blobPath.head_path || '';\n this.baseBlobPath = blobPath.base_path || '';\n this.codequalityReportsPath = data.codequality_reports_path;\n\n // Security reports\n this.sastComparisonPath = data.sast_comparison_path;\n this.secretDetectionComparisonPath = data.secret_detection_comparison_path;\n\n this.sastComparisonPathV2 = data.new_sast_comparison_path;\n this.secretDetectionComparisonPathV2 = data.new_secret_detection_comparison_path;\n }\n\n get isNothingToMergeState() {\n return this.state === stateKey.nothingToMerge;\n }\n\n get isMergedState() {\n return this.state === stateKey.merged;\n }\n\n static buildMetrics(metrics) {\n if (!metrics) {\n return {};\n }\n\n return {\n mergedBy: MergeRequestStore.formatUserObject(metrics.merged_by),\n closedBy: MergeRequestStore.formatUserObject(metrics.closed_by),\n mergedAt: formatDate(metrics.merged_at),\n closedAt: formatDate(metrics.closed_at),\n readableMergedAt: MergeRequestStore.getReadableDate(metrics.merged_at),\n readableClosedAt: MergeRequestStore.getReadableDate(metrics.closed_at),\n };\n }\n\n static formatUserObject(user) {\n if (!user) {\n return {};\n }\n\n return {\n name: user.name || '',\n username: user.username || '',\n webUrl: user.web_url || '',\n avatarUrl: user.avatar_url || '',\n };\n }\n\n static getReadableDate(date) {\n if (!date) {\n return '';\n }\n\n return format(newDate(date), timeagoLanguageCode);\n }\n\n static getPreferredAutoMergeStrategy(availableAutoMergeStrategies) {\n if (availableAutoMergeStrategies === undefined) return undefined;\n\n if (availableAutoMergeStrategies.includes(MTWPS_MERGE_STRATEGY)) {\n return MTWPS_MERGE_STRATEGY;\n }\n if (availableAutoMergeStrategies.includes(MT_MERGE_STRATEGY)) {\n return MT_MERGE_STRATEGY;\n }\n if (availableAutoMergeStrategies.includes(MWCP_MERGE_STRATEGY)) {\n return MWCP_MERGE_STRATEGY;\n }\n if (availableAutoMergeStrategies.includes(MWPS_MERGE_STRATEGY)) {\n return MWPS_MERGE_STRATEGY;\n }\n if (availableAutoMergeStrategies.includes(MTWCP_MERGE_STRATEGY)) {\n return MTWCP_MERGE_STRATEGY;\n }\n\n return undefined;\n }\n\n initApprovals() {\n this.isApproved = this.isApproved || false;\n }\n\n setApprovals(data) {\n this.isApproved = data.approved || false;\n this.approvals = true;\n\n this.setState();\n }\n\n setRemoveSourceBranch(removeSourceBranch) {\n this.shouldRemoveSourceBranch = removeSourceBranch;\n }\n\n // eslint-disable-next-line class-methods-use-this\n get hasMergeChecksFailed() {\n return false;\n }\n\n get isApprovalNeeded() {\n return this.hasApprovalsAvailable ? !this.isApproved : false;\n }\n\n get preventMerge() {\n return this.isApprovalNeeded && this.preferredAutoMergeStrategy !== MWCP_MERGE_STRATEGY;\n }\n\n // Because the state machine doesn't yet handle every state and transition,\n // some use-cases will need to force a state that can't be reached by\n // a known transition. This is undesirable long-term (as it subverts\n // the intent of a state machine), but is necessary until the machine\n // can handle all possible combinations. (unsafeForce)\n transitionStateMachine({ transition, state, unsafeForce = false } = {}) {\n if (unsafeForce && state) {\n this.stateMachine.value = state;\n } else {\n this.stateMachine.send(transition);\n }\n\n this.machineValue = this.stateMachine.value;\n }\n translateStateToMachine() {\n const transition = stateToTransitionMap[this.state];\n let transitionOptions = {\n state: IDLE,\n unsafeForce: true,\n };\n\n if (transition) {\n transitionOptions = { transition };\n }\n\n this.transitionStateMachine(transitionOptions);\n }\n}\n","import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';\nimport { s__ } from '~/locale';\nimport CEMergeRequestStore from '~/vue_merge_request_widget/stores/mr_widget_store';\nimport {\n DETAILED_MERGE_STATUS,\n MWCP_MERGE_STRATEGY,\n MTWCP_MERGE_STRATEGY,\n} from '~/vue_merge_request_widget/constants';\n\nexport default class MergeRequestStore extends CEMergeRequestStore {\n constructor(data) {\n super(data);\n\n this.sastHelp = data.sast_help_path;\n this.containerScanningHelp = data.container_scanning_help_path;\n this.dastHelp = data.dast_help_path;\n this.apiFuzzingHelp = data.api_fuzzing_help_path;\n this.coverageFuzzingHelp = data.coverage_fuzzing_help_path;\n this.secretDetectionHelp = data.secret_detection_help_path;\n this.dependencyScanningHelp = data.dependency_scanning_help_path;\n this.canReadVulnerabilities = data.can_read_vulnerabilities;\n this.canReadVulnerabilityFeedback = data.can_read_vulnerability_feedback;\n this.canRetryExternalStatusChecks = data.can_retry_external_status_checks;\n this.securityReportsPipelineId = data.pipeline_id;\n this.securityReportsPipelineIid = data.pipeline_iid;\n this.createVulnerabilityFeedbackIssuePath = data.create_vulnerability_feedback_issue_path;\n this.createVulnerabilityFeedbackMergeRequestPath =\n data.create_vulnerability_feedback_merge_request_path;\n this.createVulnerabilityFeedbackDismissalPath =\n data.create_vulnerability_feedback_dismissal_path;\n this.appUrl = gon && gon.gitlab_url;\n this.licenseScanning = data.license_scanning;\n this.requirePasswordToApprove = data.require_password_to_approve;\n this.requireSamlAuthToApprove = data.require_saml_auth_to_approve;\n this.mergeRequestApproversAvailable = data.merge_request_approvers_available;\n this.aiCommitMessageEnabled = data.aiCommitMessageEnabled;\n this.pathLocksPath = data.path_locks_path;\n\n this.initBrowserPerformanceReport(data);\n this.initLoadPerformanceReport(data);\n this.initLicenseComplianceReport(data);\n\n this.metricsReportsPath = data.metrics_reports_path;\n\n this.enabledReports = convertObjectPropsToCamelCase(data.enabled_reports);\n\n this.apiApprovalSettingsPath = data.api_approval_settings_path;\n this.mergeTrainsPath = data.merge_trains_path;\n this.pipelineEtag = data.pipeline_etag;\n }\n\n setData(data, isRebased) {\n this.initGeo(data);\n\n this.mergePipelinesEnabled = Boolean(data.merge_pipelines_enabled);\n this.mergeTrainsSkipAllowed = data.merge_trains_skip_train_allowed;\n this.policyViolation = data.policy_violation;\n this.jiraAssociation = data.jira_associations || {};\n\n super.setData(data, isRebased);\n }\n\n setGraphqlData(project) {\n super.setGraphqlData(project);\n\n const { mergeRequest } = project;\n\n this.mergeTrainsCount = project?.mergeTrains?.nodes[0]?.cars?.count;\n this.mergeTrainCar = mergeRequest.mergeTrainCar;\n }\n\n setGraphqlSubscriptionData(data) {\n super.setGraphqlSubscriptionData(data);\n\n this.mergeTrainsCount = data.mergeRequest?.project?.mergeTrains?.nodes[0]?.cars?.count;\n this.mergeTrainCar = data.mergeTrainCar;\n }\n\n setPaths(data) {\n // Paths are set on the first load of the page and not auto-refreshed\n super.setPaths(data);\n\n this.discoverProjectSecurityPath = data.discover_project_security_path;\n this.apiStatusChecksPath = data.api_status_checks_path;\n this.samlApprovalPath = data.saml_approval_path;\n\n // Security scan diff paths\n this.containerScanningComparisonPath = data.container_scanning_comparison_path;\n this.coverageFuzzingComparisonPath = data.coverage_fuzzing_comparison_path;\n this.apiFuzzingComparisonPath = data.api_fuzzing_comparison_path;\n this.dastComparisonPath = data.dast_comparison_path;\n this.dependencyScanningComparisonPath = data.dependency_scanning_comparison_path;\n\n this.containerScanningComparisonPathV2 = data.new_container_scanning_comparison_path;\n this.coverageFuzzingComparisonPathV2 = data.new_coverage_fuzzing_comparison_path;\n this.apiFuzzingComparisonPathV2 = data.new_api_fuzzing_comparison_path;\n this.dastComparisonPathV2 = data.new_dast_comparison_path;\n this.dependencyScanningComparisonPathV2 = data.new_dependency_scanning_comparison_path;\n this.securityPoliciesPath = data.security_policies_path;\n }\n\n initGeo(data) {\n this.isGeoSecondaryNode = this.isGeoSecondaryNode || data.is_geo_secondary_node;\n this.geoSecondaryHelpPath = this.geoSecondaryHelpPath || data.geo_secondary_help_path;\n }\n\n setApprovals(data) {\n super.setApprovals(data);\n\n this.approvalsLeft = data.approvalsLeft;\n\n this.setState();\n }\n\n get hasMergeChecksFailed() {\n if (\n this.hasApprovalsAvailable &&\n this.approvalsLeft &&\n this.preferredAutoMergeStrategy !== MWCP_MERGE_STRATEGY\n ) {\n return this.detailedMergeStatus === DETAILED_MERGE_STATUS.NOT_APPROVED;\n }\n\n if (this.detailedMergeStatus === DETAILED_MERGE_STATUS.BLOCKED_STATUS) return true;\n if (this.detailedMergeStatus === DETAILED_MERGE_STATUS.EXTERNAL_STATUS_CHECKS) return true;\n\n return super.hasMergeChecksFailed;\n }\n\n get preventMerge() {\n return (\n this.hasApprovalsAvailable &&\n this.isApprovalNeeded &&\n ![MWCP_MERGE_STRATEGY, MTWCP_MERGE_STRATEGY].includes(this.preferredAutoMergeStrategy)\n );\n }\n\n initBrowserPerformanceReport(data) {\n this.browserPerformance = data.browser_performance;\n this.browserPerformanceMetrics = {\n improved: [],\n degraded: [],\n same: [],\n };\n }\n\n initLoadPerformanceReport(data) {\n this.loadPerformance = data.load_performance;\n this.loadPerformanceMetrics = {\n improved: [],\n degraded: [],\n same: [],\n };\n }\n\n initLicenseComplianceReport({\n license_scanning_comparison_path,\n license_scanning_comparison_collapsed_path,\n api_approvals_path,\n license_scanning,\n }) {\n this.licenseCompliance = {\n license_scanning_comparison_path,\n license_scanning_comparison_collapsed_path,\n api_approvals_path,\n license_scanning,\n };\n }\n\n compareBrowserPerformanceMetrics(headMetrics, baseMetrics) {\n const headMetricsIndexed = MergeRequestStore.normalizeBrowserPerformanceMetrics(headMetrics);\n const baseMetricsIndexed = MergeRequestStore.normalizeBrowserPerformanceMetrics(baseMetrics);\n const improved = [];\n const degraded = [];\n const same = [];\n\n Object.keys(headMetricsIndexed).forEach((subject) => {\n const subjectMetrics = headMetricsIndexed[subject];\n Object.keys(subjectMetrics).forEach((metric) => {\n const headMetricData = subjectMetrics[metric];\n\n if (baseMetricsIndexed[subject] && baseMetricsIndexed[subject][metric]) {\n const baseMetricData = baseMetricsIndexed[subject][metric];\n const metricData = {\n name: metric,\n path: subject,\n score: headMetricData.value,\n delta: headMetricData.value - baseMetricData.value,\n };\n\n if (metricData.delta !== 0) {\n const isImproved =\n headMetricData.desiredSize === 'smaller'\n ? metricData.delta < 0\n : metricData.delta > 0;\n\n if (isImproved) {\n improved.push(metricData);\n } else {\n degraded.push(metricData);\n }\n } else {\n same.push(metricData);\n }\n }\n });\n });\n\n this.browserPerformanceMetrics = { improved, degraded, same };\n }\n\n // normalize browser performance metrics by indexing on performance subject and metric name\n static normalizeBrowserPerformanceMetrics(browserPerformanceData) {\n const indexedSubjects = {};\n browserPerformanceData.forEach(({ subject, metrics }) => {\n const indexedMetrics = {};\n metrics.forEach(({ name, ...data }) => {\n indexedMetrics[name] = data;\n });\n indexedSubjects[subject] = indexedMetrics;\n });\n\n return indexedSubjects;\n }\n\n compareLoadPerformanceMetrics(headMetrics, baseMetrics) {\n const headMetricsIndexed = MergeRequestStore.normalizeLoadPerformanceMetrics(headMetrics);\n const baseMetricsIndexed = MergeRequestStore.normalizeLoadPerformanceMetrics(baseMetrics);\n const improved = [];\n const degraded = [];\n const same = [];\n\n Object.keys(headMetricsIndexed).forEach((metric) => {\n const headMetricData = headMetricsIndexed[metric];\n if (metric in baseMetricsIndexed) {\n const baseMetricData = baseMetricsIndexed[metric];\n const metricData = {\n name: metric,\n score: headMetricData,\n delta: parseFloat((parseFloat(headMetricData) - parseFloat(baseMetricData)).toFixed(2)),\n };\n\n if (metricData.delta !== 0.0) {\n const isImproved = [s__('ciReport|RPS'), s__('ciReport|Checks')].includes(metric)\n ? metricData.delta > 0\n : metricData.delta < 0;\n\n if (isImproved) {\n improved.push(metricData);\n } else {\n degraded.push(metricData);\n }\n } else {\n same.push(metricData);\n }\n }\n });\n\n this.loadPerformanceMetrics = { improved, degraded, same };\n }\n\n // normalize load performance metrics for comsumption\n static normalizeLoadPerformanceMetrics(loadPerformanceData) {\n if (!('metrics' in loadPerformanceData)) return {};\n\n const { metrics } = loadPerformanceData;\n const indexedMetrics = {};\n\n Object.keys(loadPerformanceData.metrics).forEach((metric) => {\n switch (metric) {\n case 'http_reqs':\n indexedMetrics[s__('ciReport|RPS')] = metrics.http_reqs.rate;\n break;\n case 'http_req_waiting':\n indexedMetrics[s__('ciReport|TTFB P90')] = metrics.http_req_waiting['p(90)'];\n indexedMetrics[s__('ciReport|TTFB P95')] = metrics.http_req_waiting['p(95)'];\n break;\n case 'checks':\n indexedMetrics[s__('ciReport|Checks')] = `${(\n (metrics.checks.passes / (metrics.checks.passes + metrics.checks.fails)) *\n 100.0\n ).toFixed(2)}%`;\n break;\n default:\n break;\n }\n });\n\n return indexedMetrics;\n }\n}\n","import { stateToComponentMap as ceStateMap } from '~/vue_merge_request_widget/stores/state_maps';\n\nexport const stateKey = {\n policyViolation: 'policyViolation',\n};\nexport const stateToComponentMap = {\n ...ceStateMap,\n geoSecondaryNode: 'mr-widget-geo-secondary-node',\n policyViolation: 'mr-widget-policy-violation',\n};\n","/* eslint-disable consistent-return, no-return-assign */\n\nfunction notificationGranted(message, opts, onclick) {\n const notification = new Notification(message, opts);\n setTimeout(\n () =>\n // Hide the notification after X amount of seconds\n notification.close(),\n 8000,\n );\n\n return (notification.onclick = onclick || notification.close);\n}\n\nfunction notifyPermissions() {\n /* eslint-disable-next-line @gitlab/require-i18n-strings */\n if ('Notification' in window) {\n return Notification.requestPermission();\n }\n}\n\n// eslint-disable-next-line max-params\nfunction notifyMe(message, body, icon, onclick) {\n const opts = {\n body,\n icon,\n };\n // Let's check if the browser supports notifications\n /* eslint-disable-next-line @gitlab/require-i18n-strings */\n if (!('Notification' in window)) {\n // do nothing\n } else if (Notification.permission === 'granted') {\n // If it's okay let's create a notification\n return notificationGranted(message, opts, onclick);\n } else if (Notification.permission !== 'denied') {\n return Notification.requestPermission((permission) => {\n // If the user accepts, let's create a notification\n if (permission === 'granted') {\n return notificationGranted(message, opts, onclick);\n }\n });\n }\n}\n\nconst notify = {\n notificationGranted,\n notifyPermissions,\n notifyMe,\n};\n\nexport default notify;\n","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!./loading.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!./loading.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlSkeletonLoader } from '@gitlab/ui';\n\nexport default {\n components: {\n GlSkeletonLoader,\n },\n};\n</script>\n\n<template>\n <div class=\"gl-mt-5\">\n <div class=\"mr-section-container gl-p-4\">\n <gl-skeleton-loader :width=\"577\" :height=\"12\">\n <rect width=\"86\" height=\"12\" rx=\"2\" />\n <rect x=\"96\" width=\"300\" height=\"12\" rx=\"2\" />\n </gl-skeleton-loader>\n </div>\n <div class=\"mr-section-container gl-p-4\">\n <gl-skeleton-loader :width=\"577\" :height=\"72\">\n <rect width=\"120\" height=\"12\" rx=\"2\" />\n <rect y=\"20\" width=\"300\" height=\"12\" rx=\"2\" />\n <rect y=\"40\" width=\"60\" height=\"12\" rx=\"2\" />\n <rect y=\"40\" x=\"68\" width=\"100\" height=\"12\" rx=\"2\" />\n <rect y=\"60\" width=\"40\" height=\"12\" rx=\"2\" />\n </gl-skeleton-loader>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./loading.vue?vue&type=template&id=50dc4c0b\"\nimport script from \"./loading.vue?vue&type=script&lang=js\"\nexport * from \"./loading.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('div',{staticClass:\"gl-mt-5\"},[_c('div',{staticClass:\"mr-section-container gl-p-4\"},[_c('gl-skeleton-loader',{attrs:{\"width\":577,\"height\":12}},[_c('rect',{attrs:{\"width\":\"86\",\"height\":\"12\",\"rx\":\"2\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"x\":\"96\",\"width\":\"300\",\"height\":\"12\",\"rx\":\"2\"}})])],1),_vm._v(\" \"),_c('div',{staticClass:\"mr-section-container gl-p-4\"},[_c('gl-skeleton-loader',{attrs:{\"width\":577,\"height\":72}},[_c('rect',{attrs:{\"width\":\"120\",\"height\":\"12\",\"rx\":\"2\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"y\":\"20\",\"width\":\"300\",\"height\":\"12\",\"rx\":\"2\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"y\":\"40\",\"width\":\"60\",\"height\":\"12\",\"rx\":\"2\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"y\":\"40\",\"x\":\"68\",\"width\":\"100\",\"height\":\"12\",\"rx\":\"2\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"y\":\"60\",\"width\":\"40\",\"height\":\"12\",\"rx\":\"2\"}})])],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!./mr_widget_alert_message.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!./mr_widget_alert_message.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlAlert } from '@gitlab/ui';\n\nexport default {\n name: 'MRWidgetAlertMessage',\n components: {\n GlAlert,\n GlLink,\n },\n props: {\n type: {\n type: String,\n required: true,\n },\n helpPath: {\n type: String,\n required: false,\n default: undefined,\n },\n dismissible: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isDismissed: false,\n };\n },\n methods: {\n onDismiss() {\n this.isDismissed = true;\n },\n },\n};\n</script>\n\n<template>\n <gl-alert v-if=\"!isDismissed\" :variant=\"type\" :dismissible=\"dismissible\" @dismiss=\"onDismiss\">\n <slot></slot>\n <gl-link v-if=\"helpPath\" :href=\"helpPath\" target=\"_blank\" class=\"gl-label-link\">\n <slot name=\"link-content\"></slot>\n </gl-link>\n </gl-alert>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_alert_message.vue?vue&type=template&id=5aa396c5\"\nimport script from \"./mr_widget_alert_message.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_alert_message.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 (!_vm.isDismissed)?_c('gl-alert',{attrs:{\"variant\":_vm.type,\"dismissible\":_vm.dismissible},on:{\"dismiss\":_vm.onDismiss}},[_vm._t(\"default\"),_vm._v(\" \"),(_vm.helpPath)?_c('gl-link',{staticClass:\"gl-label-link\",attrs:{\"href\":_vm.helpPath,\"target\":\"_blank\"}},[_vm._t(\"link-content\")],2):_vm._e()],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const SET_ENDPOINT = 'SET_ENDPOINT';\n\nexport const REQUEST_ARTIFACTS = 'REQUEST_ARTIFACTS';\nexport const RECEIVE_ARTIFACTS_SUCCESS = 'RECEIVE_ARTIFACTS_SUCCESS';\nexport const RECEIVE_ARTIFACTS_ERROR = 'RECEIVE_ARTIFACTS_ERROR';\n","import Visibility from 'visibilityjs';\nimport axios from '~/lib/utils/axios_utils';\nimport { HTTP_STATUS_OK } from '~/lib/utils/http_status';\nimport Poll from '~/lib/utils/poll';\n\nimport * as types from './mutation_types';\n\nexport const setEndpoint = ({ commit }, endpoint) => commit(types.SET_ENDPOINT, endpoint);\n\nexport const requestArtifacts = ({ commit }) => commit(types.REQUEST_ARTIFACTS);\n\nlet eTagPoll;\n\nexport const clearEtagPoll = () => {\n eTagPoll = null;\n};\n\nexport const stopPolling = () => {\n if (eTagPoll) eTagPoll.stop();\n};\n\nexport const restartPolling = () => {\n if (eTagPoll) eTagPoll.restart();\n};\n\nexport const fetchArtifacts = ({ state, dispatch }) => {\n dispatch('requestArtifacts');\n\n eTagPoll = new Poll({\n resource: {\n getArtifacts(endpoint) {\n return axios.get(endpoint);\n },\n },\n data: state.endpoint,\n method: 'getArtifacts',\n successCallback: ({ data, status }) => {\n dispatch('receiveArtifactsSuccess', {\n data,\n status,\n });\n },\n errorCallback: () => dispatch('receiveArtifactsError'),\n });\n\n if (!Visibility.hidden()) {\n eTagPoll.makeRequest();\n } else {\n axios\n .get(state.endpoint)\n .then(({ data, status }) => dispatch('receiveArtifactsSuccess', { data, status }))\n .catch(() => dispatch('receiveArtifactsError'));\n }\n\n Visibility.change(() => {\n if (!Visibility.hidden()) {\n dispatch('restartPolling');\n } else {\n dispatch('stopPolling');\n }\n });\n};\n\nexport const receiveArtifactsSuccess = ({ commit }, response) => {\n // With 204 we keep polling and don't update the state\n if (response.status === HTTP_STATUS_OK) {\n commit(types.RECEIVE_ARTIFACTS_SUCCESS, response.data);\n }\n};\n\nexport const receiveArtifactsError = ({ commit }) => commit(types.RECEIVE_ARTIFACTS_ERROR);\n","import { s__, n__ } from '~/locale';\n\nexport const title = (state) => {\n if (state.isLoading) {\n return s__('BuildArtifacts|Loading artifacts');\n }\n\n if (state.hasError) {\n return s__('BuildArtifacts|An error occurred while fetching the artifacts');\n }\n\n return n__('View exposed artifact', 'View %d exposed artifacts', state.artifacts.length);\n};\n","import * as types from './mutation_types';\n\nexport default {\n [types.SET_ENDPOINT](state, endpoint) {\n state.endpoint = endpoint;\n },\n [types.REQUEST_ARTIFACTS](state) {\n state.isLoading = true;\n },\n [types.RECEIVE_ARTIFACTS_SUCCESS](state, response) {\n state.hasError = false;\n state.isLoading = false;\n\n state.artifacts = response;\n },\n [types.RECEIVE_ARTIFACTS_ERROR](state) {\n state.isLoading = false;\n state.hasError = true;\n\n state.artifacts = [];\n },\n};\n","import Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport Vuex from 'vuex';\nimport * as actions from './actions';\nimport * as getters from './getters';\nimport mutations from './mutations';\nimport state from './state';\n\nVue.use(Vuex);\n\nexport const getStoreConfig = () => ({\n actions,\n mutations,\n getters,\n state: state(),\n});\n\nexport default () => new Vuex.Store(getStoreConfig());\n","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!./artifacts_list.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!./artifacts_list.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink } from '@gitlab/ui';\n\nexport default {\n components: {\n GlLink,\n },\n props: {\n artifacts: {\n type: Array,\n required: true,\n },\n },\n};\n</script>\n<template>\n <div class=\"gl-pl-7\">\n <table class=\"table m-0\">\n <thead class=\"thead-white text-nowrap\">\n <tr class=\"gl-hidden sm:gl-table-row\">\n <th>{{ __('Artifact') }}</th>\n <th>{{ __('Job') }}</th>\n </tr>\n </thead>\n\n <tbody>\n <tr v-for=\"item in artifacts\" :key=\"item.text\">\n <td>\n <gl-link :href=\"item.url\" target=\"_blank\">{{ item.text }}</gl-link>\n </td>\n <td>\n <gl-link :href=\"item.job_path\">{{ item.job_name }}</gl-link>\n </td>\n </tr>\n </tbody>\n </table>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./artifacts_list.vue?vue&type=template&id=1945d23b\"\nimport script from \"./artifacts_list.vue?vue&type=script&lang=js\"\nexport * from \"./artifacts_list.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('div',{staticClass:\"gl-pl-7\"},[_c('table',{staticClass:\"table m-0\"},[_c('thead',{staticClass:\"thead-white text-nowrap\"},[_c('tr',{staticClass:\"gl-hidden sm:gl-table-row\"},[_c('th',[_vm._v(_vm._s(_vm.__('Artifact')))]),_vm._v(\" \"),_c('th',[_vm._v(_vm._s(_vm.__('Job')))])])]),_vm._v(\" \"),_c('tbody',_vm._l((_vm.artifacts),function(item){return _c('tr',{key:item.text},[_c('td',[_c('gl-link',{attrs:{\"href\":item.url,\"target\":\"_blank\"}},[_vm._v(_vm._s(item.text))])],1),_vm._v(\" \"),_c('td',[_c('gl-link',{attrs:{\"href\":item.job_path}},[_vm._v(_vm._s(item.job_name))])],1)])}),0)])])\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!./mr_collapsible_extension.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!./mr_collapsible_extension.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n components: {\n GlButton,\n },\n props: {\n title: {\n type: String,\n required: true,\n },\n isLoading: {\n type: Boolean,\n required: false,\n default: false,\n },\n hasError: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isCollapsed: true,\n };\n },\n\n computed: {\n arrowIconName() {\n return this.isCollapsed ? 'chevron-right' : 'chevron-down';\n },\n ariaLabel() {\n return this.isCollapsed ? __('Expand') : __('Collapse');\n },\n },\n methods: {\n toggleCollapsed() {\n this.isCollapsed = !this.isCollapsed;\n },\n },\n};\n</script>\n<template>\n <div class=\"mr-widget-extension\">\n <div class=\"pl-3 gl-flex gl-items-center gl-py-3\">\n <div v-if=\"hasError\" class=\"ci-widget media\">\n <div class=\"media-body\">\n <span class=\"js-error-state gl-ml-7 gl-text-sm gl-leading-24\">\n {{ title }}\n </span>\n </div>\n </div>\n\n <template v-else>\n <gl-button\n class=\"gl-mr-3\"\n size=\"small\"\n :aria-label=\"ariaLabel\"\n :loading=\"isLoading\"\n :icon=\"arrowIconName\"\n category=\"tertiary\"\n @click=\"toggleCollapsed\"\n />\n <template v-if=\"isCollapsed\">\n <slot name=\"header\"></slot>\n <gl-button\n category=\"tertiary\"\n variant=\"confirm\"\n size=\"small\"\n data-testid=\"mr-collapsible-title\"\n :disabled=\"isLoading\"\n :class=\"{ 'border-0': isLoading }\"\n @click=\"toggleCollapsed\"\n >\n {{ title }}\n </gl-button>\n </template>\n <gl-button\n v-else\n category=\"tertiary\"\n variant=\"confirm\"\n size=\"small\"\n data-testid=\"mr-collapsible-title\"\n :disabled=\"isLoading\"\n :class=\"{ 'border-0': isLoading }\"\n @click=\"toggleCollapsed\"\n >{{ __('Collapse') }}</gl-button\n >\n </template>\n </div>\n\n <div v-if=\"!isCollapsed\" class=\"border-top js-slot-container\">\n <slot></slot>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./mr_collapsible_extension.vue?vue&type=template&id=473b6077\"\nimport script from \"./mr_collapsible_extension.vue?vue&type=script&lang=js\"\nexport * from \"./mr_collapsible_extension.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('div',{staticClass:\"mr-widget-extension\"},[_c('div',{staticClass:\"pl-3 gl-flex gl-items-center gl-py-3\"},[(_vm.hasError)?_c('div',{staticClass:\"ci-widget media\"},[_c('div',{staticClass:\"media-body\"},[_c('span',{staticClass:\"js-error-state gl-ml-7 gl-text-sm gl-leading-24\"},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")])])]):[_c('gl-button',{staticClass:\"gl-mr-3\",attrs:{\"size\":\"small\",\"aria-label\":_vm.ariaLabel,\"loading\":_vm.isLoading,\"icon\":_vm.arrowIconName,\"category\":\"tertiary\"},on:{\"click\":_vm.toggleCollapsed}}),_vm._v(\" \"),(_vm.isCollapsed)?[_vm._t(\"header\"),_vm._v(\" \"),_c('gl-button',{class:{ 'border-0': _vm.isLoading },attrs:{\"category\":\"tertiary\",\"variant\":\"confirm\",\"size\":\"small\",\"data-testid\":\"mr-collapsible-title\",\"disabled\":_vm.isLoading},on:{\"click\":_vm.toggleCollapsed}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")])]:_c('gl-button',{class:{ 'border-0': _vm.isLoading },attrs:{\"category\":\"tertiary\",\"variant\":\"confirm\",\"size\":\"small\",\"data-testid\":\"mr-collapsible-title\",\"disabled\":_vm.isLoading},on:{\"click\":_vm.toggleCollapsed}},[_vm._v(_vm._s(_vm.__('Collapse')))])]],2),_vm._v(\" \"),(!_vm.isCollapsed)?_c('div',{staticClass:\"border-top js-slot-container\"},[_vm._t(\"default\")],2):_vm._e()])\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!./artifacts_list_app.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!./artifacts_list_app.vue?vue&type=script&lang=js\"","<script>\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapState, mapGetters } from 'vuex';\nimport createStore from '../stores/artifacts_list';\nimport ArtifactsList from './artifacts_list.vue';\nimport MrCollapsibleExtension from './mr_collapsible_extension.vue';\n\nexport default {\n store: createStore(),\n components: {\n ArtifactsList,\n MrCollapsibleExtension,\n },\n props: {\n endpoint: {\n type: String,\n required: true,\n },\n },\n computed: {\n ...mapState(['artifacts', 'isLoading', 'hasError']),\n ...mapGetters(['title']),\n hasArtifacts() {\n return this.artifacts.length > 0;\n },\n },\n created() {\n this.setEndpoint(this.endpoint);\n this.fetchArtifacts();\n },\n methods: {\n ...mapActions(['setEndpoint', 'fetchArtifacts']),\n },\n};\n</script>\n<template>\n <mr-collapsible-extension\n v-if=\"isLoading || hasArtifacts || hasError\"\n :title=\"title\"\n :is-loading=\"isLoading\"\n :has-error=\"hasError\"\n >\n <artifacts-list :artifacts=\"artifacts\" />\n </mr-collapsible-extension>\n</template>\n","export default () => ({\n endpoint: null,\n\n isLoading: false,\n hasError: false,\n\n artifacts: [],\n});\n","import { render, staticRenderFns } from \"./artifacts_list_app.vue?vue&type=template&id=071fed99\"\nimport script from \"./artifacts_list_app.vue?vue&type=script&lang=js\"\nexport * from \"./artifacts_list_app.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 (_vm.isLoading || _vm.hasArtifacts || _vm.hasError)?_c('mr-collapsible-extension',{attrs:{\"title\":_vm.title,\"is-loading\":_vm.isLoading,\"has-error\":_vm.hasError}},[_c('artifacts-list',{attrs:{\"artifacts\":_vm.artifacts}})],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-inline-flex gl-gap-3\"},[(_vm.canBeManuallyDeployed)?_c('deployment-action-button',{attrs:{\"action-in-progress\":_vm.actionInProgress,\"actions-configuration\":_vm.$options.actionsConfiguration[_vm.constants.DEPLOYING],\"computed-deployment-status\":_vm.computedDeploymentStatus,\"icon\":_vm.$options.btnIcons.play,\"container-classes\":\"js-manual-deploy-action\"},on:{\"click\":_vm.deployManually}},[_c('span',[_vm._v(_vm._s(_vm.$options.actionsConfiguration[_vm.constants.DEPLOYING].buttonText))])]):_vm._e(),_vm._v(\" \"),(_vm.hasExternalUrls && _vm.environmentAvailable)?_c('deployment-view-button',{attrs:{\"app-button-text\":_vm.appButtonText,\"deployment\":_vm.deployment}}):_vm._e(),_vm._v(\" \"),(_vm.stopUrl && _vm.environmentAvailable)?_c('deployment-action-button',{attrs:{\"action-in-progress\":_vm.actionInProgress,\"computed-deployment-status\":_vm.computedDeploymentStatus,\"actions-configuration\":_vm.$options.actionsConfiguration[_vm.constants.STOPPING],\"button-title\":_vm.$options.actionsConfiguration[_vm.constants.STOPPING].buttonText,\"icon\":_vm.$options.btnIcons.stop,\"container-classes\":\"js-stop-env\"},on:{\"click\":_vm.stopEnvironment}}):_vm._e(),_vm._v(\" \"),(_vm.showDeploymentActionButton)?_c('deployment-action-button',{attrs:{\"action-in-progress\":_vm.actionInProgress,\"computed-deployment-status\":_vm.computedDeploymentStatus,\"actions-configuration\":_vm.$options.actionsConfiguration[_vm.constants.REDEPLOYING],\"button-title\":_vm.$options.actionsConfiguration[_vm.constants.REDEPLOYING].buttonText,\"icon\":_vm.$options.btnIcons.repeat,\"container-classes\":\"js-redeploy-action\"},on:{\"click\":_vm.redeploy}}):_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!./deployment_action_button.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!./deployment_action_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlButton } from '@gitlab/ui';\nimport { RUNNING, WILL_DEPLOY } from './constants';\n\nexport default {\n name: 'DeploymentActionButton',\n components: {\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n actionsConfiguration: {\n type: Object,\n required: true,\n },\n actionInProgress: {\n type: String,\n required: false,\n default: null,\n },\n buttonTitle: {\n type: String,\n required: false,\n default: '',\n },\n computedDeploymentStatus: {\n type: String,\n required: true,\n },\n containerClasses: {\n type: String,\n required: false,\n default: '',\n },\n icon: {\n type: String,\n required: true,\n },\n },\n computed: {\n isActionInProgress() {\n return Boolean(\n this.computedDeploymentStatus === RUNNING ||\n this.computedDeploymentStatus === WILL_DEPLOY ||\n this.actionInProgress,\n );\n },\n isLoading() {\n return (\n this.actionInProgress === this.actionsConfiguration.actionName ||\n this.computedDeploymentStatus === WILL_DEPLOY\n );\n },\n },\n};\n</script>\n\n<template>\n <gl-button\n v-if=\"isLoading || isActionInProgress\"\n category=\"primary\"\n size=\"small\"\n :title=\"buttonTitle\"\n :aria-label=\"buttonTitle\"\n :loading=\"isLoading\"\n :disabled=\"isActionInProgress\"\n :class=\"containerClasses\"\n :icon=\"icon\"\n @click=\"$emit('click')\"\n >\n <slot> </slot>\n </gl-button>\n <gl-button\n v-else\n v-gl-tooltip.hover\n category=\"primary\"\n size=\"small\"\n :title=\"buttonTitle\"\n :aria-label=\"buttonTitle\"\n :loading=\"isLoading\"\n :disabled=\"isActionInProgress\"\n :class=\"containerClasses\"\n :icon=\"icon\"\n @click=\"$emit('click')\"\n >\n <slot> </slot>\n </gl-button>\n</template>\n","// DEPLOYMENT STATUSES\nexport const CREATED = 'created';\nexport const MANUAL_DEPLOY = 'manual_deploy';\nexport const WILL_DEPLOY = 'will_deploy';\nexport const RUNNING = 'running';\nexport const SUCCESS = 'success';\nexport const FAILED = 'failed';\nexport const CANCELED = 'canceled';\nexport const SKIPPED = 'skipped';\n\n// ACTION STATUSES\nexport const STOPPING = 'stopping';\nexport const DEPLOYING = 'deploying';\nexport const REDEPLOYING = 'redeploying';\n\nexport const ACT_BUTTON_ICONS = {\n play: 'play',\n repeat: 'repeat',\n stop: 'stop',\n};\n","import { render, staticRenderFns } from \"./deployment_action_button.vue?vue&type=template&id=d55500fa\"\nimport script from \"./deployment_action_button.vue?vue&type=script&lang=js\"\nexport * from \"./deployment_action_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.isLoading || _vm.isActionInProgress)?_c('gl-button',{class:_vm.containerClasses,attrs:{\"category\":\"primary\",\"size\":\"small\",\"title\":_vm.buttonTitle,\"aria-label\":_vm.buttonTitle,\"loading\":_vm.isLoading,\"disabled\":_vm.isActionInProgress,\"icon\":_vm.icon},on:{\"click\":function($event){return _vm.$emit('click')}}},[_vm._t(\"default\")],2):_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],class:_vm.containerClasses,attrs:{\"category\":\"primary\",\"size\":\"small\",\"title\":_vm.buttonTitle,\"aria-label\":_vm.buttonTitle,\"loading\":_vm.isLoading,\"disabled\":_vm.isActionInProgress,\"icon\":_vm.icon},on:{\"click\":function($event){return _vm.$emit('click')}}},[_vm._t(\"default\")],2)\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!./deployment_view_button.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!./deployment_view_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlButtonGroup, GlCollapsibleListbox, GlLink } from '@gitlab/ui';\nimport autofocusonshow from '~/vue_shared/directives/autofocusonshow';\nimport ReviewAppLink from '../review_app_link.vue';\n\nexport default {\n name: 'DeploymentViewButton',\n components: {\n GlButtonGroup,\n GlCollapsibleListbox,\n GlLink,\n ReviewAppLink,\n },\n directives: {\n autofocusonshow,\n },\n props: {\n appButtonText: {\n type: Object,\n required: true,\n },\n deployment: {\n type: Object,\n required: true,\n },\n },\n data() {\n return { searchTerm: '' };\n },\n computed: {\n deploymentExternalUrl() {\n if (this.deployment.changes && this.deployment.changes.length === 1) {\n return this.deployment.changes[0].external_url;\n }\n return this.deployment.external_url;\n },\n shouldRenderDropdown() {\n return this.deployment.changes && this.deployment.changes.length > 1;\n },\n filteredChanges() {\n return this.deployment?.changes\n ?.filter((change) => change.path.includes(this.searchTerm))\n .map((change) => ({ value: change.external_url, text: change.path }));\n },\n },\n methods: {\n search(searchTerm) {\n this.searchTerm = searchTerm;\n },\n },\n};\n</script>\n<template>\n <span class=\"gl-inline-flex\">\n <gl-button-group v-if=\"shouldRenderDropdown\">\n <review-app-link\n :display=\"appButtonText\"\n :link=\"deploymentExternalUrl\"\n size=\"small\"\n css-class=\"deploy-link js-deploy-url\"\n />\n <gl-collapsible-listbox\n :items=\"filteredChanges\"\n size=\"small\"\n placement=\"bottom-end\"\n searchable\n @search=\"search\"\n >\n <template #list-item=\"{ item }\">\n <gl-link :href=\"item.value\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\n <div>\n <strong class=\"gl-mb-0 gl-block gl-truncate\">{{ item.text }}</strong>\n <p class=\"gl-mb-0 gl-block gl-truncate gl-text-subtle\">\n {{ item.value }}\n </p>\n </div>\n </gl-link>\n </template>\n </gl-collapsible-listbox>\n </gl-button-group>\n <review-app-link\n v-else\n :display=\"appButtonText\"\n :link=\"deploymentExternalUrl\"\n size=\"small\"\n css-class=\"deploy-link js-deploy-url\"\n />\n </span>\n</template>\n","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!./deployment_actions.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!./deployment_actions.vue?vue&type=script&lang=js\"","<script>\nimport { createAlert } from '~/alert';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport { __, s__ } from '~/locale';\nimport eventHub from '../../event_hub';\nimport MRWidgetService from '../../services/mr_widget_service';\nimport {\n MANUAL_DEPLOY,\n FAILED,\n SUCCESS,\n STOPPING,\n DEPLOYING,\n REDEPLOYING,\n ACT_BUTTON_ICONS,\n} from './constants';\nimport DeploymentActionButton from './deployment_action_button.vue';\nimport DeploymentViewButton from './deployment_view_button.vue';\n\nexport default {\n name: 'DeploymentActions',\n btnIcons: ACT_BUTTON_ICONS,\n components: {\n DeploymentActionButton,\n DeploymentViewButton,\n },\n props: {\n computedDeploymentStatus: {\n type: String,\n required: true,\n },\n deployment: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n actionInProgress: null,\n constants: {\n STOPPING,\n DEPLOYING,\n REDEPLOYING,\n },\n };\n },\n computed: {\n appButtonText() {\n return {\n text: this.isCurrent ? s__('Review App|View app') : s__('Review App|View latest app'),\n tooltip: this.isCurrent\n ? ''\n : __('View the latest successful deployment to this environment'),\n };\n },\n canBeManuallyDeployed() {\n return this.computedDeploymentStatus === MANUAL_DEPLOY && Boolean(this.playPath);\n },\n canBeManuallyRedeployed() {\n return this.computedDeploymentStatus === FAILED && Boolean(this.redeployPath);\n },\n hasExternalUrls() {\n return Boolean(this.deployment.external_url && this.deployment.external_url_formatted);\n },\n isCurrent() {\n return this.computedDeploymentStatus === SUCCESS;\n },\n playPath() {\n return this.deployment.details?.playable_build?.play_path;\n },\n redeployPath() {\n return this.deployment.retry_url;\n },\n stopUrl() {\n return this.deployment.stop_url;\n },\n environmentAvailable() {\n return Boolean(this.deployment.environment_available);\n },\n showDeploymentActionButton() {\n return this.redeployPath && !this.environmentAvailable;\n },\n },\n actionsConfiguration: {\n [STOPPING]: {\n actionName: STOPPING,\n buttonText: s__('MrDeploymentActions|Stop environment'),\n buttonVariant: 'danger',\n busyText: __('This environment is being deployed'),\n confirmMessage: __('Are you sure you want to stop this environment?'),\n errorMessage: __('Something went wrong while stopping this environment. Please try again.'),\n },\n [DEPLOYING]: {\n actionName: DEPLOYING,\n buttonText: s__('MrDeploymentActions|Deploy'),\n buttonVariant: 'confirm',\n busyText: __('This environment is being deployed'),\n confirmMessage: __('Are you sure you want to deploy this environment?'),\n errorMessage: __('Something went wrong while deploying this environment. Please try again.'),\n },\n [REDEPLOYING]: {\n actionName: REDEPLOYING,\n buttonText: s__('MrDeploymentActions|Re-deploy'),\n buttonVariant: 'confirm',\n busyText: __('This environment is being re-deployed'),\n confirmMessage: __('Are you sure you want to re-deploy this environment?'),\n errorMessage: __('Something went wrong while deploying this environment. Please try again.'),\n },\n },\n methods: {\n async executeAction(\n endpoint,\n {\n actionName,\n buttonText: primaryBtnText,\n buttonVariant: primaryBtnVariant,\n confirmMessage,\n errorMessage,\n },\n ) {\n const isConfirmed = await confirmAction(confirmMessage, {\n primaryBtnVariant,\n primaryBtnText,\n });\n\n if (isConfirmed) {\n this.actionInProgress = actionName;\n\n MRWidgetService.executeInlineAction(endpoint)\n .catch(() => {\n createAlert({\n message: errorMessage,\n });\n })\n .finally(() => {\n eventHub.$emit('FetchDeployments');\n this.actionInProgress = null;\n });\n }\n },\n stopEnvironment() {\n this.executeAction(this.stopUrl, this.$options.actionsConfiguration[STOPPING]);\n },\n deployManually() {\n this.executeAction(this.playPath, this.$options.actionsConfiguration[DEPLOYING]);\n },\n redeploy() {\n this.executeAction(this.redeployPath, this.$options.actionsConfiguration[REDEPLOYING]);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-inline-flex gl-gap-3\">\n <deployment-action-button\n v-if=\"canBeManuallyDeployed\"\n :action-in-progress=\"actionInProgress\"\n :actions-configuration=\"$options.actionsConfiguration[constants.DEPLOYING]\"\n :computed-deployment-status=\"computedDeploymentStatus\"\n :icon=\"$options.btnIcons.play\"\n container-classes=\"js-manual-deploy-action\"\n @click=\"deployManually\"\n >\n <span>{{ $options.actionsConfiguration[constants.DEPLOYING].buttonText }}</span>\n </deployment-action-button>\n <deployment-view-button\n v-if=\"hasExternalUrls && environmentAvailable\"\n :app-button-text=\"appButtonText\"\n :deployment=\"deployment\"\n />\n <deployment-action-button\n v-if=\"stopUrl && environmentAvailable\"\n :action-in-progress=\"actionInProgress\"\n :computed-deployment-status=\"computedDeploymentStatus\"\n :actions-configuration=\"$options.actionsConfiguration[constants.STOPPING]\"\n :button-title=\"$options.actionsConfiguration[constants.STOPPING].buttonText\"\n :icon=\"$options.btnIcons.stop\"\n container-classes=\"js-stop-env\"\n @click=\"stopEnvironment\"\n />\n <deployment-action-button\n v-if=\"showDeploymentActionButton\"\n :action-in-progress=\"actionInProgress\"\n :computed-deployment-status=\"computedDeploymentStatus\"\n :actions-configuration=\"$options.actionsConfiguration[constants.REDEPLOYING]\"\n :button-title=\"$options.actionsConfiguration[constants.REDEPLOYING].buttonText\"\n :icon=\"$options.btnIcons.repeat\"\n container-classes=\"js-redeploy-action\"\n @click=\"redeploy\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./deployment_view_button.vue?vue&type=template&id=951a6454\"\nimport script from \"./deployment_view_button.vue?vue&type=script&lang=js\"\nexport * from \"./deployment_view_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"gl-inline-flex\"},[(_vm.shouldRenderDropdown)?_c('gl-button-group',[_c('review-app-link',{attrs:{\"display\":_vm.appButtonText,\"link\":_vm.deploymentExternalUrl,\"size\":\"small\",\"css-class\":\"deploy-link js-deploy-url\"}}),_vm._v(\" \"),_c('gl-collapsible-listbox',{attrs:{\"items\":_vm.filteredChanges,\"size\":\"small\",\"placement\":\"bottom-end\",\"searchable\":\"\"},on:{\"search\":_vm.search},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('gl-link',{attrs:{\"href\":item.value,\"target\":\"_blank\",\"rel\":\"noopener noreferrer nofollow\"}},[_c('div',[_c('strong',{staticClass:\"gl-mb-0 gl-block gl-truncate\"},[_vm._v(_vm._s(item.text))]),_vm._v(\" \"),_c('p',{staticClass:\"gl-mb-0 gl-block gl-truncate gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(item.value)+\"\\n \")])])])]}}],null,false,2206342933)})],1):_c('review-app-link',{attrs:{\"display\":_vm.appButtonText,\"link\":_vm.deploymentExternalUrl,\"size\":\"small\",\"css-class\":\"deploy-link js-deploy-url\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./deployment_actions.vue?vue&type=template&id=20d7a522\"\nimport script from \"./deployment_actions.vue?vue&type=script&lang=js\"\nexport * from \"./deployment_actions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","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!./deployment_info.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!./deployment_info.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlTooltipDirective, GlTruncate } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport timeagoMixin from '~/vue_shared/mixins/timeago';\nimport {\n MANUAL_DEPLOY,\n WILL_DEPLOY,\n RUNNING,\n SUCCESS,\n FAILED,\n CANCELED,\n SKIPPED,\n} from './constants';\n\nexport default {\n name: 'DeploymentInfo',\n components: {\n GlLink,\n MemoryUsage: () => import('./memory_usage.vue'),\n GlTruncate,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [timeagoMixin],\n props: {\n computedDeploymentStatus: {\n type: String,\n required: true,\n },\n deployment: {\n type: Object,\n required: true,\n },\n showMetrics: {\n type: Boolean,\n required: true,\n },\n },\n deployedTextMap: {\n [MANUAL_DEPLOY]: __('Can be manually deployed to'),\n [WILL_DEPLOY]: __('Will deploy to'),\n [RUNNING]: __('Deploying to'),\n [SUCCESS]: __('Deployed to'),\n [FAILED]: __('Failed to deploy to'),\n [CANCELED]: __('Canceled deployment to'),\n [SKIPPED]: __('Skipped deployment to'),\n },\n computed: {\n deployTimeago() {\n return this.timeFormatted(this.deployment.deployed_at);\n },\n deployedText() {\n return this.$options.deployedTextMap[this.computedDeploymentStatus];\n },\n hasDeploymentTime() {\n return Boolean(this.deployment.deployed_at && this.deployment.deployed_at_formatted);\n },\n hasDeploymentMeta() {\n return Boolean(this.deployment.url && this.deployment.name);\n },\n hasMetrics() {\n return Boolean(this.deployment.metrics_url);\n },\n showMemoryUsage() {\n return this.hasMetrics && this.showMetrics;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"js-deployment-info deployment-info\">\n <template v-if=\"hasDeploymentMeta\">\n <span>{{ deployedText }}</span>\n <gl-link\n :href=\"deployment.url\"\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n class=\"js-deploy-meta gl-pb-1 gl-text-sm\"\n >\n <gl-truncate\n class=\"js-deploy-env-name\"\n :text=\"deployment.name\"\n position=\"middle\"\n with-tooltip\n />\n </gl-link>\n </template>\n <span\n v-if=\"hasDeploymentTime\"\n v-gl-tooltip\n :title=\"deployment.deployed_at_formatted\"\n class=\"js-deploy-time\"\n >\n {{ deployTimeago }}\n </span>\n <memory-usage\n v-if=\"showMemoryUsage\"\n :metrics-url=\"deployment.metrics_url\"\n :metrics-monitoring-url=\"deployment.metrics_monitoring_url\"\n />\n </div>\n</template>\n","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!./deployment.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!./deployment.vue?vue&type=script&lang=js\"","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { MANUAL_DEPLOY, WILL_DEPLOY, CREATED } from './constants';\nimport DeploymentActions from './deployment_actions.vue';\nimport DeploymentInfo from './deployment_info.vue';\n\nexport default {\n // name: 'Deployment' is a false positive: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26#possible-false-positives\n // eslint-disable-next-line @gitlab/require-i18n-strings\n name: 'Deployment',\n components: {\n DeploymentActions,\n DeploymentInfo,\n },\n props: {\n deployment: {\n type: Object,\n required: true,\n },\n showMetrics: {\n type: Boolean,\n required: true,\n },\n },\n computed: {\n computedDeploymentStatus() {\n if (this.deployment.status === CREATED) {\n return this.isManual ? MANUAL_DEPLOY : WILL_DEPLOY;\n }\n return this.deployment.status;\n },\n isManual() {\n return Boolean(this.deployment.details?.playable_build?.play_path);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"deploy-heading gl-pl-5 gl-pr-4\">\n <div class=\"ci-widget media\">\n <div class=\"media-body\">\n <div class=\"deploy-body\">\n <deployment-info\n :computed-deployment-status=\"computedDeploymentStatus\"\n :deployment=\"deployment\"\n :show-metrics=\"showMetrics\"\n />\n <deployment-actions\n :deployment=\"deployment\"\n :computed-deployment-status=\"computedDeploymentStatus\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./deployment_info.vue?vue&type=template&id=10f1be36\"\nimport script from \"./deployment_info.vue?vue&type=script&lang=js\"\nexport * from \"./deployment_info.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('div',{staticClass:\"js-deployment-info deployment-info\"},[(_vm.hasDeploymentMeta)?[_c('span',[_vm._v(_vm._s(_vm.deployedText))]),_vm._v(\" \"),_c('gl-link',{staticClass:\"js-deploy-meta gl-pb-1 gl-text-sm\",attrs:{\"href\":_vm.deployment.url,\"target\":\"_blank\",\"rel\":\"noopener noreferrer nofollow\"}},[_c('gl-truncate',{staticClass:\"js-deploy-env-name\",attrs:{\"text\":_vm.deployment.name,\"position\":\"middle\",\"with-tooltip\":\"\"}})],1)]:_vm._e(),_vm._v(\" \"),(_vm.hasDeploymentTime)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"js-deploy-time\",attrs:{\"title\":_vm.deployment.deployed_at_formatted}},[_vm._v(\"\\n \"+_vm._s(_vm.deployTimeago)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showMemoryUsage)?_c('memory-usage',{attrs:{\"metrics-url\":_vm.deployment.metrics_url,\"metrics-monitoring-url\":_vm.deployment.metrics_monitoring_url}}):_vm._e()],2)\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!./deployment_list.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!./deployment_list.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf } from '@gitlab/ui';\nimport { n__ } from '~/locale';\nimport MrCollapsibleExtension from '../mr_collapsible_extension.vue';\nimport Deployment from './deployment.vue';\n\nexport default {\n components: {\n Deployment,\n GlSprintf,\n MrCollapsibleExtension,\n },\n props: {\n deployments: {\n type: Array,\n required: true,\n },\n deploymentClass: {\n type: String,\n required: true,\n },\n hasDeploymentMetrics: {\n type: Boolean,\n required: true,\n },\n },\n computed: {\n showCollapsedDeployments() {\n return this.deployments.length > 3;\n },\n multipleDeploymentsTitle() {\n return n__(\n 'Deployments|%{deployments} environment impacted.',\n 'Deployments|%{deployments} environments impacted.',\n this.deployments.length,\n );\n },\n },\n};\n</script>\n<template>\n <mr-collapsible-extension v-if=\"showCollapsedDeployments\" :title=\"__('View all environments.')\">\n <template #header>\n <div class=\"gl-mr-3 gl-leading-normal\">\n <gl-sprintf :message=\"multipleDeploymentsTitle\">\n <template #deployments>\n <span class=\"gl-mr-2 gl-font-bold\">{{ deployments.length }}</span>\n </template>\n </gl-sprintf>\n </div>\n </template>\n <deployment\n v-for=\"deployment in deployments\"\n :key=\"deployment.id\"\n :class=\"deploymentClass\"\n :deployment=\"deployment\"\n :show-metrics=\"hasDeploymentMetrics\"\n />\n </mr-collapsible-extension>\n <div v-else class=\"mr-widget-extension\">\n <deployment\n v-for=\"deployment in deployments\"\n :key=\"deployment.id\"\n :class=\"deploymentClass\"\n :deployment=\"deployment\"\n :show-metrics=\"hasDeploymentMetrics\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./deployment.vue?vue&type=template&id=4ea7c7cc\"\nimport script from \"./deployment.vue?vue&type=script&lang=js\"\nexport * from \"./deployment.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('div',{staticClass:\"deploy-heading gl-pl-5 gl-pr-4\"},[_c('div',{staticClass:\"ci-widget media\"},[_c('div',{staticClass:\"media-body\"},[_c('div',{staticClass:\"deploy-body\"},[_c('deployment-info',{attrs:{\"computed-deployment-status\":_vm.computedDeploymentStatus,\"deployment\":_vm.deployment,\"show-metrics\":_vm.showMetrics}}),_vm._v(\" \"),_c('deployment-actions',{attrs:{\"deployment\":_vm.deployment,\"computed-deployment-status\":_vm.computedDeploymentStatus}})],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./deployment_list.vue?vue&type=template&id=63aad68e\"\nimport script from \"./deployment_list.vue?vue&type=script&lang=js\"\nexport * from \"./deployment_list.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 (_vm.showCollapsedDeployments)?_c('mr-collapsible-extension',{attrs:{\"title\":_vm.__('View all environments.')},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('div',{staticClass:\"gl-mr-3 gl-leading-normal\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.multipleDeploymentsTitle},scopedSlots:_vm._u([{key:\"deployments\",fn:function(){return [_c('span',{staticClass:\"gl-mr-2 gl-font-bold\"},[_vm._v(_vm._s(_vm.deployments.length))])]},proxy:true}],null,false,1971724356)})],1)]},proxy:true}],null,false,2217608618)},[_vm._v(\" \"),_vm._l((_vm.deployments),function(deployment){return _c('deployment',{key:deployment.id,class:_vm.deploymentClass,attrs:{\"deployment\":deployment,\"show-metrics\":_vm.hasDeploymentMetrics}})})],2):_c('div',{staticClass:\"mr-widget-extension\"},_vm._l((_vm.deployments),function(deployment){return _c('deployment',{key:deployment.id,class:_vm.deploymentClass,attrs:{\"deployment\":deployment,\"show-metrics\":_vm.hasDeploymentMetrics}})}),1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./mr_widget_container.vue?vue&type=template&id=0c4febe0\"\nvar script = {}\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('div',{staticClass:\"mr-section-container\"},[_c('div',{staticClass:\"mr-widget-section\"},[_c('div',{staticClass:\"mr-widget-content\"},[_vm._t(\"default\")],2),_vm._v(\" \"),_vm._t(\"footer\")],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlDisclosureDropdown, GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport const i18n = {\n artifacts: __('Artifacts'),\n artifactSectionHeader: __('Download artifacts'),\n};\n\nexport default {\n i18n,\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlDisclosureDropdown,\n },\n inject: {\n artifactsEndpoint: {\n default: '',\n },\n artifactsEndpointPlaceholder: {\n default: '',\n },\n },\n props: {\n pipelineId: {\n type: Number,\n required: true,\n },\n artifacts: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n computed: {\n items() {\n return [\n {\n name: this.$options.i18n.artifactSectionHeader,\n items: this.artifacts.map(({ name, path }) => ({\n text: name,\n href: path,\n extraAttrs: {\n download: '',\n rel: 'nofollow',\n },\n })),\n },\n ];\n },\n shouldShowDropdown() {\n return this.artifacts?.length;\n },\n },\n};\n</script>\n<template>\n <gl-disclosure-dropdown\n v-if=\"shouldShowDropdown\"\n v-gl-tooltip\n class=\"gl-text-left\"\n :title=\"$options.i18n.artifacts\"\n :toggle-text=\"$options.i18n.artifacts\"\n :aria-label=\"$options.i18n.artifacts\"\n icon=\"download\"\n placement=\"bottom-end\"\n text-sr-only\n :items=\"items\"\n data-testid=\"artifacts-dropdown\"\n />\n</template>\n\n<style scoped>\n/* TODO: Use max-height prop when gitlab-ui got updated.\nSee https://gitlab.com/gitlab-org/gitlab-ui/-/issues/2374 */\n::v-deep .gl-new-dropdown-inner {\n max-height: 310px !important;\n}\n</style>\n","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!./pipelines_artifacts.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!./pipelines_artifacts.vue?vue&type=script&lang=js\"","import api from \"!../../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import content from \"!!../../../../../../node_modules/css-loader/dist/cjs.js??ref--20-1!../../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./pipelines_artifacts.vue?vue&type=style&index=0&id=c3da8bce&prod&scoped=true&lang=css\";\n\nvar options = {};\n\noptions.insert = \"head\";\noptions.singleton = false;\n\nvar update = api(content, options);\n\n\n\nexport default content.locals || {};","import { render, staticRenderFns } from \"./pipelines_artifacts.vue?vue&type=template&id=c3da8bce&scoped=true\"\nimport script from \"./pipelines_artifacts.vue?vue&type=script&lang=js\"\nexport * from \"./pipelines_artifacts.vue?vue&type=script&lang=js\"\nimport style0 from \"./pipelines_artifacts.vue?vue&type=style&index=0&id=c3da8bce&prod&scoped=true&lang=css\"\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 \"c3da8bce\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.shouldShowDropdown)?_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-text-left\",attrs:{\"title\":_vm.$options.i18n.artifacts,\"toggle-text\":_vm.$options.i18n.artifacts,\"aria-label\":_vm.$options.i18n.artifacts,\"icon\":\"download\",\"placement\":\"bottom-end\",\"text-sr-only\":\"\",\"items\":_vm.items,\"data-testid\":\"artifacts-dropdown\"}}):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { createAlert } from '~/alert';\nimport { s__, __ } from '~/locale';\nimport Api from '~/api';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { HTTP_STATUS_UNAUTHORIZED } from '~/lib/utils/http_status';\nimport { helpPagePath } from '~/helpers/help_page_helper';\n\nexport default {\n props: {\n targetProjectId: {\n type: Number,\n required: true,\n },\n iid: {\n type: Number,\n required: true,\n },\n },\n data() {\n return {\n isCreatingPipeline: false,\n };\n },\n methods: {\n async runPipeline() {\n this.isCreatingPipeline = true;\n\n try {\n await Api.postMergeRequestPipeline(this.targetProjectId, {\n mergeRequestId: this.iid,\n });\n\n this.isCreatingPipeline = false;\n this.$refs.modal?.hide();\n\n toast(s__('Pipeline|Creating pipeline.'));\n } catch (e) {\n const unauthorized = e.response.status === HTTP_STATUS_UNAUTHORIZED;\n let errorMessage = __(\n 'An error occurred while trying to run a new pipeline for this merge request.',\n );\n\n if (unauthorized) {\n errorMessage = __('You do not have permission to run a pipeline on this branch.');\n }\n\n createAlert({\n message: errorMessage,\n primaryButton: {\n text: __('Learn more'),\n link: helpPagePath('ci/pipelines/merge_request_pipelines.md'),\n },\n });\n\n this.isCreatingPipeline = false;\n }\n },\n },\n};\n","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!./mr_widget_pipeline.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!./mr_widget_pipeline.vue?vue&type=script&lang=js\"","<script>\n/* eslint-disable vue/require-default-prop */\nimport {\n GlIcon,\n GlLink,\n GlLoadingIcon,\n GlSprintf,\n GlTooltip,\n GlTooltipDirective,\n GlButton,\n} from '@gitlab/ui';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { s__, n__ } from '~/locale';\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\nimport { keepLatestDownstreamPipelines } from '~/ci/pipeline_details/utils/parsing_utils';\nimport PipelineArtifacts from '~/ci/pipelines_page/components/pipelines_artifacts.vue';\nimport PipelineMiniGraph from '~/ci/pipeline_mini_graph/pipeline_mini_graph.vue';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\nimport TooltipOnTruncate from '~/vue_shared/components/tooltip_on_truncate/tooltip_on_truncate.vue';\nimport HelpPopover from '~/vue_shared/components/help_popover.vue';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport mergeRequestEventTypeQuery from '../queries/merge_request_event_type.query.graphql';\nimport runPipelineMixin from '../mixins/run_pipeline';\nimport {\n PIPELINE_EVENT_TYPE_MERGE_REQUEST,\n PIPELINE_EVENT_TYPE_MERGE_TRAIN,\n PIPELINE_EVENT_TYPE_MERGED_RESULT,\n PIPELINE_EVENT_TYPE_MAP,\n} from '../constants';\n\nexport default {\n name: 'MRWidgetPipeline',\n apollo: {\n mergeRequestEventType: {\n query: mergeRequestEventTypeQuery,\n variables() {\n return {\n projectPath: this.targetProjectFullPath,\n iid: `${this.iid}`,\n };\n },\n skip() {\n return !this.retargeted;\n },\n update: (d) => d.project?.mergeRequest?.pipelines?.nodes?.[0]?.mergeRequestEventType,\n },\n },\n components: {\n CiIcon,\n GlLink,\n GlLoadingIcon,\n GlIcon,\n GlSprintf,\n GlTooltip,\n GlButton,\n PipelineMiniGraph,\n PipelineArtifacts,\n TimeAgoTooltip,\n TooltipOnTruncate,\n HelpPopover,\n HelpIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n SafeHtml,\n },\n mixins: [runPipelineMixin],\n props: {\n pipeline: {\n type: Object,\n required: true,\n },\n pipelineCoverageDelta: {\n type: String,\n required: false,\n },\n pipelineEtag: {\n type: String,\n required: false,\n },\n buildsWithCoverage: {\n type: Array,\n required: false,\n default: () => [],\n },\n // This prop needs to be camelCase, html attributes are case insensive\n // https://vuejs.org/v2/guide/components.html#camelCase-vs-kebab-case\n hasCi: {\n type: Boolean,\n required: false,\n },\n ciStatus: {\n type: String,\n required: false,\n },\n pipelineMustSucceed: {\n type: Boolean,\n required: false,\n },\n sourceBranchLink: {\n type: String,\n required: false,\n },\n sourceBranch: {\n type: String,\n required: false,\n },\n mrTroubleshootingDocsPath: {\n type: String,\n required: true,\n },\n ciTroubleshootingDocsPath: {\n type: String,\n required: true,\n },\n mergeStrategy: {\n type: String,\n required: false,\n default: '',\n },\n retargeted: {\n type: Boolean,\n required: false,\n default: false,\n },\n targetProjectFullPath: {\n type: String,\n required: true,\n },\n isPostMerge: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isCreatingPipeline: false,\n mergeRequestEventType: null,\n };\n },\n computed: {\n downstreamPipelines() {\n const downstream = this.pipeline.triggered;\n return keepLatestDownstreamPipelines(downstream);\n },\n hasPipeline() {\n return this.pipeline && Object.keys(this.pipeline).length > 0;\n },\n hasCIError() {\n return this.hasPipeline && !this.ciStatus;\n },\n status() {\n return this.pipeline?.details?.status || {};\n },\n artifacts() {\n return this.pipeline?.details?.artifacts;\n },\n hasArtifacts() {\n return Boolean(this.pipeline?.details?.artifacts?.length);\n },\n hasStages() {\n return this.pipeline?.details?.stages?.length > 0;\n },\n hasCommitInfo() {\n return this.pipeline.commit && Object.keys(this.pipeline.commit).length > 0;\n },\n isMergeRequestPipeline() {\n return Boolean(this.pipeline.flags && this.pipeline.flags.merge_request_pipeline);\n },\n showSourceBranch() {\n return Boolean(this.pipeline.ref.branch);\n },\n finishedAt() {\n return this.pipeline?.details?.finished_at;\n },\n coverageDeltaClass() {\n const delta = this.pipelineCoverageDelta;\n if (delta && parseFloat(delta) > 0) {\n return 'gl-text-success';\n }\n if (delta && parseFloat(delta) < 0) {\n return 'gl-text-danger';\n }\n return '';\n },\n pipelineCoverageJobNumberText() {\n return n__('from %d job', 'from %d jobs', this.buildsWithCoverage.length);\n },\n pipelineCoverageTooltipDeltaDescription() {\n const delta = parseFloat(this.pipelineCoverageDelta) || 0;\n if (delta > 0) {\n return s__('Pipeline|This change will increase the overall test coverage if merged.');\n }\n if (delta < 0) {\n return s__('Pipeline|This change will decrease the overall test coverage if merged.');\n }\n return s__('Pipeline|This change will not change the overall test coverage if merged.');\n },\n pipelineCoverageTooltipDescription() {\n return n__(\n 'Test coverage value for this pipeline was calculated by the coverage value of %d job.',\n 'Test coverage value for this pipeline was calculated by averaging the resulting coverage values of %d jobs.',\n this.buildsWithCoverage.length,\n );\n },\n isMergeTrain() {\n return Boolean(this.pipeline.flags?.merge_train_pipeline);\n },\n showPipelineTypeHelpPopover() {\n return [\n PIPELINE_EVENT_TYPE_MERGE_TRAIN,\n PIPELINE_EVENT_TYPE_MERGED_RESULT,\n PIPELINE_EVENT_TYPE_MERGE_REQUEST,\n ].includes(this.pipeline?.details?.event_type_name);\n },\n pipelineTypeHelpPopoverOptions() {\n const eventTypeName = this.pipeline?.details?.event_type_name;\n\n return PIPELINE_EVENT_TYPE_MAP[eventTypeName] || { title: '', content: '' };\n },\n },\n errorText: s__(\n 'Pipeline|Could not retrieve the pipeline status. For troubleshooting steps, read the %{linkStart}documentation%{linkEnd}.',\n ),\n monitoringPipelineText: s__('Pipeline|Checking pipeline status.'),\n};\n</script>\n<template>\n <div class=\"ci-widget media\">\n <template v-if=\"hasCIError\">\n <gl-icon name=\"status_failed\" :size=\"24\" variant=\"danger\" />\n <p class=\"gl-mb-0 gl-ml-5 gl-grow\" data-testid=\"ci-error-message\">\n <gl-sprintf :message=\"$options.errorText\">\n <template #link=\"{ content }\">\n <gl-link :href=\"mrTroubleshootingDocsPath\">{{ content }}</gl-link>\n </template>\n </gl-sprintf>\n </p>\n </template>\n <template v-else-if=\"retargeted\">\n <gl-icon name=\"status_canceled\" class=\"gl-mr-3 gl-self-center\" />\n <p class=\"gl-mb-0 gl-ml-3 gl-flex gl-grow gl-text-subtle\" data-testid=\"retargeted-message\">\n {{\n __(\n 'You should run a new pipeline, because the target branch has changed for this merge request.',\n )\n }}\n </p>\n <gl-button\n v-if=\"mergeRequestEventType\"\n category=\"tertiary\"\n variant=\"confirm\"\n size=\"small\"\n :loading=\"isCreatingPipeline\"\n data-testid=\"run-pipeline-button\"\n @click=\"runPipeline\"\n >\n {{ __('Run pipeline') }}\n </gl-button>\n </template>\n <template v-else-if=\"!hasPipeline\">\n <gl-loading-icon size=\"sm\" />\n <p class=\"gl-mb-0 gl-ml-3 gl-flex gl-grow\" data-testid=\"monitoring-pipeline-message\">\n {{ $options.monitoringPipelineText }}\n <gl-link\n v-gl-tooltip\n :href=\"ciTroubleshootingDocsPath\"\n target=\"_blank\"\n :title=\"__('Get more information about troubleshooting pipelines')\"\n class=\"gl-ml-2 gl-flex gl-items-center\"\n >\n <help-icon :aria-label=\"__('Link to go to GitLab pipeline documentation')\" />\n </gl-link>\n </p>\n </template>\n <template v-else-if=\"hasPipeline\">\n <ci-icon :status=\"status\" class=\"gl-mr-3 gl-mt-2 gl-self-start\" />\n <div class=\"ci-widget-container gl-flex\">\n <div class=\"ci-widget-content\">\n <div class=\"media-body\">\n <div\n data-testid=\"pipeline-info-container\"\n class=\"gl-flex gl-flex-wrap gl-items-center gl-justify-between\"\n >\n <p\n class=\"mr-pipeline-title !gl-m-0 !gl-mr-3 gl-self-start gl-font-bold gl-text-default\"\n >\n {{ pipeline.details.event_type_name }}\n <gl-link :href=\"pipeline.path\" class=\"pipeline-id\" data-testid=\"pipeline-id\"\n >#{{ pipeline.id }}</gl-link\n >\n {{ pipeline.details.status.label }}\n </p>\n <div class=\"gl-inline-flex gl-grow gl-items-center gl-justify-between\">\n <div>\n <pipeline-mini-graph\n v-if=\"pipeline.details.stages\"\n :downstream-pipelines=\"downstreamPipelines\"\n :is-merge-train=\"isMergeTrain\"\n :pipeline-path=\"pipeline.path\"\n :pipeline-stages=\"pipeline.details.stages\"\n :upstream-pipeline=\"pipeline.triggered_by\"\n />\n </div>\n <pipeline-artifacts\n v-if=\"hasArtifacts\"\n :pipeline-id=\"pipeline.id\"\n :artifacts=\"artifacts\"\n class=\"gl-ml-3\"\n />\n </div>\n </div>\n\n <div class=\"gl-flex gl-flex-wrap gl-items-center\">\n <p class=\"gl-m-0 gl-text-sm gl-text-subtle\" data-testid=\"pipeline-details-container\">\n {{ pipeline.details.event_type_name }} {{ pipeline.details.status.label }}\n <template v-if=\"hasCommitInfo\">\n {{ s__('Pipeline|for') }}\n <gl-link\n :href=\"pipeline.commit.commit_path\"\n class=\"commit-sha-container\"\n data-testid=\"commit-link\"\n >{{ pipeline.commit.short_id }}</gl-link\n >\n </template>\n <template v-if=\"showSourceBranch\">\n {{ s__('Pipeline|on') }}\n <tooltip-on-truncate\n :title=\"sourceBranch\"\n truncate-target=\"child\"\n class=\"label-branch label-truncate ref-container\"\n >\n <template v-if=\"isPostMerge\">{{ sourceBranchLink }}</template>\n <span v-else v-safe-html=\"sourceBranchLink\"></span>\n </tooltip-on-truncate>\n </template>\n <template v-if=\"finishedAt\">\n <time-ago-tooltip\n :time=\"finishedAt\"\n tooltip-placement=\"bottom\"\n data-testid=\"finished-at\"\n />\n </template>\n </p>\n <help-popover\n v-if=\"showPipelineTypeHelpPopover\"\n class=\"gl-ml-2 gl-inline-flex\"\n :options=\"pipelineTypeHelpPopoverOptions\"\n />\n </div>\n\n <div v-if=\"pipeline.coverage\" class=\"coverage gl-mt-1\" data-testid=\"pipeline-coverage\">\n {{ s__('Pipeline|Test coverage') }} {{ pipeline.coverage }}%\n <span\n v-if=\"pipelineCoverageDelta\"\n ref=\"pipelineCoverageDelta\"\n :class=\"coverageDeltaClass\"\n data-testid=\"pipeline-coverage-delta\"\n >\n ({{ pipelineCoverageDelta }}%)\n </span>\n {{ pipelineCoverageJobNumberText }}\n <span ref=\"pipelineCoverageQuestion\">\n <help-icon />\n </span>\n <gl-tooltip\n :target=\"() => $refs.pipelineCoverageQuestion\"\n data-testid=\"pipeline-coverage-tooltip\"\n >\n {{ pipelineCoverageTooltipDescription }}\n <div\n v-for=\"(build, index) in buildsWithCoverage\"\n :key=\"`${build.name}-${index}`\"\n class=\"gl-mt-3 gl-px-4 gl-text-left\"\n >\n {{ build.name }} ({{ build.coverage }}%)\n </div>\n </gl-tooltip>\n <gl-tooltip\n :target=\"() => $refs.pipelineCoverageDelta\"\n data-testid=\"pipeline-coverage-delta-tooltip\"\n >\n {{ pipelineCoverageTooltipDeltaDescription }}\n </gl-tooltip>\n </div>\n </div>\n </div>\n </div>\n </template>\n </div>\n</template>\n","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!./mr_widget_pipeline_container.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!./mr_widget_pipeline_container.vue?vue&type=script&lang=js\"","<script>\nimport { sanitize } from '~/lib/dompurify';\nimport { n__ } from '~/locale';\nimport MergeRequestStore from '../stores/mr_widget_store';\nimport ArtifactsApp from './artifacts_list_app.vue';\nimport DeploymentList from './deployment/deployment_list.vue';\nimport MrWidgetContainer from './mr_widget_container.vue';\nimport MrWidgetPipeline from './mr_widget_pipeline.vue';\n\n/**\n * Renders the pipeline and related deployments from the store.\n *\n * | Props | Description\n * |---------------|-------------\n * | `mr` | This is the mr_widget store\n * | `isPostMerge` | If true, show the \"post merge\" pipeline and deployments\n */\nexport default {\n name: 'MrWidgetPipelineContainer',\n components: {\n ArtifactsApp,\n DeploymentList,\n MrWidgetContainer,\n MrWidgetPipeline,\n MergeTrainPositionIndicator: () =>\n import('ee_component/vue_merge_request_widget/components/merge_train_position_indicator.vue'),\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n isPostMerge: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n branch() {\n return this.isPostMerge ? this.mr.targetBranch : this.mr.sourceBranch;\n },\n branchLink() {\n return this.isPostMerge ? sanitize(this.mr.targetBranch) : this.mr.sourceBranchLink;\n },\n deployments() {\n return this.isPostMerge ? this.mr.postMergeDeployments : this.mr.deployments;\n },\n deploymentClass() {\n return this.isPostMerge ? 'js-post-deployment' : 'js-pre-deployment';\n },\n hasDeploymentMetrics() {\n return this.isPostMerge;\n },\n pipeline() {\n return this.isPostMerge ? this.mr.mergePipeline : this.mr.pipeline;\n },\n showCollapsedDeployments() {\n return this.deployments.length > 3;\n },\n multipleDeploymentsTitle() {\n return n__(\n 'Deployments|%{deployments} environment impacted.',\n 'Deployments|%{deployments} environments impacted.',\n this.deployments.length,\n );\n },\n preferredAutoMergeStrategy() {\n return MergeRequestStore.getPreferredAutoMergeStrategy(this.mr.availableAutoMergeStrategies);\n },\n ciStatus() {\n return this.isPostMerge ? this.mr?.mergePipeline?.details?.status?.text : this.mr.ciStatus;\n },\n },\n};\n</script>\n<template>\n <mr-widget-container>\n <mr-widget-pipeline\n :pipeline=\"pipeline\"\n :pipeline-coverage-delta=\"mr.pipelineCoverageDelta\"\n :pipeline-etag=\"mr.pipelineEtag\"\n :builds-with-coverage=\"mr.buildsWithCoverage\"\n :ci-status=\"ciStatus\"\n :has-ci=\"mr.hasCI\"\n :pipeline-must-succeed=\"mr.onlyAllowMergeIfPipelineSucceeds\"\n :source-branch=\"branch\"\n :source-branch-link=\"branchLink\"\n :mr-troubleshooting-docs-path=\"mr.mrTroubleshootingDocsPath\"\n :ci-troubleshooting-docs-path=\"mr.ciTroubleshootingDocsPath\"\n :merge-strategy=\"preferredAutoMergeStrategy\"\n :retargeted=\"mr.retargeted\"\n :target-project-id=\"mr.targetProjectId\"\n :iid=\"mr.iid\"\n :target-project-full-path=\"mr.targetProjectFullPath\"\n :is-post-merge=\"isPostMerge\"\n />\n <template #footer>\n <div v-if=\"mr.exposedArtifactsPath\" class=\"js-exposed-artifacts\">\n <artifacts-app :endpoint=\"mr.exposedArtifactsPath\" />\n </div>\n <deployment-list\n v-if=\"deployments.length\"\n :deployments=\"deployments\"\n :deployment-class=\"deploymentClass\"\n :has-deployment-metrics=\"hasDeploymentMetrics\"\n />\n\n <merge-train-position-indicator\n class=\"mr-widget-extension\"\n :merge-request-state=\"mr.mergeRequestState\"\n :merge-trains-count=\"mr.mergeTrainsCount\"\n :merge-trains-path=\"mr.mergeTrainsPath\"\n :merge-train-car=\"mr.mergeTrainCar\"\n />\n </template>\n </mr-widget-container>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_pipeline.vue?vue&type=template&id=f2754674\"\nimport script from \"./mr_widget_pipeline.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_pipeline.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('div',{staticClass:\"ci-widget media\"},[(_vm.hasCIError)?[_c('gl-icon',{attrs:{\"name\":\"status_failed\",\"size\":24,\"variant\":\"danger\"}}),_vm._v(\" \"),_c('p',{staticClass:\"gl-mb-0 gl-ml-5 gl-grow\",attrs:{\"data-testid\":\"ci-error-message\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.errorText},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.mrTroubleshootingDocsPath}},[_vm._v(_vm._s(content))])]}}],null,false,1359385839)})],1)]:(_vm.retargeted)?[_c('gl-icon',{staticClass:\"gl-mr-3 gl-self-center\",attrs:{\"name\":\"status_canceled\"}}),_vm._v(\" \"),_c('p',{staticClass:\"gl-mb-0 gl-ml-3 gl-flex gl-grow gl-text-subtle\",attrs:{\"data-testid\":\"retargeted-message\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__(\n 'You should run a new pipeline, because the target branch has changed for this merge request.',\n ))+\"\\n \")]),_vm._v(\" \"),(_vm.mergeRequestEventType)?_c('gl-button',{attrs:{\"category\":\"tertiary\",\"variant\":\"confirm\",\"size\":\"small\",\"loading\":_vm.isCreatingPipeline,\"data-testid\":\"run-pipeline-button\"},on:{\"click\":_vm.runPipeline}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Run pipeline'))+\"\\n \")]):_vm._e()]:(!_vm.hasPipeline)?[_c('gl-loading-icon',{attrs:{\"size\":\"sm\"}}),_vm._v(\" \"),_c('p',{staticClass:\"gl-mb-0 gl-ml-3 gl-flex gl-grow\",attrs:{\"data-testid\":\"monitoring-pipeline-message\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.monitoringPipelineText)+\"\\n \"),_c('gl-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-ml-2 gl-flex gl-items-center\",attrs:{\"href\":_vm.ciTroubleshootingDocsPath,\"target\":\"_blank\",\"title\":_vm.__('Get more information about troubleshooting pipelines')}},[_c('help-icon',{attrs:{\"aria-label\":_vm.__('Link to go to GitLab pipeline documentation')}})],1)],1)]:(_vm.hasPipeline)?[_c('ci-icon',{staticClass:\"gl-mr-3 gl-mt-2 gl-self-start\",attrs:{\"status\":_vm.status}}),_vm._v(\" \"),_c('div',{staticClass:\"ci-widget-container gl-flex\"},[_c('div',{staticClass:\"ci-widget-content\"},[_c('div',{staticClass:\"media-body\"},[_c('div',{staticClass:\"gl-flex gl-flex-wrap gl-items-center gl-justify-between\",attrs:{\"data-testid\":\"pipeline-info-container\"}},[_c('p',{staticClass:\"mr-pipeline-title !gl-m-0 !gl-mr-3 gl-self-start gl-font-bold gl-text-default\"},[_vm._v(\"\\n \"+_vm._s(_vm.pipeline.details.event_type_name)+\"\\n \"),_c('gl-link',{staticClass:\"pipeline-id\",attrs:{\"href\":_vm.pipeline.path,\"data-testid\":\"pipeline-id\"}},[_vm._v(\"#\"+_vm._s(_vm.pipeline.id))]),_vm._v(\"\\n \"+_vm._s(_vm.pipeline.details.status.label)+\"\\n \")],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-inline-flex gl-grow gl-items-center gl-justify-between\"},[_c('div',[(_vm.pipeline.details.stages)?_c('pipeline-mini-graph',{attrs:{\"downstream-pipelines\":_vm.downstreamPipelines,\"is-merge-train\":_vm.isMergeTrain,\"pipeline-path\":_vm.pipeline.path,\"pipeline-stages\":_vm.pipeline.details.stages,\"upstream-pipeline\":_vm.pipeline.triggered_by}}):_vm._e()],1),_vm._v(\" \"),(_vm.hasArtifacts)?_c('pipeline-artifacts',{staticClass:\"gl-ml-3\",attrs:{\"pipeline-id\":_vm.pipeline.id,\"artifacts\":_vm.artifacts}}):_vm._e()],1)]),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-flex-wrap gl-items-center\"},[_c('p',{staticClass:\"gl-m-0 gl-text-sm gl-text-subtle\",attrs:{\"data-testid\":\"pipeline-details-container\"}},[_vm._v(\"\\n \"+_vm._s(_vm.pipeline.details.event_type_name)+\" \"+_vm._s(_vm.pipeline.details.status.label)+\"\\n \"),(_vm.hasCommitInfo)?[_vm._v(\"\\n \"+_vm._s(_vm.s__('Pipeline|for'))+\"\\n \"),_c('gl-link',{staticClass:\"commit-sha-container\",attrs:{\"href\":_vm.pipeline.commit.commit_path,\"data-testid\":\"commit-link\"}},[_vm._v(_vm._s(_vm.pipeline.commit.short_id))])]:_vm._e(),_vm._v(\" \"),(_vm.showSourceBranch)?[_vm._v(\"\\n \"+_vm._s(_vm.s__('Pipeline|on'))+\"\\n \"),_c('tooltip-on-truncate',{staticClass:\"label-branch label-truncate ref-container\",attrs:{\"title\":_vm.sourceBranch,\"truncate-target\":\"child\"}},[(_vm.isPostMerge)?[_vm._v(_vm._s(_vm.sourceBranchLink))]:_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.sourceBranchLink),expression:\"sourceBranchLink\"}]})],2)]:_vm._e(),_vm._v(\" \"),(_vm.finishedAt)?[_c('time-ago-tooltip',{attrs:{\"time\":_vm.finishedAt,\"tooltip-placement\":\"bottom\",\"data-testid\":\"finished-at\"}})]:_vm._e()],2),_vm._v(\" \"),(_vm.showPipelineTypeHelpPopover)?_c('help-popover',{staticClass:\"gl-ml-2 gl-inline-flex\",attrs:{\"options\":_vm.pipelineTypeHelpPopoverOptions}}):_vm._e()],1),_vm._v(\" \"),(_vm.pipeline.coverage)?_c('div',{staticClass:\"coverage gl-mt-1\",attrs:{\"data-testid\":\"pipeline-coverage\"}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('Pipeline|Test coverage'))+\" \"+_vm._s(_vm.pipeline.coverage)+\"%\\n \"),(_vm.pipelineCoverageDelta)?_c('span',{ref:\"pipelineCoverageDelta\",class:_vm.coverageDeltaClass,attrs:{\"data-testid\":\"pipeline-coverage-delta\"}},[_vm._v(\"\\n (\"+_vm._s(_vm.pipelineCoverageDelta)+\"%)\\n \")]):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.pipelineCoverageJobNumberText)+\"\\n \"),_c('span',{ref:\"pipelineCoverageQuestion\"},[_c('help-icon')],1),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.pipelineCoverageQuestion,\"data-testid\":\"pipeline-coverage-tooltip\"}},[_vm._v(\"\\n \"+_vm._s(_vm.pipelineCoverageTooltipDescription)+\"\\n \"),_vm._l((_vm.buildsWithCoverage),function(build,index){return _c('div',{key:`${build.name}-${index}`,staticClass:\"gl-mt-3 gl-px-4 gl-text-left\"},[_vm._v(\"\\n \"+_vm._s(build.name)+\" (\"+_vm._s(build.coverage)+\"%)\\n \")])})],2),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.pipelineCoverageDelta,\"data-testid\":\"pipeline-coverage-delta-tooltip\"}},[_vm._v(\"\\n \"+_vm._s(_vm.pipelineCoverageTooltipDeltaDescription)+\"\\n \")])],1):_vm._e()])])])]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./mr_widget_pipeline_container.vue?vue&type=template&id=669a903f\"\nimport script from \"./mr_widget_pipeline_container.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_pipeline_container.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('mr-widget-container',{scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [(_vm.mr.exposedArtifactsPath)?_c('div',{staticClass:\"js-exposed-artifacts\"},[_c('artifacts-app',{attrs:{\"endpoint\":_vm.mr.exposedArtifactsPath}})],1):_vm._e(),_vm._v(\" \"),(_vm.deployments.length)?_c('deployment-list',{attrs:{\"deployments\":_vm.deployments,\"deployment-class\":_vm.deploymentClass,\"has-deployment-metrics\":_vm.hasDeploymentMetrics}}):_vm._e(),_vm._v(\" \"),_c('merge-train-position-indicator',{staticClass:\"mr-widget-extension\",attrs:{\"merge-request-state\":_vm.mr.mergeRequestState,\"merge-trains-count\":_vm.mr.mergeTrainsCount,\"merge-trains-path\":_vm.mr.mergeTrainsPath,\"merge-train-car\":_vm.mr.mergeTrainCar}})]},proxy:true}])},[_c('mr-widget-pipeline',{attrs:{\"pipeline\":_vm.pipeline,\"pipeline-coverage-delta\":_vm.mr.pipelineCoverageDelta,\"pipeline-etag\":_vm.mr.pipelineEtag,\"builds-with-coverage\":_vm.mr.buildsWithCoverage,\"ci-status\":_vm.ciStatus,\"has-ci\":_vm.mr.hasCI,\"pipeline-must-succeed\":_vm.mr.onlyAllowMergeIfPipelineSucceeds,\"source-branch\":_vm.branch,\"source-branch-link\":_vm.branchLink,\"mr-troubleshooting-docs-path\":_vm.mr.mrTroubleshootingDocsPath,\"ci-troubleshooting-docs-path\":_vm.mr.ciTroubleshootingDocsPath,\"merge-strategy\":_vm.preferredAutoMergeStrategy,\"retargeted\":_vm.mr.retargeted,\"target-project-id\":_vm.mr.targetProjectId,\"iid\":_vm.mr.iid,\"target-project-full-path\":_vm.mr.targetProjectFullPath,\"is-post-merge\":_vm.isPostMerge}})],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!./dismissible_container.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!./dismissible_container.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport axios from '~/lib/utils/axios_utils';\n\nexport default {\n components: {\n GlIcon,\n },\n props: {\n path: {\n type: String,\n required: true,\n },\n featureId: {\n type: String,\n required: true,\n },\n },\n methods: {\n dismiss() {\n axios\n .post(this.path, {\n feature_name: this.featureId,\n })\n .catch((e) => {\n // eslint-disable-next-line @gitlab/require-i18n-strings, no-console\n console.error('Failed to dismiss message.', e);\n });\n\n this.$emit('dismiss');\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div class=\"gl-flex gl-items-center\">\n <slot name=\"title\"></slot>\n <div class=\"ml-auto\">\n <button\n :aria-label=\"__('Close')\"\n class=\"gl-rounded-none gl-border-none !gl-bg-transparent gl-p-0 !gl-shadow-none !gl-outline-none\"\n type=\"button\"\n data-testid=\"close\"\n @click=\"dismiss\"\n >\n <gl-icon name=\"close\" variant=\"subtle\" />\n </button>\n </div>\n </div>\n <slot></slot>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./dismissible_container.vue?vue&type=template&id=7a876ede\"\nimport script from \"./dismissible_container.vue?vue&type=script&lang=js\"\nexport * from \"./dismissible_container.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('div',[_c('div',{staticClass:\"gl-flex gl-items-center\"},[_vm._t(\"title\"),_vm._v(\" \"),_c('div',{staticClass:\"ml-auto\"},[_c('button',{staticClass:\"gl-rounded-none gl-border-none !gl-bg-transparent gl-p-0 !gl-shadow-none !gl-outline-none\",attrs:{\"aria-label\":_vm.__('Close'),\"type\":\"button\",\"data-testid\":\"close\"},on:{\"click\":_vm.dismiss}},[_c('gl-icon',{attrs:{\"name\":\"close\",\"variant\":\"subtle\"}})],1)])],2),_vm._v(\" \"),_vm._t(\"default\")],2)\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!./mr_widget_icon.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!./mr_widget_icon.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\n\nexport default {\n components: { GlIcon },\n props: {\n name: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"circle-icon-container align-self-start gl-mr-3 gl-mt-2\">\n <gl-icon :name=\"name\" :size=\"24\" variant=\"subtle\" />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_icon.vue?vue&type=template&id=097ed84f\"\nimport script from \"./mr_widget_icon.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_icon.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('div',{staticClass:\"circle-icon-container align-self-start gl-mr-3 gl-mt-2\"},[_c('gl-icon',{attrs:{\"name\":_vm.name,\"size\":24,\"variant\":\"subtle\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlLink, GlSprintf, GlButton } from '@gitlab/ui';\nimport Tracking from '~/tracking';\nimport DismissibleContainer from '~/vue_shared/components/dismissible_container.vue';\nimport {\n SP_TRACK_LABEL,\n SP_SHOW_TRACK_EVENT,\n SP_SHOW_TRACK_VALUE,\n SP_HELP_CONTENT,\n SP_HELP_URL,\n SP_ICON_NAME,\n} from '../constants';\nimport MrWidgetIcon from './mr_widget_icon.vue';\n\nconst trackingMixin = Tracking.mixin();\n\nexport default {\n name: 'MRWidgetSuggestPipeline',\n SP_ICON_NAME,\n SP_TRACK_LABEL,\n SP_SHOW_TRACK_EVENT,\n SP_SHOW_TRACK_VALUE,\n SP_HELP_CONTENT,\n SP_HELP_URL,\n components: {\n GlLink,\n GlSprintf,\n GlButton,\n MrWidgetIcon,\n DismissibleContainer,\n },\n mixins: [trackingMixin],\n props: {\n pipelinePath: {\n type: String,\n required: true,\n },\n pipelineSvgPath: {\n type: String,\n required: true,\n },\n humanAccess: {\n type: String,\n required: true,\n },\n userCalloutsPath: {\n type: String,\n required: true,\n },\n userCalloutFeatureId: {\n type: String,\n required: true,\n },\n },\n computed: {\n tracking() {\n return {\n label: SP_TRACK_LABEL,\n property: this.humanAccess,\n };\n },\n },\n mounted() {\n this.track();\n },\n};\n</script>\n<template>\n <dismissible-container\n class=\"mr-widget-body mr-pipeline-suggest gl-mb-3\"\n :path=\"userCalloutsPath\"\n :feature-id=\"userCalloutFeatureId\"\n @dismiss=\"$emit('dismiss')\"\n >\n <template #title>\n <mr-widget-icon :name=\"$options.SP_ICON_NAME\" />\n <div>\n <gl-sprintf\n :message=\"\n s__(`mrWidget|%{boldHeaderStart}Looks like there's no pipeline here.%{boldHeaderEnd}`)\n \"\n >\n <template #boldHeader=\"{ content }\">\n <strong>\n {{ content }}\n </strong>\n </template>\n </gl-sprintf>\n </div>\n </template>\n <div class=\"row\">\n <div\n class=\"col-md-5 order-md-last col-12 svg-content svg-225 gl-mt-5 md:!-gl-mt-2 md:gl-pt-2\"\n >\n <img data-testid=\"pipeline-image\" :src=\"pipelineSvgPath\" />\n </div>\n <div class=\"col-md-7 order-md-first col-12\">\n <div class=\"ml-6 gl-pt-5\">\n <p class=\"gl-mt-2\">\n <gl-sprintf :message=\"$options.SP_HELP_CONTENT\">\n <template #link=\"{ content }\">\n <gl-link data-testid=\"help\" :href=\"$options.SP_HELP_URL\" target=\"_blank\"\n >{{ content }}\n </gl-link>\n </template>\n </gl-sprintf>\n </p>\n <gl-button\n data-testid=\"ok\"\n category=\"primary\"\n class=\"gl-mt-2\"\n variant=\"confirm\"\n :href=\"pipelinePath\"\n :data-track-property=\"humanAccess\"\n :data-track-value=\"$options.SP_SHOW_TRACK_VALUE\"\n :data-track-action=\"$options.SP_SHOW_TRACK_EVENT\"\n :data-track-label=\"$options.SP_TRACK_LABEL\"\n >\n {{ __('Try out GitLab Pipelines') }}\n </gl-button>\n </div>\n </div>\n </div>\n </dismissible-container>\n</template>\n","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!./mr_widget_suggest_pipeline.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!./mr_widget_suggest_pipeline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./mr_widget_suggest_pipeline.vue?vue&type=template&id=0462fc2e\"\nimport script from \"./mr_widget_suggest_pipeline.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_suggest_pipeline.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('dismissible-container',{staticClass:\"mr-widget-body mr-pipeline-suggest gl-mb-3\",attrs:{\"path\":_vm.userCalloutsPath,\"feature-id\":_vm.userCalloutFeatureId},on:{\"dismiss\":function($event){return _vm.$emit('dismiss')}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_c('mr-widget-icon',{attrs:{\"name\":_vm.$options.SP_ICON_NAME}}),_vm._v(\" \"),_c('div',[_c('gl-sprintf',{attrs:{\"message\":_vm.s__(`mrWidget|%{boldHeaderStart}Looks like there's no pipeline here.%{boldHeaderEnd}`)},scopedSlots:_vm._u([{key:\"boldHeader\",fn:function({ content }){return [_c('strong',[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}}])})],1)]},proxy:true}])},[_vm._v(\" \"),_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col-md-5 order-md-last col-12 svg-content svg-225 gl-mt-5 md:!-gl-mt-2 md:gl-pt-2\"},[_c('img',{attrs:{\"data-testid\":\"pipeline-image\",\"src\":_vm.pipelineSvgPath}})]),_vm._v(\" \"),_c('div',{staticClass:\"col-md-7 order-md-first col-12\"},[_c('div',{staticClass:\"ml-6 gl-pt-5\"},[_c('p',{staticClass:\"gl-mt-2\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.SP_HELP_CONTENT},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{attrs:{\"data-testid\":\"help\",\"href\":_vm.$options.SP_HELP_URL,\"target\":\"_blank\"}},[_vm._v(_vm._s(content)+\"\\n \")])]}}])})],1),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-mt-2\",attrs:{\"data-testid\":\"ok\",\"category\":\"primary\",\"variant\":\"confirm\",\"href\":_vm.pipelinePath,\"data-track-property\":_vm.humanAccess,\"data-track-value\":_vm.$options.SP_SHOW_TRACK_VALUE,\"data-track-action\":_vm.$options.SP_SHOW_TRACK_EVENT,\"data-track-label\":_vm.$options.SP_TRACK_LABEL}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Try out GitLab Pipelines'))+\"\\n \")])],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlBadge, GlIcon, GlLink, GlTooltipDirective } from '@gitlab/ui';\nimport { reportToSentry } from '~/ci/utils';\nimport { s__ } from '~/locale';\nimport axios from '~/lib/utils/axios_utils';\nimport { InternalEvents } from '~/tracking';\nimport { JM_JENKINS_TITLE_ICON_NAME, JM_MIGRATION_LINK, JM_EVENT_NAME } from '../constants';\n\nconst trackingMixin = InternalEvents.mixin();\n\nexport default {\n name: 'MRWidgetMigrateJenkinsCallout',\n JM_JENKINS_TITLE_ICON_NAME,\n JM_EVENT_NAME,\n JM_MIGRATION_LINK,\n components: {\n GlBadge,\n GlLink,\n GlIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [trackingMixin],\n props: {\n humanAccess: {\n type: String,\n required: true,\n },\n path: {\n type: String,\n required: true,\n },\n featureId: {\n type: String,\n required: true,\n },\n },\n i18n: {\n title: s__('mrWidget|Migrate to GitLab CI/CD from Jenkins'),\n description: s__(\n 'mrWidget|Take advantage of simple, scalable pipelines and CI/CD enabled features. You can view integration results, security scans, tests, code coverage and more directly in merge requests!',\n ),\n migrationPlan: s__('mrWidget|Start with migration plan'),\n information: s__('mrWidget|Information'),\n },\n methods: {\n dismiss() {\n axios\n .post(this.path, {\n feature_name: this.featureId,\n })\n .catch((error) => {\n reportToSentry(this.$options.name, error);\n });\n\n this.trackEvent(this.$options.JM_EVENT_NAME);\n\n this.$emit('dismiss');\n },\n },\n};\n</script>\n<template>\n <div class=\"mr-widget-body mr-pipeline-suggest gl-mb-3\">\n <div class=\"gl-flex gl-items-center gl-justify-between\">\n <gl-badge\n v-gl-tooltip.viewport.left\n class=\"ci-icon ci-icon-variant-info gl-mr-3 gl-self-start gl-p-2 gl-pl-2\"\n variant=\"info\"\n :title=\"$options.i18n.information\"\n :href=\"$options.MIGRATION_LINK\"\n data-testid=\"ci-icon\"\n >\n <span class=\"ci-icon-gl-icon-wrapper\"\n ><gl-icon :name=\"$options.JM_JENKINS_TITLE_ICON_NAME\"\n /></span>\n </gl-badge>\n <div class=\"gl-flex gl-items-center gl-justify-between\">\n <div class=\"gl-flex gl-flex-wrap gl-items-center gl-justify-between\">\n <div class=\"gl-flex gl-w-full gl-flex-wrap\">\n <strong class=\"gl-flex gl-grow\">{{ $options.i18n.title }}</strong>\n <div class=\"gl-flex\">\n <gl-link\n data-testid=\"migration-plan\"\n :href=\"$options.JM_MIGRATION_LINK\"\n target=\"blank\"\n >{{ $options.i18n.migrationPlan }}</gl-link\n >\n <button\n :aria-label=\"__('Close')\"\n class=\"gl-ml-4 gl-border-0 gl-border-l-2 gl-border-solid gl-bg-transparent gl-p-0 gl-pl-2\"\n type=\"button\"\n data-testid=\"close\"\n @click=\"dismiss\"\n >\n <gl-icon name=\"close\" />\n </button>\n </div>\n </div>\n <div class=\"gl-mt-2\">\n {{ $options.i18n.description }}\n </div>\n </div>\n </div>\n </div>\n </div>\n</template>\n","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!./mr_widget_migrate_jenkins.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!./mr_widget_migrate_jenkins.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./mr_widget_migrate_jenkins.vue?vue&type=template&id=ecf0775a\"\nimport script from \"./mr_widget_migrate_jenkins.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_migrate_jenkins.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('div',{staticClass:\"mr-widget-body mr-pipeline-suggest gl-mb-3\"},[_c('div',{staticClass:\"gl-flex gl-items-center gl-justify-between\"},[_c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"ci-icon ci-icon-variant-info gl-mr-3 gl-self-start gl-p-2 gl-pl-2\",attrs:{\"variant\":\"info\",\"title\":_vm.$options.i18n.information,\"href\":_vm.$options.MIGRATION_LINK,\"data-testid\":\"ci-icon\"}},[_c('span',{staticClass:\"ci-icon-gl-icon-wrapper\"},[_c('gl-icon',{attrs:{\"name\":_vm.$options.JM_JENKINS_TITLE_ICON_NAME}})],1)]),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-items-center gl-justify-between\"},[_c('div',{staticClass:\"gl-flex gl-flex-wrap gl-items-center gl-justify-between\"},[_c('div',{staticClass:\"gl-flex gl-w-full gl-flex-wrap\"},[_c('strong',{staticClass:\"gl-flex gl-grow\"},[_vm._v(_vm._s(_vm.$options.i18n.title))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex\"},[_c('gl-link',{attrs:{\"data-testid\":\"migration-plan\",\"href\":_vm.$options.JM_MIGRATION_LINK,\"target\":\"blank\"}},[_vm._v(_vm._s(_vm.$options.i18n.migrationPlan))]),_vm._v(\" \"),_c('button',{staticClass:\"gl-ml-4 gl-border-0 gl-border-l-2 gl-border-solid gl-bg-transparent gl-p-0 gl-pl-2\",attrs:{\"aria-label\":_vm.__('Close'),\"type\":\"button\",\"data-testid\":\"close\"},on:{\"click\":_vm.dismiss}},[_c('gl-icon',{attrs:{\"name\":\"close\"}})],1)],1)]),_vm._v(\" \"),_c('div',{staticClass:\"gl-mt-2\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.description)+\"\\n \")])])])],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!./source_branch_removal_status.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!./source_branch_removal_status.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport { __ } from '~/locale';\n\nexport default {\n i18n: {\n removesBranchText: __('Deletes the source branch'),\n tooltipTitle: __('A user with write access to the source branch selected this option'),\n },\n components: {\n HelpIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n};\n</script>\n\n<template>\n <p v-once class=\"mr-info-list gl-mb-0 gl-ml-7 gl-pb-5\">\n <span class=\"status-text\">\n {{ $options.i18n.removesBranchText }}\n </span>\n <help-icon\n v-gl-tooltip.hover\n :title=\"$options.i18n.tooltipTitle\"\n :aria-label=\"$options.i18n.tooltipTitle\"\n />\n </p>\n</template>\n","import { render, staticRenderFns } from \"./source_branch_removal_status.vue?vue&type=template&id=28f52014\"\nimport script from \"./source_branch_removal_status.vue?vue&type=script&lang=js\"\nexport * from \"./source_branch_removal_status.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 _vm._m(0)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('p',{staticClass:\"mr-info-list gl-mb-0 gl-ml-7 gl-pb-5\"},[_c('span',{staticClass:\"status-text\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.removesBranchText)+\"\\n \")]),_vm._v(\" \"),_c('help-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"title\":_vm.$options.i18n.tooltipTitle,\"aria-label\":_vm.$options.i18n.tooltipTitle}})],1)\n}]\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!./bold_text.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!./bold_text.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf } from '@gitlab/ui';\n\nexport default {\n name: 'BoldText',\n components: {\n GlSprintf,\n },\n props: {\n message: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <span>\n <gl-sprintf :message=\"message\">\n <template #bold=\"{ content }\">\n <span class=\"gl-font-bold\" v-text=\"content\"></span>\n </template>\n </gl-sprintf>\n </span>\n</template>\n","import { render, staticRenderFns } from \"./bold_text.vue?vue&type=template&id=5d0c2d40\"\nimport script from \"./bold_text.vue?vue&type=script&lang=js\"\nexport * from \"./bold_text.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('span',[_c('gl-sprintf',{attrs:{\"message\":_vm.message},scopedSlots:_vm._u([{key:\"bold\",fn:function({ content }){return [_c('span',{staticClass:\"gl-font-bold\",domProps:{\"textContent\":_vm._s(content)}})]}}])})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { s__ } from '~/locale';\nimport BoldText from '~/vue_merge_request_widget/components/bold_text.vue';\nimport StateContainer from '../state_container.vue';\n\nconst message = s__(\n 'mrWidget|%{boldStart}Merge unavailable:%{boldEnd} merge requests are read-only on archived projects.',\n);\n\nexport default {\n name: 'MRWidgetArchived',\n message,\n components: {\n BoldText,\n StateContainer,\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <state-container status=\"failed\" is-collapsible>\n <bold-text :message=\"$options.message\" />\n </state-container>\n</template>\n","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!./mr_widget_archived.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!./mr_widget_archived.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./mr_widget_archived.vue?vue&type=template&id=09d886f3\"\nimport script from \"./mr_widget_archived.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_archived.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('state-container',{attrs:{\"status\":\"failed\",\"is-collapsible\":\"\"}},[_c('bold-text',{attrs:{\"message\":_vm.$options.message}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { s__ } from '~/locale';\nimport { MWCP_MERGE_STRATEGY } from '~/vue_merge_request_widget/constants';\n\nexport default {\n computed: {\n statusText() {\n const { autoMergeStrategy } = this.state.mergeRequest;\n\n if (autoMergeStrategy === MWCP_MERGE_STRATEGY) {\n return s__(\n 'mrWidget|Set by %{merge_author} to be merged automatically when all merge checks pass',\n );\n }\n\n return s__(\n 'mrWidget|Set by %{merge_author} to be merged automatically when the pipeline succeeds',\n );\n },\n cancelButtonText() {\n return s__('mrWidget|Cancel auto-merge');\n },\n },\n};\n","import { s__ } from '~/locale';\nimport CEAutoMergeMixin from '~/vue_merge_request_widget/mixins/auto_merge';\nimport {\n MT_MERGE_STRATEGY,\n MTWPS_MERGE_STRATEGY,\n MTWCP_MERGE_STRATEGY,\n MWCP_MERGE_STRATEGY,\n} from '~/vue_merge_request_widget/constants';\n\nexport default {\n computed: {\n statusText() {\n const { mergeTrains, mergeRequest } = this.state;\n\n const mergeTrainsCount = mergeTrains?.nodes[0]?.cars?.count || 0;\n const { autoMergeStrategy } = mergeRequest;\n\n if (autoMergeStrategy === MT_MERGE_STRATEGY) {\n return s__('mrWidget|Added to the merge train by %{merge_author}');\n }\n if (autoMergeStrategy === MTWPS_MERGE_STRATEGY && mergeTrainsCount === 0) {\n return s__(\n 'mrWidget|Set by %{merge_author} to start a merge train when the pipeline succeeds',\n );\n }\n if (autoMergeStrategy === MTWPS_MERGE_STRATEGY && mergeTrainsCount !== 0) {\n return s__(\n 'mrWidget|Set by %{merge_author} to be added to the merge train when the pipeline succeeds',\n );\n }\n if (autoMergeStrategy === MTWCP_MERGE_STRATEGY && mergeTrainsCount === 0) {\n return s__(\n 'mrWidget|Set by %{merge_author} to start a merge train when all merge checks pass',\n );\n }\n if (autoMergeStrategy === MTWCP_MERGE_STRATEGY && mergeTrainsCount !== 0) {\n return s__(\n 'mrWidget|Set by %{merge_author} to be added to the merge train when all merge checks pass',\n );\n }\n if (autoMergeStrategy === MWCP_MERGE_STRATEGY) {\n return s__(\n 'mrWidget|Set by %{merge_author} to be merged automatically when all merge checks pass',\n );\n }\n\n return CEAutoMergeMixin.computed.statusText.call(this);\n },\n cancelButtonText() {\n if (this.state?.mergeRequest?.autoMergeStrategy === MT_MERGE_STRATEGY) {\n return s__('mrWidget|Remove from merge train');\n }\n\n return s__('mrWidget|Cancel auto-merge');\n },\n },\n};\n","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!./mr_widget_author.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!./mr_widget_author.vue?vue&type=script&lang=js\"","<script>\nimport { GlAvatar, GlLink, GlTooltipDirective } from '@gitlab/ui';\n\nexport default {\n name: 'MrWidgetAuthor',\n components: {\n GlAvatar,\n GlLink,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n author: {\n type: Object,\n required: true,\n },\n showAuthorName: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n computed: {\n authorUrl() {\n return this.author.webUrl || this.author.web_url;\n },\n avatarUrl() {\n return this.author.avatarUrl || this.author.avatar_url || gl.mrWidgetData.defaultAvatarUrl;\n },\n },\n};\n</script>\n<template>\n <gl-link\n v-gl-tooltip\n :href=\"authorUrl\"\n :title=\"showAuthorName ? null : author.name\"\n class=\"mr-widget-author\"\n >\n <gl-avatar :src=\"avatarUrl\" :size=\"16\" :alt=\"author.name\" /><span\n v-if=\"showAuthorName\"\n class=\"author gl-ml-2\"\n >{{ author.name }}</span\n >\n </gl-link>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_author.vue?vue&type=template&id=96ccbfe6\"\nimport script from \"./mr_widget_author.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_author.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-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"mr-widget-author\",attrs:{\"href\":_vm.authorUrl,\"title\":_vm.showAuthorName ? null : _vm.author.name}},[_c('gl-avatar',{attrs:{\"src\":_vm.avatarUrl,\"size\":16,\"alt\":_vm.author.name}}),(_vm.showAuthorName)?_c('span',{staticClass:\"author gl-ml-2\"},[_vm._v(_vm._s(_vm.author.name))]):_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!./mr_widget_auto_merge_enabled.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!./mr_widget_auto_merge_enabled.vue?vue&type=script&lang=js\"","<script>\nimport { GlSkeletonLoader, GlSprintf } from '@gitlab/ui';\nimport autoMergeMixin from 'ee_else_ce/vue_merge_request_widget/mixins/auto_merge';\nimport autoMergeEnabledQuery from 'ee_else_ce/vue_merge_request_widget/queries/states/auto_merge_enabled.query.graphql';\nimport { createAlert } from '~/alert';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { fetchPolicies } from '~/lib/graphql';\nimport { __ } from '~/locale';\nimport { AUTO_MERGE_STRATEGIES } from '../../constants';\nimport eventHub from '../../event_hub';\nimport mergeRequestQueryVariablesMixin from '../../mixins/merge_request_query_variables';\nimport MrWidgetAuthor from '../mr_widget_author.vue';\nimport StateContainer from '../state_container.vue';\n\nexport default {\n name: 'MRWidgetAutoMergeEnabled',\n apollo: {\n state: {\n query: autoMergeEnabledQuery,\n fetchPolicy: fetchPolicies.NETWORK_ONLY,\n variables() {\n return this.mergeRequestQueryVariables;\n },\n update: (data) => data.project,\n },\n },\n components: {\n MrWidgetAuthor,\n GlSkeletonLoader,\n GlSprintf,\n StateContainer,\n },\n mixins: [autoMergeMixin, mergeRequestQueryVariablesMixin],\n props: {\n mr: {\n type: Object,\n required: true,\n },\n service: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n state: null,\n isCancellingAutoMerge: false,\n isRemovingSourceBranch: false,\n };\n },\n computed: {\n loading() {\n return this.$apollo.queries.state.loading || !this.state;\n },\n stateRemoveSourceBranch() {\n if (!this.state.mergeRequest.shouldRemoveSourceBranch) return false;\n\n return (\n this.state.mergeRequest.shouldRemoveSourceBranch ||\n this.state.mergeRequest.forceRemoveSourceBranch\n );\n },\n canRemoveSourceBranch() {\n const { currentUserId } = this.mr;\n const mergeUserId = getIdFromGraphQLId(this.state.mergeRequest.mergeUser?.id);\n const canRemoveSourceBranch = this.state.mergeRequest.userPermissions.removeSourceBranch;\n\n return (\n !this.stateRemoveSourceBranch && canRemoveSourceBranch && mergeUserId === currentUserId\n );\n },\n actions() {\n const actions = [];\n\n if (this.loading) {\n return actions;\n }\n\n if (this.mr.canCancelAutomaticMerge) {\n actions.push({\n text: this.cancelButtonText,\n loading: this.isCancellingAutoMerge,\n class: 'js-cancel-auto-merge',\n testId: 'cancelAutomaticMergeButton',\n onClick: () => this.cancelAutomaticMerge(),\n });\n }\n\n return actions;\n },\n },\n methods: {\n cancelAutomaticMerge() {\n this.isCancellingAutoMerge = true;\n this.service\n .cancelAutomaticMerge()\n .then((res) => res.data)\n .then(() => {\n eventHub.$emit('MRWidgetUpdateRequested');\n })\n .catch(() => {\n this.isCancellingAutoMerge = false;\n createAlert({\n message: __('Something went wrong. Please try again.'),\n });\n });\n },\n removeSourceBranch() {\n const options = {\n sha: this.mr.sha,\n auto_merge_strategy: this.state.mergeRequest.autoMergeStrategy,\n should_remove_source_branch: true,\n };\n\n this.isRemovingSourceBranch = true;\n this.service\n .merge(options)\n .then((res) => res.data)\n .then((data) => {\n if (AUTO_MERGE_STRATEGIES.includes(data.status)) {\n eventHub.$emit('MRWidgetUpdateRequested');\n }\n })\n .then(() => {\n this.$apollo.queries.state.refetch();\n })\n .catch(() => {\n this.isRemovingSourceBranch = false;\n createAlert({\n message: __('Something went wrong. Please try again.'),\n });\n });\n },\n },\n};\n</script>\n<template>\n <state-container status=\"scheduled\" :is-loading=\"loading\" :actions=\"actions\" is-collapsible>\n <template #loading>\n <gl-skeleton-loader :width=\"334\" :height=\"24\">\n <rect x=\"0\" y=\"0\" width=\"24\" height=\"24\" rx=\"4\" />\n <rect x=\"32\" y=\"2\" width=\"150\" height=\"20\" rx=\"4\" />\n <rect x=\"190\" y=\"2\" width=\"144\" height=\"20\" rx=\"4\" />\n </gl-skeleton-loader>\n </template>\n <template v-if=\"!loading\">\n <h4 class=\"gl-mr-3 gl-grow\" data-testid=\"statusText\">\n <gl-sprintf :message=\"statusText\" data-testid=\"statusText\">\n <template #merge_author>\n <mr-widget-author\n v-if=\"state.mergeRequest.mergeUser\"\n :author=\"state.mergeRequest.mergeUser\"\n />\n </template>\n </gl-sprintf>\n </h4>\n </template>\n </state-container>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_auto_merge_enabled.vue?vue&type=template&id=60915766\"\nimport script from \"./mr_widget_auto_merge_enabled.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_auto_merge_enabled.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('state-container',{attrs:{\"status\":\"scheduled\",\"is-loading\":_vm.loading,\"actions\":_vm.actions,\"is-collapsible\":\"\"},scopedSlots:_vm._u([{key:\"loading\",fn:function(){return [_c('gl-skeleton-loader',{attrs:{\"width\":334,\"height\":24}},[_c('rect',{attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"24\",\"height\":\"24\",\"rx\":\"4\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"x\":\"32\",\"y\":\"2\",\"width\":\"150\",\"height\":\"20\",\"rx\":\"4\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"x\":\"190\",\"y\":\"2\",\"width\":\"144\",\"height\":\"20\",\"rx\":\"4\"}})])]},proxy:true}])},[_vm._v(\" \"),(!_vm.loading)?[_c('h4',{staticClass:\"gl-mr-3 gl-grow\",attrs:{\"data-testid\":\"statusText\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.statusText,\"data-testid\":\"statusText\"},scopedSlots:_vm._u([{key:\"merge_author\",fn:function(){return [(_vm.state.mergeRequest.mergeUser)?_c('mr-widget-author',{attrs:{\"author\":_vm.state.mergeRequest.mergeUser}}):_vm._e()]},proxy:true}],null,false,2076509082)})],1)]:_vm._e()],2)\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!./mr_widget_auto_merge_failed.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!./mr_widget_auto_merge_failed.vue?vue&type=script&lang=js\"","<script>\nimport { s__ } from '~/locale';\nimport eventHub from '../../event_hub';\nimport mergeRequestQueryVariablesMixin from '../../mixins/merge_request_query_variables';\nimport autoMergeFailedQuery from '../../queries/states/auto_merge_failed.query.graphql';\nimport StateContainer from '../state_container.vue';\n\nexport default {\n name: 'MRWidgetAutoMergeFailed',\n components: {\n StateContainer,\n },\n mixins: [mergeRequestQueryVariablesMixin],\n apollo: {\n mergeError: {\n query: autoMergeFailedQuery,\n variables() {\n return this.mergeRequestQueryVariables;\n },\n update: (data) => data.project?.mergeRequest?.mergeError,\n },\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n mergeError: null,\n isRefreshing: false,\n };\n },\n computed: {\n actions() {\n return [\n {\n text: s__('mrWidget|Refresh'),\n loading: this.isRefreshing,\n onClick: () => this.refreshWidget(),\n },\n ];\n },\n },\n methods: {\n refreshWidget() {\n this.isRefreshing = true;\n eventHub.$emit('MRWidgetUpdateRequested', () => {\n this.isRefreshing = false;\n });\n },\n },\n};\n</script>\n<template>\n <state-container status=\"failed\" :actions=\"actions\" is-collapsible>\n <span class=\"gl-font-bold\">\n <template v-if=\"mergeError\">{{ mergeError }}</template>\n {{ s__('mrWidget|This merge request failed to be merged automatically') }}\n </span>\n </state-container>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_auto_merge_failed.vue?vue&type=template&id=66f298d2\"\nimport script from \"./mr_widget_auto_merge_failed.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_auto_merge_failed.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('state-container',{attrs:{\"status\":\"failed\",\"actions\":_vm.actions,\"is-collapsible\":\"\"}},[_c('span',{staticClass:\"gl-font-bold\"},[(_vm.mergeError)?[_vm._v(_vm._s(_vm.mergeError))]:_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.s__('mrWidget|This merge request failed to be merged automatically'))+\"\\n \")],2)])\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!./mr_widget_checking.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!./mr_widget_checking.vue?vue&type=script&lang=js\"","<script>\nimport StateContainer from '../state_container.vue';\n\nexport default {\n name: 'MRWidgetChecking',\n components: {\n StateContainer,\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n<template>\n <state-container status=\"loading\" is-collapsible>\n {{ s__('mrWidget|Checking if merge request can be merged…') }}\n </state-container>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_checking.vue?vue&type=template&id=7fccb350\"\nimport script from \"./mr_widget_checking.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_checking.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('state-container',{attrs:{\"status\":\"loading\",\"is-collapsible\":\"\"}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('mrWidget|Checking if merge request can be merged…'))+\"\\n\")])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { __, s__ } from '~/locale';\n\nexport const MR_WIDGET_PREPARING_ASYNCHRONOUSLY = s__(\n 'mrWidget|Your merge request is almost ready!',\n);\n\nexport const MR_WIDGET_MISSING_BRANCH_WHICH = s__(\n 'mrWidget|The %{type} branch %{codeStart}%{name}%{codeEnd} does not exist.',\n);\nexport const MR_WIDGET_MISSING_BRANCH_RESTORE = s__(\n 'mrWidget|Please restore it or use a different %{type} branch.',\n);\nexport const MR_WIDGET_MISSING_BRANCH_MANUALCLI = s__(\n 'mrWidget|If the %{type} branch exists in your local repository, you can merge this merge request manually using the command line.',\n);\n\nexport const SQUASH_BEFORE_MERGE = {\n tooltipTitle: __('Required in this project.'),\n checkboxLabel: __('Squash commits'),\n helpLabel: __('What is squashing?'),\n};\n\nexport const I18N_SHA_MISMATCH = {\n warningMessage: s__('mrWidget|%{boldStart}Merge blocked:%{boldEnd} new changes were just added.'),\n actionButtonLabel: __('Review changes'),\n};\n\nexport const MERGE_TRAIN_BUTTON_TEXT = {\n failed: __('Start merge train...'),\n passed: __('Start merge train'),\n};\n\nexport const MR_WIDGET_CLOSED_REOPEN = __('Reopen');\nexport const MR_WIDGET_CLOSED_REOPENING = __('Reopening...');\nexport const MR_WIDGET_CLOSED_RELOADING = __('Refreshing...');\nexport const MR_WIDGET_CLOSED_REOPEN_FAILURE = __(\n 'An error occurred. Unable to reopen this merge request.',\n);\n","<script>\nimport { GlLoadingIcon } from '@gitlab/ui';\n\nimport { MR_WIDGET_PREPARING_ASYNCHRONOUSLY } from '../../i18n';\n\nexport default {\n name: 'MRWidgetPreparing',\n i18n: {\n preparing: MR_WIDGET_PREPARING_ASYNCHRONOUSLY,\n },\n components: {\n GlLoadingIcon,\n },\n};\n</script>\n<template>\n <div class=\"gl-flex gl-w-full gl-items-center gl-px-5 gl-py-4\">\n <gl-loading-icon size=\"sm\" class=\"gl-pr-3\" />\n <div class=\"gl-flex gl-items-center\">\n {{ $options.i18n.preparing }}\n </div>\n </div>\n</template>\n","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!./mr_widget_preparing.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!./mr_widget_preparing.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./mr_widget_preparing.vue?vue&type=template&id=54d4a8e3\"\nimport script from \"./mr_widget_preparing.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_preparing.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('div',{staticClass:\"gl-flex gl-w-full gl-items-center gl-px-5 gl-py-4\"},[_c('gl-loading-icon',{staticClass:\"gl-pr-3\",attrs:{\"size\":\"sm\"}}),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-items-center\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.preparing)+\"\\n \")])],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!./mr_widget_author_time.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!./mr_widget_author_time.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\nimport MrWidgetAuthor from './mr_widget_author.vue';\n\nexport default {\n name: 'MrWidgetAuthorTime',\n components: {\n MrWidgetAuthor,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n actionText: {\n type: String,\n required: true,\n },\n author: {\n type: Object,\n required: true,\n },\n dateTitle: {\n type: String,\n required: true,\n },\n dateReadable: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n<template>\n <h4 class=\"js-mr-widget-author gl-grow\">\n {{ actionText }}\n <mr-widget-author :author=\"author\" />\n <span class=\"sr-only\">{{ dateReadable }} ({{ dateTitle }})</span>\n <time v-gl-tooltip.hover aria-hidden :title=\"dateTitle\"> {{ dateReadable }} </time>\n </h4>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_author_time.vue?vue&type=template&id=6fc77724\"\nimport script from \"./mr_widget_author_time.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_author_time.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('h4',{staticClass:\"js-mr-widget-author gl-grow\"},[_vm._v(\"\\n \"+_vm._s(_vm.actionText)+\"\\n \"),_c('mr-widget-author',{attrs:{\"author\":_vm.author}}),_vm._v(\" \"),_c('span',{staticClass:\"sr-only\"},[_vm._v(_vm._s(_vm.dateReadable)+\" (\"+_vm._s(_vm.dateTitle)+\")\")]),_vm._v(\" \"),_c('time',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}}],attrs:{\"aria-hidden\":\"\",\"title\":_vm.dateTitle}},[_vm._v(\" \"+_vm._s(_vm.dateReadable)+\" \")])],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!./mr_widget_closed.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!./mr_widget_closed.vue?vue&type=script&lang=js\"","<script>\nimport api from '~/api';\nimport showGlobalToast from '~/vue_shared/plugins/global_toast';\n\nimport MrWidgetAuthorTime from '../mr_widget_author_time.vue';\nimport StateContainer from '../state_container.vue';\n\nimport {\n MR_WIDGET_CLOSED_REOPEN,\n MR_WIDGET_CLOSED_REOPENING,\n MR_WIDGET_CLOSED_RELOADING,\n MR_WIDGET_CLOSED_REOPEN_FAILURE,\n} from '../../i18n';\n\nexport default {\n name: 'MRWidgetClosed',\n components: {\n MrWidgetAuthorTime,\n StateContainer,\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n isPending: false,\n isReloading: false,\n };\n },\n computed: {\n reopenText() {\n let text = MR_WIDGET_CLOSED_REOPEN;\n\n if (this.isPending) {\n text = MR_WIDGET_CLOSED_REOPENING;\n } else if (this.isReloading) {\n text = MR_WIDGET_CLOSED_RELOADING;\n }\n\n return text;\n },\n actions() {\n if (!window.gon?.current_user_id) {\n return [];\n }\n\n return [\n {\n text: this.reopenText,\n loading: this.isPending || this.isReloading,\n onClick: this.reopen,\n testId: 'extension-actions-reopen-button',\n },\n ];\n },\n },\n methods: {\n reopen() {\n this.isPending = true;\n\n api\n .updateMergeRequest(this.mr.targetProjectId, this.mr.iid, { state_event: 'reopen' })\n .then(() => {\n this.isReloading = true;\n\n window.location.reload();\n })\n .catch(() => {\n showGlobalToast(MR_WIDGET_CLOSED_REOPEN_FAILURE);\n })\n .finally(() => {\n this.isPending = false;\n });\n },\n },\n};\n</script>\n<template>\n <state-container status=\"closed\" :actions=\"actions\" is-collapsible>\n <mr-widget-author-time\n :action-text=\"s__('mrWidget|Closed by')\"\n :author=\"mr.metrics.closedBy\"\n :date-title=\"mr.metrics.closedAt\"\n :date-readable=\"mr.metrics.readableClosedAt\"\n />\n </state-container>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_closed.vue?vue&type=template&id=14f21dc4\"\nimport script from \"./mr_widget_closed.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_closed.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('state-container',{attrs:{\"status\":\"closed\",\"actions\":_vm.actions,\"is-collapsible\":\"\"}},[_c('mr-widget-author-time',{attrs:{\"action-text\":_vm.s__('mrWidget|Closed by'),\"author\":_vm.mr.metrics.closedBy,\"date-title\":_vm.mr.metrics.closedAt,\"date-readable\":_vm.mr.metrics.readableClosedAt}})],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!./mr_widget_failed_to_merge.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!./mr_widget_failed_to_merge.vue?vue&type=script&lang=js\"","<script>\nimport { stripHtml } from '~/lib/utils/text_utility';\nimport { sprintf, s__, n__ } from '~/locale';\nimport eventHub from '../../event_hub';\nimport StateContainer from '../state_container.vue';\n\nexport default {\n name: 'MRWidgetFailedToMerge',\n\n components: {\n StateContainer,\n },\n\n props: {\n mr: {\n type: Object,\n required: true,\n },\n },\n\n data() {\n return {\n timer: 10,\n isRefreshing: false,\n intervalId: null,\n };\n },\n\n computed: {\n mergeError() {\n const mergeError = this.prepareMergeError(this.mr.mergeError);\n\n return sprintf(\n s__('mrWidget|%{mergeError}.'),\n {\n mergeError,\n },\n false,\n );\n },\n timerText() {\n return n__(\n 'Refreshing in a second to show the updated status...',\n 'Refreshing in %d seconds to show the updated status...',\n this.timer,\n );\n },\n actions() {\n return [\n {\n text: s__('mrWidget|Refresh now'),\n onClick: () => this.refresh(),\n },\n ];\n },\n },\n\n mounted() {\n this.intervalId = setInterval(this.updateTimer, 1000);\n },\n\n created() {\n eventHub.$emit('DisablePolling');\n },\n\n beforeDestroy() {\n if (this.intervalId) {\n clearInterval(this.intervalId);\n }\n },\n\n methods: {\n refresh() {\n this.isRefreshing = true;\n eventHub.$emit('MRWidgetUpdateRequested');\n eventHub.$emit('EnablePolling');\n },\n updateTimer() {\n this.timer -= 1;\n\n if (this.timer === 0) {\n this.refresh();\n }\n },\n prepareMergeError(mergeError) {\n return mergeError\n ? stripHtml(mergeError, ' ')\n .replace(/(\\.$|\\s+)/g, ' ')\n .trim()\n : '';\n },\n },\n};\n</script>\n<template>\n <state-container\n v-if=\"isRefreshing\"\n status=\"loading\"\n is-collapsible\n :collapsed=\"mr.mergeDetailsCollapsed\"\n @toggle=\"() => mr.toggleMergeDetails()\"\n >\n <span class=\"gl-font-bold\">\n {{ s__('mrWidget|Refreshing now') }}\n </span>\n </state-container>\n <state-container\n v-else\n status=\"failed\"\n :actions=\"actions\"\n is-collapsible\n :collapsed=\"mr.mergeDetailsCollapsed\"\n @toggle=\"() => mr.toggleMergeDetails()\"\n >\n <span v-if=\"mr.mergeError\" class=\"has-error-message gl-font-bold\" data-testid=\"merge-error\">\n {{ mergeError }}\n </span>\n <span v-else class=\"gl-font-bold\"> {{ s__('mrWidget|Merge failed.') }} </span>\n <span :class=\"{ 'has-custom-error': mr.mergeError }\"> {{ timerText }} </span>\n </state-container>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_failed_to_merge.vue?vue&type=template&id=43a07110\"\nimport script from \"./mr_widget_failed_to_merge.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_failed_to_merge.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 (_vm.isRefreshing)?_c('state-container',{attrs:{\"status\":\"loading\",\"is-collapsible\":\"\",\"collapsed\":_vm.mr.mergeDetailsCollapsed},on:{\"toggle\":() => _vm.mr.toggleMergeDetails()}},[_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(\"\\n \"+_vm._s(_vm.s__('mrWidget|Refreshing now'))+\"\\n \")])]):_c('state-container',{attrs:{\"status\":\"failed\",\"actions\":_vm.actions,\"is-collapsible\":\"\",\"collapsed\":_vm.mr.mergeDetailsCollapsed},on:{\"toggle\":() => _vm.mr.toggleMergeDetails()}},[(_vm.mr.mergeError)?_c('span',{staticClass:\"has-error-message gl-font-bold\",attrs:{\"data-testid\":\"merge-error\"}},[_vm._v(\"\\n \"+_vm._s(_vm.mergeError)+\"\\n \")]):_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(\" \"+_vm._s(_vm.s__('mrWidget|Merge failed.'))+\" \")]),_vm._v(\" \"),_c('span',{class:{ 'has-custom-error': _vm.mr.mergeError }},[_vm._v(\" \"+_vm._s(_vm.timerText)+\" \")])])\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!./mr_widget_merged.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!./mr_widget_merged.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\nimport api from '~/api';\nimport { createAlert } from '~/alert';\nimport { s__, __ } from '~/locale';\nimport { OPEN_REVERT_MODAL, OPEN_CHERRY_PICK_MODAL } from '~/projects/commit/constants';\nimport modalEventHub from '~/projects/commit/event_hub';\nimport eventHub from '../../event_hub';\nimport MrWidgetAuthorTime from '../mr_widget_author_time.vue';\nimport StateContainer from '../state_container.vue';\n\nexport default {\n name: 'MRWidgetMerged',\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n MrWidgetAuthorTime,\n StateContainer,\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n service: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n isMakingRequest: false,\n };\n },\n computed: {\n shouldShowRemoveSourceBranch() {\n const { sourceBranchRemoved, isRemovingSourceBranch, canRemoveSourceBranch } = this.mr;\n\n return (\n !sourceBranchRemoved &&\n canRemoveSourceBranch &&\n !this.isMakingRequest &&\n !isRemovingSourceBranch\n );\n },\n shouldShowSourceBranchRemoving() {\n const { sourceBranchRemoved, isRemovingSourceBranch } = this.mr;\n return !sourceBranchRemoved && (isRemovingSourceBranch || this.isMakingRequest);\n },\n revertTitle() {\n return s__('mrWidget|Revert this merge request in a new merge request');\n },\n cherryPickTitle() {\n return s__('mrWidget|Cherry-pick this merge request in a new merge request');\n },\n revertLabel() {\n return s__('mrWidget|Revert');\n },\n cherryPickLabel() {\n return s__('mrWidget|Cherry-pick');\n },\n actions() {\n const actions = [];\n\n if (this.mr.canRevertInCurrentMR) {\n actions.push({\n text: this.revertLabel,\n tooltipText: this.revertTitle,\n testId: 'revert-button',\n onClick: () => this.openRevertModal(),\n });\n } else if (this.mr.revertInForkPath) {\n actions.push({\n text: this.revertLabel,\n tooltipText: this.revertTitle,\n href: this.mr.revertInForkPath,\n testId: 'revert-button',\n dataMethod: 'post',\n });\n }\n\n if (this.mr.canCherryPickInCurrentMR) {\n actions.push({\n text: this.cherryPickLabel,\n tooltipText: this.cherryPickTitle,\n testId: 'cherry-pick-button',\n onClick: () => this.openCherryPickModal(),\n });\n } else if (this.mr.cherryPickInForkPath) {\n actions.push({\n text: this.cherryPickLabel,\n tooltipText: this.cherryPickTitle,\n href: this.mr.cherryPickInForkPath,\n testId: 'cherry-pick-button',\n dataMethod: 'post',\n });\n }\n\n if (this.shouldShowRemoveSourceBranch) {\n actions.push({\n text: s__('mrWidget|Delete source branch'),\n class: 'js-remove-branch-button',\n onClick: () => this.removeSourceBranch(),\n });\n }\n\n return actions;\n },\n },\n mounted() {\n document.dispatchEvent(new CustomEvent('merged:UpdateActions'));\n },\n methods: {\n removeSourceBranch() {\n this.isMakingRequest = true;\n\n api.trackRedisHllUserEvent('i_code_review_post_merge_delete_branch');\n\n this.service\n .removeSourceBranch()\n .then((res) => res.data)\n .then((data) => {\n // False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/26\n // eslint-disable-next-line @gitlab/require-i18n-strings\n if (data.message === 'Branch was deleted') {\n eventHub.$emit('MRWidgetUpdateRequested', () => {\n this.isMakingRequest = false;\n });\n }\n })\n .catch(() => {\n this.isMakingRequest = false;\n createAlert({\n message: __('Something went wrong. Please try again.'),\n });\n });\n },\n openRevertModal() {\n api.trackRedisHllUserEvent('i_code_review_post_merge_click_revert');\n\n modalEventHub.$emit(OPEN_REVERT_MODAL);\n },\n openCherryPickModal() {\n api.trackRedisHllUserEvent('i_code_review_post_merge_click_cherry_pick');\n\n modalEventHub.$emit(OPEN_CHERRY_PICK_MODAL);\n },\n },\n};\n</script>\n<template>\n <state-container :actions=\"actions\" status=\"merged\" is-collapsible>\n <mr-widget-author-time\n :action-text=\"s__('mrWidget|Merged by')\"\n :author=\"mr.metrics.mergedBy\"\n :date-title=\"mr.metrics.mergedAt\"\n :date-readable=\"mr.metrics.readableMergedAt\"\n />\n </state-container>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_merged.vue?vue&type=template&id=6f518d7a\"\nimport script from \"./mr_widget_merged.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_merged.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('state-container',{attrs:{\"actions\":_vm.actions,\"status\":\"merged\",\"is-collapsible\":\"\"}},[_c('mr-widget-author-time',{attrs:{\"action-text\":_vm.s__('mrWidget|Merged by'),\"author\":_vm.mr.metrics.mergedBy,\"date-title\":_vm.mr.metrics.mergedAt,\"date-readable\":_vm.mr.metrics.readableMergedAt}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { STATUS_MERGED } from '~/issues/constants';\nimport simplePoll from '~/lib/utils/simple_poll';\nimport MergeRequest from '~/merge_request';\nimport BoldText from '~/vue_merge_request_widget/components/bold_text.vue';\nimport { fetchUserCounts } from '~/super_sidebar/user_counts_fetch';\nimport eventHub from '../../event_hub';\nimport { MERGE_ACTIVE_STATUS_PHRASES, STATE_MACHINE } from '../../constants';\nimport StatusIcon from '../mr_widget_status_icon.vue';\n\nconst { transitions } = STATE_MACHINE;\nconst { MERGE_FAILURE } = transitions;\n\nexport default {\n name: 'MRWidgetMerging',\n components: {\n BoldText,\n StatusIcon,\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n service: {\n type: Object,\n required: true,\n },\n },\n data() {\n const statusCount = MERGE_ACTIVE_STATUS_PHRASES.length;\n\n return {\n mergeStatus: MERGE_ACTIVE_STATUS_PHRASES[Math.floor(Math.random() * statusCount)],\n };\n },\n mounted() {\n this.initiateMergePolling();\n },\n methods: {\n initiateMergePolling() {\n simplePoll(\n (continuePolling, stopPolling) => {\n this.handleMergePolling(continuePolling, stopPolling);\n },\n { timeout: 0 },\n );\n },\n handleMergePolling(continuePolling, stopPolling) {\n this.service\n .poll()\n .then((res) => res.data)\n .then((data) => {\n if (data.state === STATUS_MERGED) {\n // If state is merged we should update the widget and stop the polling\n eventHub.$emit('MRWidgetUpdateRequested');\n eventHub.$emit('FetchActionsContent');\n MergeRequest.decreaseCounter();\n stopPolling();\n\n fetchUserCounts();\n\n // If user checked remove source branch and we didn't remove the branch yet\n // we should start another polling for source branch remove process\n if (this.removeSourceBranch && data.source_branch_exists) {\n this.initiateRemoveSourceBranchPolling();\n }\n } else if (data.merge_error) {\n eventHub.$emit('FailedToMerge', data.merge_error);\n this.mr.transitionStateMachine({ transition: MERGE_FAILURE });\n stopPolling();\n } else {\n // MR is not merged yet, continue polling until the state becomes 'merged'\n continuePolling();\n }\n })\n .catch(() => {\n this.mr.transitionStateMachine({ transition: MERGE_FAILURE });\n stopPolling();\n });\n },\n },\n};\n</script>\n<template>\n <div class=\"mr-widget-body mr-state-locked media\">\n <status-icon status=\"loading\" />\n <div class=\"media-body\" data-testid=\"merging-state\">\n <bold-text :message=\"mergeStatus.message\" />\n <gl-emoji :data-name=\"mergeStatus.emoji\" />\n </div>\n </div>\n</template>\n","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!./mr_widget_merging.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!./mr_widget_merging.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./mr_widget_merging.vue?vue&type=template&id=5f0012c0\"\nimport script from \"./mr_widget_merging.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_merging.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('div',{staticClass:\"mr-widget-body mr-state-locked media\"},[_c('status-icon',{attrs:{\"status\":\"loading\"}}),_vm._v(\" \"),_c('div',{staticClass:\"media-body\",attrs:{\"data-testid\":\"merging-state\"}},[_c('bold-text',{attrs:{\"message\":_vm.mergeStatus.message}}),_vm._v(\" \"),_c('gl-emoji',{attrs:{\"data-name\":_vm.mergeStatus.emoji}})],1)],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!./mr_widget_missing_branch.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!./mr_widget_missing_branch.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlSprintf } from '@gitlab/ui';\nimport { sprintf } from '~/locale';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport mergeRequestQueryVariablesMixin from '../../mixins/merge_request_query_variables';\nimport missingBranchQuery from '../../queries/states/missing_branch.query.graphql';\nimport {\n MR_WIDGET_MISSING_BRANCH_WHICH,\n MR_WIDGET_MISSING_BRANCH_RESTORE,\n MR_WIDGET_MISSING_BRANCH_MANUALCLI,\n} from '../../i18n';\nimport StatusIcon from '../mr_widget_status_icon.vue';\n\nexport default {\n name: 'MRWidgetMissingBranch',\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlSprintf,\n StatusIcon,\n HelpIcon,\n },\n mixins: [mergeRequestQueryVariablesMixin],\n apollo: {\n state: {\n query: missingBranchQuery,\n variables() {\n return this.mergeRequestQueryVariables;\n },\n update: (data) => data.project.mergeRequest,\n },\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n },\n data() {\n return { state: {} };\n },\n computed: {\n type() {\n return this.mr.sourceBranchRemoved ? 'source' : 'target';\n },\n name() {\n return this.type === 'source' ? this.mr.sourceBranch : this.mr.targetBranch;\n },\n warning() {\n return sprintf(MR_WIDGET_MISSING_BRANCH_WHICH, { type: this.type, name: this.name });\n },\n restore() {\n return sprintf(MR_WIDGET_MISSING_BRANCH_RESTORE, { type: this.type });\n },\n message() {\n return sprintf(MR_WIDGET_MISSING_BRANCH_MANUALCLI, { type: this.type });\n },\n },\n};\n</script>\n<template>\n <div class=\"mr-widget-body media\">\n <status-icon :show-disabled-button=\"true\" status=\"failed\" />\n\n <div class=\"media-body\">\n <span class=\"js-branch-text\" data-testid=\"widget-content\">\n <span class=\"gl-font-bold\">\n <gl-sprintf :message=\"warning\">\n <template #code=\"{ content }\">\n <code>{{ content }}</code>\n </template>\n </gl-sprintf>\n </span>\n {{ restore }}\n <help-icon v-gl-tooltip :title=\"message\" :aria-label=\"message\" class=\"gl-cursor-pointer\" />\n </span>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_missing_branch.vue?vue&type=template&id=2a044e14\"\nimport script from \"./mr_widget_missing_branch.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_missing_branch.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('div',{staticClass:\"mr-widget-body media\"},[_c('status-icon',{attrs:{\"show-disabled-button\":true,\"status\":\"failed\"}}),_vm._v(\" \"),_c('div',{staticClass:\"media-body\"},[_c('span',{staticClass:\"js-branch-text\",attrs:{\"data-testid\":\"widget-content\"}},[_c('span',{staticClass:\"gl-font-bold\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.warning},scopedSlots:_vm._u([{key:\"code\",fn:function({ content }){return [_c('code',[_vm._v(_vm._s(content))])]}}])})],1),_vm._v(\"\\n \"+_vm._s(_vm.restore)+\"\\n \"),_c('help-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-cursor-pointer\",attrs:{\"title\":_vm.message,\"aria-label\":_vm.message}})],1)])],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!./nothing_to_merge.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!./nothing_to_merge.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf, GlLink } from '@gitlab/ui';\nimport { STATUS_EMPTY } from '~/issues/constants';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport StatusIcon from '../mr_widget_status_icon.vue';\n\nexport default {\n name: 'MRWidgetNothingToMerge',\n components: {\n GlSprintf,\n GlLink,\n StatusIcon,\n },\n computed: {\n statusEmpty() {\n return STATUS_EMPTY;\n },\n },\n ciHelpPage: helpPagePath('ci/quick_start/index.html'),\n};\n</script>\n\n<template>\n <div class=\"mr-widget-body media\">\n <status-icon :status=\"statusEmpty\" />\n <div>\n <p class=\"media-body gl-mb-1 gl-mt-1 gl-font-bold !gl-text-default\">\n {{ s__('mrWidgetNothingToMerge|Merge request contains no changes') }}\n </p>\n <p class=\"!gl-m-0 gl-text-subtle\" data-testid=\"nothing-to-merge-body\">\n <gl-sprintf\n :message=\"\n s__(\n 'mrWidgetNothingToMerge|Use merge requests to propose changes to your project and discuss them with your team. To make changes, use the %{boldStart}Code%{boldEnd} dropdown list above, then test them with %{linkStart}CI/CD%{linkEnd} before merging.',\n )\n \"\n >\n <template #bold=\"{ content }\">\n <b>{{ content }}</b>\n </template>\n <template #link=\"{ content }\">\n <gl-link :href=\"$options.ciHelpPage\" target=\"_blank\">{{ content }}</gl-link>\n </template>\n </gl-sprintf>\n </p>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./nothing_to_merge.vue?vue&type=template&id=8efac998\"\nimport script from \"./nothing_to_merge.vue?vue&type=script&lang=js\"\nexport * from \"./nothing_to_merge.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('div',{staticClass:\"mr-widget-body media\"},[_c('status-icon',{attrs:{\"status\":_vm.statusEmpty}}),_vm._v(\" \"),_c('div',[_c('p',{staticClass:\"media-body gl-mb-1 gl-mt-1 gl-font-bold !gl-text-default\"},[_vm._v(\"\\n \"+_vm._s(_vm.s__('mrWidgetNothingToMerge|Merge request contains no changes'))+\"\\n \")]),_vm._v(\" \"),_c('p',{staticClass:\"!gl-m-0 gl-text-subtle\",attrs:{\"data-testid\":\"nothing-to-merge-body\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.s__(\n 'mrWidgetNothingToMerge|Use merge requests to propose changes to your project and discuss them with your team. To make changes, use the %{boldStart}Code%{boldEnd} dropdown list above, then test them with %{linkStart}CI/CD%{linkEnd} before merging.',\n )},scopedSlots:_vm._u([{key:\"bold\",fn:function({ content }){return [_c('b',[_vm._v(_vm._s(content))])]}},{key:\"link\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.$options.ciHelpPage,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}}])})],1)])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { helpPagePath } from '~/helpers/help_page_helper';\nimport { __ } from '~/locale';\n\nexport const MERGE_DISABLED_TEXT = __('You can only merge once the items above are resolved.');\nexport const MERGE_DISABLED_SKIPPED_PIPELINE_TEXT = __(\n \"Merge blocked: pipeline must succeed. It's waiting for a manual job to continue.\",\n);\nexport const PIPELINE_MUST_SUCCEED_CONFLICT_TEXT = __(\n 'A CI/CD pipeline must run and be successful before merge.',\n);\nexport const PIPELINE_SKIPPED_STATUS = 'SKIPPED';\n\nconst MERGE_WHEN_CHECKS_PASS_HELP = helpPagePath('user/project/merge_requests/auto_merge');\n\nexport default {\n computed: {\n isMergeButtonDisabled() {\n const { commitMessage } = this;\n return Boolean(\n !commitMessage.length ||\n !this.shouldShowMergeControls ||\n this.isMakingRequest ||\n this.mr.preventMerge,\n );\n },\n pipelineMustSucceedConflictText() {\n return PIPELINE_MUST_SUCCEED_CONFLICT_TEXT;\n },\n autoMergeText() {\n return __('Set to auto-merge');\n },\n autoMergeHelperText() {\n if (this.isPreferredAutoMergeStrategyMWPC) {\n return __('Merge when all merge checks pass');\n }\n\n return __('Merge when pipeline succeeds');\n },\n autoMergePopoverSettings() {\n if (this.isPreferredAutoMergeStrategyMWPC) {\n return {\n helpLink: MERGE_WHEN_CHECKS_PASS_HELP,\n bodyText: __(\n 'When all the merge checks for this merge request pass, it will %{linkStart}automatically merge%{linkEnd}.',\n ),\n title: __('Merge when checks pass'),\n };\n }\n\n return {\n helpLink: helpPagePath('user/project/merge_requests/auto_merge'),\n bodyText: __(\n 'When the pipeline for this merge request succeeds, it will %{linkStart}automatically merge%{linkEnd}.',\n ),\n title: __('Merge when pipeline succeeds'),\n };\n },\n shouldDisplayMergeImmediatelyDropdownOptions() {\n return false;\n },\n shouldShowMergeImmediatelyDropdown() {\n return this.isAutoMergeAvailable && this.isMergeAllowed;\n },\n isMergeImmediatelyDangerous() {\n return false;\n },\n shouldRenderMergeTrainHelperIcon() {\n return false;\n },\n pipelineId() {\n return this.pipeline.id;\n },\n showFailedPipelineModalMergeTrain() {\n return false;\n },\n },\n methods: {\n onStartMergeTrainConfirmation() {\n return false;\n },\n },\n};\n","import { isNumber, isString } from 'lodash';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { __, s__ } from '~/locale';\nimport {\n MTWPS_MERGE_STRATEGY,\n MT_MERGE_STRATEGY,\n PIPELINE_FAILED_STATE,\n MTWCP_MERGE_STRATEGY,\n} from '~/vue_merge_request_widget/constants';\nimport CEReadyToMergeMixin from '~/vue_merge_request_widget/mixins/ready_to_merge';\n\nexport const MERGE_DISABLED_TEXT_UNAPPROVED = s__(\n 'mrWidget|Merge blocked: all required approvals must be given.',\n);\nexport const PIPELINE_MUST_SUCCEED_CONFLICT_TEXT = __(\n 'A CI/CD pipeline must run and be successful before merge.',\n);\nexport const MERGE_DISABLED_DEPENDENCIES_TEXT = __(\n 'Merge blocked: Merge all open dependent merge requests, and remove all closed dependencies.',\n);\nconst MERGE_TRAINS_HELP = helpPagePath('ci/pipelines/merge_trains.html');\n\nexport default {\n computed: {\n isMergeButtonDisabled() {\n const { commitMessage } = this;\n return Boolean(\n !commitMessage.length ||\n !this.shouldShowMergeControls ||\n this.isMakingRequest ||\n this.mr.preventMerge,\n );\n },\n pipelineMustSucceedConflictText() {\n return PIPELINE_MUST_SUCCEED_CONFLICT_TEXT;\n },\n autoMergeText() {\n if (this.preferredAutoMergeStrategy === MT_MERGE_STRATEGY) {\n return __('Merge');\n }\n\n return __('Set to auto-merge');\n },\n autoMergeHelperText() {\n if (this.preferredAutoMergeStrategy === MTWCP_MERGE_STRATEGY) {\n return __('Add to merge train when all merge checks pass');\n }\n if (this.preferredAutoMergeStrategy === MTWPS_MERGE_STRATEGY) {\n return __('Add to merge train when pipeline succeeds');\n }\n if (this.preferredAutoMergeStrategy === MT_MERGE_STRATEGY) {\n return __('Add to merge train');\n }\n\n return CEReadyToMergeMixin.computed.autoMergeHelperText.call(this);\n },\n autoMergePopoverSettings() {\n if (\n this.preferredAutoMergeStrategy === MT_MERGE_STRATEGY ||\n this.preferredAutoMergeStrategy === MTWPS_MERGE_STRATEGY ||\n this.preferredAutoMergeStrategy === MTWCP_MERGE_STRATEGY\n ) {\n return {\n helpLink: MERGE_TRAINS_HELP,\n bodyText: __(\n 'A %{linkStart}merge train%{linkEnd} is a queued list of merge requests, each waiting to be merged into the target branch.',\n ),\n title: __('Merge trains'),\n };\n }\n\n return CEReadyToMergeMixin.computed.autoMergePopoverSettings.call(this);\n },\n pipelineId() {\n return getIdFromGraphQLId(this.pipeline.id);\n },\n shouldRenderMergeTrainHelperIcon() {\n return (\n this.pipeline &&\n isNumber(getIdFromGraphQLId(this.pipeline.id)) &&\n isString(this.pipeline.path) &&\n this.preferredAutoMergeStrategy === MTWPS_MERGE_STRATEGY &&\n !this.state.autoMergeEnabled\n );\n },\n shouldShowMergeImmediatelyDropdown() {\n if (!this.isAutoMergeAvailable || !this.isMergeAllowed) {\n return false;\n }\n\n if (\n this.preferredAutoMergeStrategy === MT_MERGE_STRATEGY ||\n this.preferredAutoMergeStrategy === MTWPS_MERGE_STRATEGY ||\n this.preferredAutoMergeStrategy === MTWCP_MERGE_STRATEGY\n ) {\n return !this.mr.ffOnlyEnabled || this.mr.ffMergePossible;\n }\n\n return true;\n },\n shouldDisplayMergeImmediatelyDropdownOptions() {\n return [MT_MERGE_STRATEGY, MTWPS_MERGE_STRATEGY, MTWCP_MERGE_STRATEGY].includes(\n this.preferredAutoMergeStrategy,\n );\n },\n isMergeImmediatelyDangerous() {\n return [MT_MERGE_STRATEGY, MTWPS_MERGE_STRATEGY, MTWCP_MERGE_STRATEGY].includes(\n this.preferredAutoMergeStrategy,\n );\n },\n showFailedPipelineModalMergeTrain() {\n const pipelineFailed = this.status === PIPELINE_FAILED_STATE || this.isPipelineFailed;\n const mergeStrateyMergeTrain = this.preferredAutoMergeStrategy === MT_MERGE_STRATEGY;\n\n return pipelineFailed && mergeStrateyMergeTrain;\n },\n },\n methods: {\n onStartMergeTrainConfirmation() {\n this.handleMergeButtonClick(this.isAutoMergeAvailable, false, true);\n },\n },\n};\n","<script>\nimport { GlSprintf, GlLink } from '@gitlab/ui';\nimport { escape } from 'lodash';\nimport { STATUS_CLOSED, STATUS_MERGED } from '~/issues/constants';\nimport { n__, s__, sprintf } from '~/locale';\n\nconst mergeCommitCount = s__('mrWidgetCommitsAdded|%{strongStart}1%{strongEnd} merge commit');\n\nexport default {\n components: {\n GlSprintf,\n GlLink,\n },\n props: {\n state: {\n type: String,\n required: false,\n default: '',\n },\n isSquashEnabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n isFastForwardEnabled: {\n type: Boolean,\n required: true,\n },\n commitsCount: {\n type: Number,\n required: false,\n default: 0,\n },\n targetBranch: {\n type: String,\n required: true,\n },\n mergeCommitSha: {\n type: String,\n required: false,\n default: '',\n },\n mergeCommitPath: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n isMerged() {\n return this.state === STATUS_MERGED;\n },\n targetBranchEscaped() {\n return escape(this.targetBranch);\n },\n commitsCountMessage() {\n const count = this.isSquashEnabled ? 1 : this.commitsCount;\n\n return sprintf(\n n__(\n '%{strongStart}%{count}%{strongEnd} commit',\n '%{strongStart}%{count}%{strongEnd} commits',\n count,\n ),\n { count },\n );\n },\n message() {\n if (this.state === STATUS_CLOSED) {\n return s__('mrWidgetCommitsAdded|The changes were not merged into %{targetBranch}.');\n }\n if (this.isMerged) {\n return s__(\n 'mrWidgetCommitsAdded|Changes merged into %{targetBranch} with %{mergeCommitSha}%{squashedCommits}.',\n );\n }\n\n return this.isFastForwardEnabled\n ? s__('mrWidgetCommitsAdded|%{commitCount} will be added to %{targetBranch}.')\n : s__(\n 'mrWidgetCommitsAdded|%{commitCount} and %{mergeCommitCount} will be added to %{targetBranch}%{squashedCommits}.',\n );\n },\n squashCommitMessage() {\n if (this.isMerged) {\n return s__('mergedCommitsAdded| (commits were squashed)');\n }\n\n return sprintf(\n n__(\n ' (squashes %{strongStart}%{count}%{strongEnd} commit)',\n ' (squashes %{strongStart}%{count}%{strongEnd} commits)',\n this.commitsCount,\n ),\n { count: this.commitsCount },\n );\n },\n },\n mergeCommitCount,\n};\n</script>\n\n<template>\n <span>\n <gl-sprintf :message=\"message\">\n <template #commitCount>\n <gl-sprintf :message=\"commitsCountMessage\">\n <template #strong=\"{ content }\">\n <span class=\"gl-font-bold\">{{ content }}</span>\n </template>\n </gl-sprintf>\n </template>\n <template #mergeCommitCount>\n <gl-sprintf :message=\"$options.mergeCommitCount\">\n <template #strong=\"{ content }\">\n <span class=\"gl-font-bold\">{{ content }}</span>\n </template>\n </gl-sprintf>\n </template>\n <template #targetBranch>\n <span class=\"label-branch gl-font-bold\">{{ targetBranchEscaped }}</span>\n </template>\n <template #squashedCommits>\n <template v-if=\"isSquashEnabled\">\n <gl-sprintf :message=\"squashCommitMessage\">\n <template #strong=\"{ content }\">\n <span class=\"gl-font-bold\">{{ content }}</span>\n </template>\n </gl-sprintf>\n </template>\n </template>\n <template #mergeCommitSha>\n <gl-link :href=\"mergeCommitPath\" class=\"label-branch\" data-testid=\"merge-commit-sha\">{{\n mergeCommitSha\n }}</gl-link>\n </template>\n </gl-sprintf>\n </span>\n</template>\n","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!./added_commit_message.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!./added_commit_message.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./added_commit_message.vue?vue&type=template&id=13c1a54c\"\nimport script from \"./added_commit_message.vue?vue&type=script&lang=js\"\nexport * from \"./added_commit_message.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('span',[_c('gl-sprintf',{attrs:{\"message\":_vm.message},scopedSlots:_vm._u([{key:\"commitCount\",fn:function(){return [_c('gl-sprintf',{attrs:{\"message\":_vm.commitsCountMessage},scopedSlots:_vm._u([{key:\"strong\",fn:function({ content }){return [_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(content))])]}}])})]},proxy:true},{key:\"mergeCommitCount\",fn:function(){return [_c('gl-sprintf',{attrs:{\"message\":_vm.$options.mergeCommitCount},scopedSlots:_vm._u([{key:\"strong\",fn:function({ content }){return [_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(content))])]}}])})]},proxy:true},{key:\"targetBranch\",fn:function(){return [_c('span',{staticClass:\"label-branch gl-font-bold\"},[_vm._v(_vm._s(_vm.targetBranchEscaped))])]},proxy:true},{key:\"squashedCommits\",fn:function(){return [(_vm.isSquashEnabled)?[_c('gl-sprintf',{attrs:{\"message\":_vm.squashCommitMessage},scopedSlots:_vm._u([{key:\"strong\",fn:function({ content }){return [_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(content))])]}}],null,false,3587834121)})]:_vm._e()]},proxy:true},{key:\"mergeCommitSha\",fn:function(){return [_c('gl-link',{staticClass:\"label-branch\",attrs:{\"href\":_vm.mergeCommitPath,\"data-testid\":\"merge-commit-sha\"}},[_vm._v(_vm._s(_vm.mergeCommitSha))])]},proxy:true}])})],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!./mr_widget_related_links.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!./mr_widget_related_links.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink } from '@gitlab/ui';\nimport { STATUS_CLOSED, STATUS_MERGED } from '~/issues/constants';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { s__, n__ } from '~/locale';\n\nexport default {\n name: 'MRWidgetRelatedLinks',\n directives: {\n SafeHtml,\n },\n components: {\n GlLink,\n },\n props: {\n relatedLinks: {\n type: Object,\n required: true,\n default: () => ({}),\n },\n state: {\n type: String,\n required: false,\n default: '',\n },\n showAssignToMe: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n computed: {\n closesText() {\n if (this.state === STATUS_MERGED) {\n return s__('mrWidget|Closed');\n }\n if (this.state === STATUS_CLOSED) {\n return s__('mrWidget|Did not close');\n }\n\n return n__('mrWidget|Closes issue', 'mrWidget|Closes issues', this.relatedLinks.closingCount);\n },\n assignIssueText() {\n if (this.relatedLinks.unassignedCount > 1) {\n return s__('mrWidget|Assign yourself to these issues');\n }\n return s__('mrWidget|Assign yourself to this issue');\n },\n shouldShowAssignToMeLink() {\n return (\n this.relatedLinks.unassignedCount && this.relatedLinks.assignToMe && this.showAssignToMe\n );\n },\n },\n};\n</script>\n<template>\n <section>\n <p v-if=\"relatedLinks.closing\" class=\"gl-m-0 gl-inline !gl-text-sm\">\n {{ closesText }}\n <span v-safe-html=\"relatedLinks.closing\"></span>\n </p>\n <p v-if=\"relatedLinks.mentioned\" class=\"gl-m-0 gl-inline !gl-text-sm\">\n <span v-if=\"relatedLinks.closing\">·</span>\n {{ n__('mrWidget|Mentions issue', 'mrWidget|Mentions issues', relatedLinks.mentionedCount) }}\n <span v-safe-html=\"relatedLinks.mentioned\"></span>\n </p>\n <p v-if=\"shouldShowAssignToMeLink\" class=\"gl-m-0 gl-inline !gl-text-sm\">\n <span>\n <gl-link rel=\"nofollow\" data-method=\"post\" :href=\"relatedLinks.assignToMe\">{{\n assignIssueText\n }}</gl-link>\n </span>\n </p>\n </section>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_related_links.vue?vue&type=template&id=b3a6c6ea\"\nimport script from \"./mr_widget_related_links.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_related_links.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('section',[(_vm.relatedLinks.closing)?_c('p',{staticClass:\"gl-m-0 gl-inline !gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.closesText)+\"\\n \"),_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.relatedLinks.closing),expression:\"relatedLinks.closing\"}]})]):_vm._e(),_vm._v(\" \"),(_vm.relatedLinks.mentioned)?_c('p',{staticClass:\"gl-m-0 gl-inline !gl-text-sm\"},[(_vm.relatedLinks.closing)?_c('span',[_vm._v(\"·\")]):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.n__('mrWidget|Mentions issue', 'mrWidget|Mentions issues', _vm.relatedLinks.mentionedCount))+\"\\n \"),_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.relatedLinks.mentioned),expression:\"relatedLinks.mentioned\"}]})]):_vm._e(),_vm._v(\" \"),(_vm.shouldShowAssignToMeLink)?_c('p',{staticClass:\"gl-m-0 gl-inline !gl-text-sm\"},[_c('span',[_c('gl-link',{attrs:{\"rel\":\"nofollow\",\"data-method\":\"post\",\"href\":_vm.relatedLinks.assignToMe}},[_vm._v(_vm._s(_vm.assignIssueText))])],1)]):_vm._e()])\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!./commit_edit.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!./commit_edit.vue?vue&type=script&lang=js\"","<script>\nimport { GlFormTextarea } from '@gitlab/ui';\n\nexport default {\n components: {\n GlFormTextarea,\n },\n model: {\n prop: 'value',\n event: 'input',\n },\n props: {\n value: {\n type: String,\n required: true,\n },\n label: {\n type: String,\n required: true,\n },\n inputId: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <li>\n <div class=\"commit-message-editor\">\n <div class=\"justify-content-between gl-mb-3 gl-flex gl-flex-wrap gl-items-center\">\n <label class=\"col-form-label\" :for=\"inputId\">\n <strong>{{ label }}</strong>\n </label>\n <slot name=\"header\"></slot>\n </div>\n <gl-form-textarea\n :id=\"inputId\"\n :value=\"value\"\n class=\"form-control js-gfm-input commit-message-edit gl-mb-3 !gl-font-monospace\"\n dir=\"auto\"\n required=\"required\"\n rows=\"7\"\n max-rows=\"32\"\n no-resize\n @input=\"(val) => $emit('input', val)\"\n />\n </div>\n </li>\n</template>\n","import { render, staticRenderFns } from \"./commit_edit.vue?vue&type=template&id=ba709e08\"\nimport script from \"./commit_edit.vue?vue&type=script&lang=js\"\nexport * from \"./commit_edit.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('li',[_c('div',{staticClass:\"commit-message-editor\"},[_c('div',{staticClass:\"justify-content-between gl-mb-3 gl-flex gl-flex-wrap gl-items-center\"},[_c('label',{staticClass:\"col-form-label\",attrs:{\"for\":_vm.inputId}},[_c('strong',[_vm._v(_vm._s(_vm.label))])]),_vm._v(\" \"),_vm._t(\"header\")],2),_vm._v(\" \"),_c('gl-form-textarea',{staticClass:\"form-control js-gfm-input commit-message-edit gl-mb-3 !gl-font-monospace\",attrs:{\"id\":_vm.inputId,\"value\":_vm.value,\"dir\":\"auto\",\"required\":\"required\",\"rows\":\"7\",\"max-rows\":\"32\",\"no-resize\":\"\"},on:{\"input\":(val) => _vm.$emit('input', val)}})],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!./commit_message_dropdown.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!./commit_message_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlDisclosureDropdown, GlButtonGroup } from '@gitlab/ui';\n\nexport default {\n components: {\n GlButtonGroup,\n GlDisclosureDropdown,\n AiCommitMessage: () =>\n import('ee_component/vue_merge_request_widget/components/ai_commit_message.vue'),\n },\n props: {\n commits: {\n type: Array,\n required: true,\n default: () => [],\n },\n aiCommitMessageEnabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n mrId: {\n type: Number,\n required: false,\n default: null,\n },\n },\n computed: {\n dropdownItems() {\n return this.commits.map((commit) => ({\n text: commit.title,\n extraAttrs: {\n text: commit.shortId || commit.short_Id,\n },\n action: () => {\n this.$emit('input', commit.message);\n },\n }));\n },\n },\n};\n</script>\n\n<template>\n <gl-button-group>\n <ai-commit-message\n v-if=\"aiCommitMessageEnabled\"\n :id=\"mrId\"\n button-class=\"!gl-rounded-br-none !gl-rounded-tr-none\"\n @update=\"(val) => $emit('append', val)\"\n />\n <gl-disclosure-dropdown\n placement=\"bottom-end\"\n toggle-text=\"Use an existing commit message\"\n :category=\"aiCommitMessageEnabled ? 'primary' : 'tertiary'\"\n :items=\"dropdownItems\"\n size=\"small\"\n :text-sr-only=\"aiCommitMessageEnabled\"\n class=\"mr-commit-dropdown\"\n >\n <template v-if=\"aiCommitMessageEnabled\" #header>\n <div\n class=\"gl-flex gl-items-center gl-border-b-1 gl-border-b-dropdown gl-px-4 gl-py-3 gl-border-b-solid\"\n >\n <span class=\"gl-grow gl-pr-2 gl-text-sm gl-font-bold\">\n {{ __('Use existing commit message') }}\n </span>\n </div>\n </template>\n <template #list-item=\"{ item }\">\n <span class=\"gl-mr-2\">{{ item.extraAttrs.text }}</span>\n {{ item.text }}\n </template>\n </gl-disclosure-dropdown>\n </gl-button-group>\n</template>\n","import { render, staticRenderFns } from \"./commit_message_dropdown.vue?vue&type=template&id=6cd25c33\"\nimport script from \"./commit_message_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./commit_message_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button-group',[(_vm.aiCommitMessageEnabled)?_c('ai-commit-message',{attrs:{\"id\":_vm.mrId,\"button-class\":\"!gl-rounded-br-none !gl-rounded-tr-none\"},on:{\"update\":(val) => _vm.$emit('append', val)}}):_vm._e(),_vm._v(\" \"),_c('gl-disclosure-dropdown',{staticClass:\"mr-commit-dropdown\",attrs:{\"placement\":\"bottom-end\",\"toggle-text\":\"Use an existing commit message\",\"category\":_vm.aiCommitMessageEnabled ? 'primary' : 'tertiary',\"items\":_vm.dropdownItems,\"size\":\"small\",\"text-sr-only\":_vm.aiCommitMessageEnabled},scopedSlots:_vm._u([(_vm.aiCommitMessageEnabled)?{key:\"header\",fn:function(){return [_c('div',{staticClass:\"gl-flex gl-items-center gl-border-b-1 gl-border-b-dropdown gl-px-4 gl-py-3 gl-border-b-solid\"},[_c('span',{staticClass:\"gl-grow gl-pr-2 gl-text-sm gl-font-bold\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Use existing commit message'))+\"\\n \")])])]},proxy:true}:null,{key:\"list-item\",fn:function({ item }){return [_c('span',{staticClass:\"gl-mr-2\"},[_vm._v(_vm._s(item.extraAttrs.text))]),_vm._v(\"\\n \"+_vm._s(item.text)+\"\\n \")]}}],null,true)})],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!./squash_before_merge.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!./squash_before_merge.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlFormCheckbox, GlLink } from '@gitlab/ui';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport { SQUASH_BEFORE_MERGE } from '../../i18n';\n\nexport default {\n components: {\n GlFormCheckbox,\n GlLink,\n HelpIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n i18n: {\n ...SQUASH_BEFORE_MERGE,\n },\n props: {\n value: {\n type: Boolean,\n required: true,\n },\n helpPath: {\n type: String,\n required: false,\n default: '',\n },\n isDisabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n tooltipTitle() {\n return this.isDisabled ? this.$options.i18n.tooltipTitle : null;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-flex\">\n <gl-form-checkbox\n v-gl-tooltip\n :checked=\"value\"\n :disabled=\"isDisabled\"\n name=\"squash\"\n class=\"js-squash-checkbox gl-mr-2\"\n data-testid=\"squash-checkbox\"\n :title=\"tooltipTitle\"\n @change=\"(checked) => $emit('input', checked)\"\n >\n {{ $options.i18n.checkboxLabel }}\n </gl-form-checkbox>\n <gl-link\n v-if=\"helpPath\"\n v-gl-tooltip\n :href=\"helpPath\"\n :title=\"$options.i18n.helpLabel\"\n class=\"gl-leading-1\"\n target=\"_blank\"\n >\n <help-icon :aria-label=\"$options.i18n.helpLabel\" />\n </gl-link>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./squash_before_merge.vue?vue&type=template&id=900b9806\"\nimport script from \"./squash_before_merge.vue?vue&type=script&lang=js\"\nexport * from \"./squash_before_merge.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('div',{staticClass:\"gl-flex\"},[_c('gl-form-checkbox',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"js-squash-checkbox gl-mr-2\",attrs:{\"checked\":_vm.value,\"disabled\":_vm.isDisabled,\"name\":\"squash\",\"data-testid\":\"squash-checkbox\",\"title\":_vm.tooltipTitle},on:{\"change\":(checked) => _vm.$emit('input', checked)}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.checkboxLabel)+\"\\n \")]),_vm._v(\" \"),(_vm.helpPath)?_c('gl-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-leading-1\",attrs:{\"href\":_vm.helpPath,\"title\":_vm.$options.i18n.helpLabel,\"target\":\"_blank\"}},[_c('help-icon',{attrs:{\"aria-label\":_vm.$options.i18n.helpLabel}})],1):_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!./merge_failed_pipeline_confirmation_dialog.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!./merge_failed_pipeline_confirmation_dialog.vue?vue&type=script&lang=js\"","<script>\nimport { GlModal, GlButton } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport runPipelineMixin from '../../mixins/run_pipeline';\n\nexport default {\n name: 'MergeFailedPipelineConfirmationDialog',\n i18n: {\n primary: __('Merge unverified changes'),\n cancel: __('Cancel'),\n info: __(\n 'The merge checks are incomplete because the latest pipeline failed, the pipeline status cannot be verified, or the merge request target branch was changed. You should run a new pipeline before merging.',\n ),\n confirmation: __('Are you sure you want to attempt to merge?'),\n title: __('Merge unverified changes?'),\n },\n components: {\n GlModal,\n GlButton,\n },\n mixins: [runPipelineMixin],\n props: {\n visible: {\n type: Boolean,\n required: true,\n },\n },\n methods: {\n hide() {\n this.$refs.modal.hide();\n },\n cancel() {\n this.hide();\n this.$emit('cancel');\n },\n focusCancelButton() {\n this.$refs.cancelButton.$el.focus();\n },\n mergeChanges() {\n this.$emit('mergeWithFailedPipeline');\n this.hide();\n },\n },\n};\n</script>\n<template>\n <gl-modal\n ref=\"modal\"\n size=\"sm\"\n modal-id=\"merge-train-failed-pipeline-confirmation-dialog\"\n :title=\"$options.i18n.title\"\n :visible=\"visible\"\n data-testid=\"merge-failed-pipeline-confirmation-dialog\"\n @shown=\"focusCancelButton\"\n @hide=\"$emit('cancel')\"\n >\n <p>{{ $options.i18n.info }}</p>\n <p>{{ $options.i18n.confirmation }}</p>\n <template #modal-footer>\n <gl-button ref=\"cancelButton\" data-testid=\"merge-cancel-btn\" @click=\"cancel\">{{\n $options.i18n.cancel\n }}</gl-button>\n <gl-button\n variant=\"confirm\"\n category=\"secondary\"\n data-testid=\"merge-unverified-changes\"\n @click=\"mergeChanges\"\n >\n {{ $options.i18n.primary }}\n </gl-button>\n <gl-button\n variant=\"confirm\"\n data-testid=\"run-pipeline-button\"\n :loading=\"isCreatingPipeline\"\n @click=\"runPipeline\"\n >\n {{ __('Run pipeline') }}\n </gl-button>\n </template>\n </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./merge_failed_pipeline_confirmation_dialog.vue?vue&type=template&id=5f613226\"\nimport script from \"./merge_failed_pipeline_confirmation_dialog.vue?vue&type=script&lang=js\"\nexport * from \"./merge_failed_pipeline_confirmation_dialog.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-modal',{ref:\"modal\",attrs:{\"size\":\"sm\",\"modal-id\":\"merge-train-failed-pipeline-confirmation-dialog\",\"title\":_vm.$options.i18n.title,\"visible\":_vm.visible,\"data-testid\":\"merge-failed-pipeline-confirmation-dialog\"},on:{\"shown\":_vm.focusCancelButton,\"hide\":function($event){return _vm.$emit('cancel')}},scopedSlots:_vm._u([{key:\"modal-footer\",fn:function(){return [_c('gl-button',{ref:\"cancelButton\",attrs:{\"data-testid\":\"merge-cancel-btn\"},on:{\"click\":_vm.cancel}},[_vm._v(_vm._s(_vm.$options.i18n.cancel))]),_vm._v(\" \"),_c('gl-button',{attrs:{\"variant\":\"confirm\",\"category\":\"secondary\",\"data-testid\":\"merge-unverified-changes\"},on:{\"click\":_vm.mergeChanges}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.primary)+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"variant\":\"confirm\",\"data-testid\":\"run-pipeline-button\",\"loading\":_vm.isCreatingPipeline},on:{\"click\":_vm.runPipeline}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Run pipeline'))+\"\\n \")])]},proxy:true}])},[_c('p',[_vm._v(_vm._s(_vm.$options.i18n.info))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$options.i18n.confirmation))])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport {\n GlButton,\n GlButtonGroup,\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n GlFormCheckbox,\n GlSprintf,\n GlLink,\n GlTooltipDirective,\n GlSkeletonLoader,\n} from '@gitlab/ui';\nimport { isEmpty, isNil } from 'lodash';\nimport readyToMergeMixin from 'ee_else_ce/vue_merge_request_widget/mixins/ready_to_merge';\nimport readyToMergeQuery from 'ee_else_ce/vue_merge_request_widget/queries/states/ready_to_merge.query.graphql';\nimport { createAlert } from '~/alert';\nimport { fetchPolicies } from '~/lib/graphql';\nimport { TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { STATUS_CLOSED, STATUS_MERGED } from '~/issues/constants';\nimport { secondsToMilliseconds } from '~/lib/utils/datetime_utility';\nimport simplePoll from '~/lib/utils/simple_poll';\nimport { __, s__, n__ } from '~/locale';\nimport SmartInterval from '~/smart_interval';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport readyToMergeSubscription from '~/vue_merge_request_widget/queries/states/ready_to_merge.subscription.graphql';\nimport HelpPopover from '~/vue_shared/components/help_popover.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport {\n AUTO_MERGE_STRATEGIES,\n MT_MERGE_STRATEGY,\n PIPELINE_FAILED_STATE,\n STATE_MACHINE,\n MT_SKIP_TRAIN,\n MT_RESTART_TRAIN,\n MWCP_MERGE_STRATEGY,\n} from '../../constants';\nimport eventHub from '../../event_hub';\nimport mergeRequestQueryVariablesMixin from '../../mixins/merge_request_query_variables';\nimport MergeRequestStore from '../../stores/mr_widget_store';\nimport AddedCommitMessage from '../added_commit_message.vue';\nimport RelatedLinks from '../mr_widget_related_links.vue';\nimport CommitEdit from './commit_edit.vue';\nimport CommitMessageDropdown from './commit_message_dropdown.vue';\nimport SquashBeforeMerge from './squash_before_merge.vue';\nimport MergeFailedPipelineConfirmationDialog from './merge_failed_pipeline_confirmation_dialog.vue';\n\nconst PIPELINE_PENDING_STATE = 'pending';\nconst PIPELINE_SUCCESS_STATE = 'success';\n\nconst MERGE_FAILED_STATUS = 'failed';\nconst MERGE_SUCCESS_STATUS = 'success';\nconst MERGE_HOOK_VALIDATION_ERROR_STATUS = 'hook_validation_error';\n\nconst { transitions } = STATE_MACHINE;\nconst { MERGE, MERGE_FAILURE, AUTO_MERGE, MERGING } = transitions;\n\nexport default {\n name: 'ReadyToMerge',\n apollo: {\n state: {\n query: readyToMergeQuery,\n fetchPolicy: fetchPolicies.NO_CACHE,\n variables() {\n return this.mergeRequestQueryVariables;\n },\n manual: true,\n result({ data }) {\n if (!data?.project?.mergeRequest) {\n return;\n }\n\n if (Object.keys(this.state).length === 0) {\n this.removeSourceBranch =\n data.project.mergeRequest.shouldRemoveSourceBranch ||\n data.project.mergeRequest.forceRemoveSourceBranch ||\n false;\n this.commitMessage = data.project.mergeRequest.defaultMergeCommitMessage;\n this.squashBeforeMerge = data.project.mergeRequest.squashOnMerge;\n this.isSquashReadOnly = data.project.squashReadOnly;\n this.squashCommitMessage = data.project.mergeRequest.defaultSquashCommitMessage;\n }\n\n this.state = {\n ...data.project.mergeRequest,\n mergeRequestsFfOnlyEnabled: data.project.mergeRequestsFfOnlyEnabled,\n onlyAllowMergeIfPipelineSucceeds: data.project.onlyAllowMergeIfPipelineSucceeds,\n mergeTrainsCount: data.project?.mergeTrains?.nodes[0]?.cars?.count,\n };\n this.loading = false;\n\n if (!this.commitMessageIsTouched) {\n this.commitMessage = this.state.defaultMergeCommitMessage;\n }\n if (!this.squashCommitMessageIsTouched) {\n this.squashCommitMessage = this.state.defaultSquashCommitMessage;\n }\n\n if (!isNil(this.state.mergeTrainsCount) && !this.pollingInterval) {\n this.initPolling();\n }\n },\n subscribeToMore: {\n document() {\n return readyToMergeSubscription;\n },\n skip() {\n return !this.mr?.id || this.loading;\n },\n variables() {\n return {\n issuableId: convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.mr?.id),\n };\n },\n updateQuery(\n _,\n {\n subscriptionData: {\n data: { mergeRequestMergeStatusUpdated },\n },\n },\n ) {\n if (mergeRequestMergeStatusUpdated) {\n this.state = {\n ...mergeRequestMergeStatusUpdated,\n mergeRequestsFfOnlyEnabled: this.state.mergeRequestsFfOnlyEnabled,\n onlyAllowMergeIfPipelineSucceeds: this.state.onlyAllowMergeIfPipelineSucceeds,\n };\n\n if (!this.commitMessageIsTouched) {\n this.commitMessage = mergeRequestMergeStatusUpdated.defaultMergeCommitMessage;\n }\n\n if (!this.squashCommitMessageIsTouched) {\n this.squashCommitMessage = mergeRequestMergeStatusUpdated.defaultSquashCommitMessage;\n }\n }\n },\n },\n },\n },\n components: {\n SquashBeforeMerge,\n CommitEdit,\n CommitMessageDropdown,\n GlSprintf,\n GlLink,\n GlButton,\n GlButtonGroup,\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n GlFormCheckbox,\n GlSkeletonLoader,\n MergeFailedPipelineConfirmationDialog,\n MergeImmediatelyConfirmationDialog: () =>\n import(\n 'ee_component/vue_merge_request_widget/components/merge_immediately_confirmation_dialog.vue'\n ),\n MergeTrainFailedPipelineConfirmationDialog: () =>\n import(\n 'ee_component/vue_merge_request_widget/components/merge_train_failed_pipeline_confirmation_dialog.vue'\n ),\n MergeTrainRestartTrainConfirmationDialog: () =>\n import(\n 'ee_component/vue_merge_request_widget/components/merge_train_restart_train_confirmation_dialog.vue'\n ),\n AddedCommitMessage,\n RelatedLinks,\n HelpPopover,\n AiCommitMessage: () =>\n import('ee_component/vue_merge_request_widget/components/ai_commit_message.vue'),\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [readyToMergeMixin, mergeRequestQueryVariablesMixin, glFeatureFlagsMixin()],\n props: {\n mr: { type: Object, required: true },\n service: { type: Object, required: true },\n },\n data() {\n return {\n loading: true,\n state: {},\n removeSourceBranch: this.mr.shouldRemoveSourceBranch,\n isMakingRequest: false,\n isMergingImmediately: false,\n commitMessage: this.mr.commitMessage,\n commitMessageIsTouched: false,\n squashBeforeMerge: this.mr.squashIsSelected,\n isSquashReadOnly: this.mr.squashIsReadonly,\n squashCommitMessage: this.mr.squashCommitMessage,\n squashCommitMessageIsTouched: false,\n isPipelineFailedModalVisibleMergeTrain: false,\n isPipelineFailedModalVisibleNormalMerge: false,\n isMergeTrainBeingForceMerged: false,\n mergeTrainMergeType: MT_RESTART_TRAIN,\n skipMergeTrain: false,\n mergeTrainsSkipAllowed: this.mr.mergeTrainsSkipAllowed,\n editCommitMessage: false,\n };\n },\n computed: {\n hasCI() {\n return this.state.hasCI || this.state.hasCi;\n },\n isAutoMergeAvailable() {\n return !isEmpty(this.state.availableAutoMergeStrategies);\n },\n pipeline() {\n return this.state.headPipeline;\n },\n isPipelineFailed() {\n return ['FAILED', 'CANCELED'].indexOf(this.pipeline?.status) !== -1;\n },\n showMergeFailedPipelineConfirmationDialog() {\n return (this.status === PIPELINE_FAILED_STATE && this.isPipelineFailed) || this.mr.retargeted;\n },\n isMergeAllowed() {\n return this.state.mergeable || false;\n },\n canRemoveSourceBranch() {\n return this.state.userPermissions.removeSourceBranch;\n },\n commitTemplateHelpPage() {\n return helpPagePath('user/project/merge_requests/commit_templates.md');\n },\n commitTemplateHintText() {\n if (this.shouldShowSquashEdit && this.shouldShowMergeEdit) {\n return this.$options.i18n.mergeAndSquashCommitTemplatesHintText;\n }\n if (this.shouldShowSquashEdit) {\n return this.$options.i18n.squashCommitTemplateHintText;\n }\n return this.$options.i18n.mergeCommitTemplateHintText;\n },\n commits() {\n return this.state.commitsWithoutMergeCommits?.nodes;\n },\n commitsCount() {\n return this.state.commitCount || 0;\n },\n preferredAutoMergeStrategy() {\n return MergeRequestStore.getPreferredAutoMergeStrategy(\n this.state.availableAutoMergeStrategies,\n );\n },\n isPreferredAutoMergeStrategyMWPC() {\n return this.preferredAutoMergeStrategy === MWCP_MERGE_STRATEGY;\n },\n squashIsSelected() {\n return this.isSquashReadOnly ? this.state.squashOnMerge : this.state.squash;\n },\n status() {\n const ciStatus = this.pipeline?.status?.toLowerCase();\n\n if ((this.hasCI && !ciStatus) || this.hasPipelineMustSucceedConflict) {\n return PIPELINE_FAILED_STATE;\n }\n\n if (this.isAutoMergeAvailable) {\n return PIPELINE_PENDING_STATE;\n }\n\n if (this.pipeline && this.isPipelineFailed) {\n return PIPELINE_FAILED_STATE;\n }\n\n return PIPELINE_SUCCESS_STATE;\n },\n mergeButtonText() {\n if (this.isMergingImmediately) {\n return __('Merge in progress');\n }\n if (this.isAutoMergeAvailable) {\n return this.autoMergeText;\n }\n\n if (this.status === PIPELINE_FAILED_STATE || this.isPipelineFailed) {\n return __('Merge...');\n }\n\n return __('Merge');\n },\n showAutoMergeHelperText() {\n return this.isAutoMergeAvailable;\n },\n hasPipelineMustSucceedConflict() {\n return !this.hasCI && this.state.onlyAllowMergeIfPipelineSucceeds;\n },\n isNotClosed() {\n return this.mr.state !== STATUS_CLOSED;\n },\n isMerged() {\n return this.mr.state === STATUS_MERGED;\n },\n isNeitherClosedNorMerged() {\n return this.mr.state !== STATUS_CLOSED && this.mr.state !== STATUS_MERGED;\n },\n isRemoveSourceBranchButtonDisabled() {\n return this.isMergeButtonDisabled;\n },\n shouldShowSquashBeforeMerge() {\n const { enableSquashBeforeMerge } = this.mr;\n\n if (this.isSquashReadOnly && !this.squashIsSelected) {\n return false;\n }\n\n return enableSquashBeforeMerge;\n },\n shouldShowSquashEdit() {\n return this.squashBeforeMerge && this.shouldShowSquashBeforeMerge;\n },\n shouldShowMergeEdit() {\n return !this.state.mergeRequestsFfOnlyEnabled;\n },\n shaMismatchLink() {\n return this.mr.mergeRequestDiffsPath;\n },\n showDangerMessageForMergeTrain() {\n return this.preferredAutoMergeStrategy === MT_MERGE_STRATEGY && this.isPipelineFailed;\n },\n shouldShowMergeControls() {\n return (\n this.state.userPermissions?.canMerge &&\n !this.mr.autoMergeEnabled &&\n this.mr.state === 'readyToMerge'\n );\n },\n sourceBranchPreMergeText() {\n return this.removeSourceBranch\n ? __('Source branch will be deleted.')\n : __('Source branch will not be deleted.');\n },\n sourceBranchMergedText() {\n return this.mr.sourceBranchRemoved\n ? __('Deleted the source branch.')\n : __('Did not delete the source branch.');\n },\n sourceHasDivergedFromTarget() {\n return this.mr.divergedCommitsCount > 0;\n },\n showMergeDetailsHeader() {\n return !['readyToMerge'].includes(this.mr.state);\n },\n autoMergeHelpPopoverOptions() {\n return {\n title: this.autoMergePopoverSettings.title,\n };\n },\n isSkipMergeTrainAvailable() {\n return this.mergeTrainsSkipAllowed && this.glFeatures.mergeTrainsSkipTrain;\n },\n displaySkipMergeTrainOptions() {\n return this.shouldDisplayMergeImmediatelyDropdownOptions && this.isSkipMergeTrainAvailable;\n },\n },\n watch: {\n 'mr.state': function mrStateWatcher() {\n this.isMakingRequest = false;\n },\n 'state.autoMergeEnabled': function mrAutoMergeEnabledWatcher() {\n this.isMakingRequest = false;\n },\n },\n mounted() {\n eventHub.$on('ApprovalUpdated', this.updateGraphqlState);\n eventHub.$on('MRWidgetUpdateRequested', this.updateGraphqlState);\n eventHub.$on('mr.discussion.updated', this.updateGraphqlState);\n },\n beforeDestroy() {\n eventHub.$off('ApprovalUpdated', this.updateGraphqlState);\n eventHub.$off('MRWidgetUpdateRequested', this.updateGraphqlState);\n eventHub.$off('mr.discussion.updated', this.updateGraphqlState);\n eventHub.$off('ApprovalUpdated', this.updateGraphqlState);\n\n if (this.pollingInterval) {\n this.pollingInterval.destroy();\n }\n },\n methods: {\n initPolling() {\n const startingPollInterval = secondsToMilliseconds(5);\n\n this.pollingInterval = new SmartInterval({\n callback: () => this.$apollo.queries.state.refetch(),\n startingInterval: startingPollInterval,\n maxInterval: startingPollInterval + secondsToMilliseconds(4 * 60),\n hiddenInterval: secondsToMilliseconds(6 * 60),\n incrementByFactorOf: 2,\n });\n },\n updateGraphqlState() {\n return this.$apollo.queries.state.refetch();\n },\n handleMergeButtonClick(useAutoMerge, mergeImmediately = false, confirmationClicked = false) {\n if (\n this.preferredAutoMergeStrategy !== MT_MERGE_STRATEGY &&\n this.showMergeFailedPipelineConfirmationDialog &&\n !confirmationClicked\n ) {\n this.isPipelineFailedModalVisibleNormalMerge = true;\n return;\n }\n\n if (this.showFailedPipelineModalMergeTrain && !confirmationClicked) {\n this.isPipelineFailedModalVisibleMergeTrain = true;\n return;\n }\n\n if (mergeImmediately) {\n this.isMergingImmediately = true;\n }\n const latestSha = this.state.diffHeadSha;\n\n const options = {\n sha: latestSha || this.mr.sha,\n auto_merge_strategy: useAutoMerge ? this.preferredAutoMergeStrategy : undefined,\n should_remove_source_branch: this.removeSourceBranch === true,\n squash: this.squashBeforeMerge,\n skip_merge_train: this.skipMergeTrain,\n };\n\n // If users can't alter the squash message (e.g. for 1-commit merge requests),\n // we shouldn't send the commit message because that would make the backend\n // do unnecessary work.\n if (this.shouldShowSquashBeforeMerge && this.squashCommitMessageIsTouched) {\n options.squash_commit_message = this.squashCommitMessage;\n }\n\n if (this.commitMessageIsTouched) {\n options.commit_message = this.commitMessage;\n }\n\n this.isMakingRequest = true;\n this.editCommitMessage = false;\n\n if (!useAutoMerge) {\n this.mr.transitionStateMachine({ transition: MERGE });\n }\n\n this.service\n .merge(options)\n .then((res) => res.data)\n .then((data) => {\n const hasError =\n data.status === MERGE_FAILED_STATUS ||\n data.status === MERGE_HOOK_VALIDATION_ERROR_STATUS;\n\n if (AUTO_MERGE_STRATEGIES.includes(data.status)) {\n eventHub.$emit('MRWidgetUpdateRequested');\n this.mr.transitionStateMachine({ transition: AUTO_MERGE });\n } else if (data.status === MERGE_SUCCESS_STATUS) {\n this.mr.transitionStateMachine({ transition: MERGING });\n } else if (hasError) {\n eventHub.$emit('FailedToMerge', data.merge_error);\n this.mr.transitionStateMachine({ transition: MERGE_FAILURE });\n }\n\n this.updateGraphqlState();\n })\n .catch(() => {\n this.isMakingRequest = false;\n this.mr.transitionStateMachine({ transition: MERGE_FAILURE });\n createAlert({\n message: __('Something went wrong. Please try again.'),\n });\n });\n },\n handleMergeImmediatelyButtonClick() {\n if (this.isMergeImmediatelyDangerous) {\n this.$refs.confirmationDialog.show();\n } else {\n this.handleMergeButtonClick(false, true);\n }\n },\n handleMergeTrainMergeImmediatelyButtonClick(type) {\n this.mergeTrainMergeType = type;\n this.isMergeTrainBeingForceMerged = true;\n },\n processMergeTrain() {\n if (this.mergeTrainMergeType === MT_SKIP_TRAIN) {\n this.skipMergeTrain = true;\n }\n\n this.handleMergeButtonClick(false, true, true);\n },\n onMergeImmediatelyConfirmation() {\n this.handleMergeButtonClick(false, true, true);\n },\n onMergeWithFailedPipelineConfirmation() {\n this.handleMergeButtonClick(false, true, true);\n },\n initiateRemoveSourceBranchPolling() {\n // We need to show source branch is being removed spinner in another component\n eventHub.$emit('SetBranchRemoveFlag', [true]);\n\n simplePoll((continuePolling, stopPolling) => {\n this.handleRemoveBranchPolling(continuePolling, stopPolling);\n });\n },\n handleRemoveBranchPolling(continuePolling, stopPolling) {\n this.service\n .poll()\n .then((res) => res.data)\n .then((data) => {\n // If source branch exists then we should continue polling\n // because removing a source branch is a background task and takes time\n if (data.source_branch_exists) {\n continuePolling();\n } else {\n // Branch is removed. Update widget, stop polling and hide the spinner\n eventHub.$emit('MRWidgetUpdateRequested', () => {\n eventHub.$emit('SetBranchRemoveFlag', [false]);\n });\n stopPolling();\n }\n })\n .catch(() => {\n createAlert({\n message: __('Something went wrong while deleting the source branch. Please try again.'),\n });\n });\n },\n setCommitMessage(val) {\n this.commitMessage = val;\n this.commitMessageIsTouched = true;\n },\n setSquashCommitMessage(val) {\n this.squashCommitMessage = val;\n this.squashCommitMessageIsTouched = true;\n },\n appendCommitMessage(messageType, val) {\n this[`${messageType}Message`] = `${this[`${messageType}Message`]}\\n\\n${val}`;\n this[`${messageType}MessageIsTouched`] = true;\n },\n updateRemoveSourceBranchSettings(checked) {\n this.removeSourceBranch = checked;\n this.mr.setRemoveSourceBranch(checked);\n },\n },\n i18n: {\n mergeCommitTemplateHintText: s__(\n 'mrWidget|To change this default message, edit the template for merge commit messages. %{linkStart}Learn more%{linkEnd}.',\n ),\n squashCommitTemplateHintText: s__(\n 'mrWidget|To change this default message, edit the template for squash commit messages. %{linkStart}Learn more%{linkEnd}.',\n ),\n mergeAndSquashCommitTemplatesHintText: s__(\n 'mrWidget|To change these default messages, edit the templates for both the merge and squash commit messages. %{linkStart}Learn more%{linkEnd}.',\n ),\n sourceDivergedFromTargetText: s__('mrWidget|The source branch is %{link} the target branch.'),\n divergedCommits: (count) => n__('%d commit behind', '%d commits behind', count),\n },\n MT_SKIP_TRAIN,\n MT_RESTART_TRAIN,\n};\n</script>\n\n<template>\n <div\n :class=\"{ 'gl-bg-subtle': isNeitherClosedNorMerged }\"\n data-testid=\"ready_to_merge_state\"\n class=\"gl-border-t gl-border-t-section gl-bg-subtle gl-pl-7\"\n >\n <div v-if=\"loading\" class=\"mr-widget-body\">\n <div class=\"mr-ready-to-merge-loader gl-w-full\">\n <gl-skeleton-loader :width=\"418\" :height=\"86\">\n <rect x=\"0\" y=\"0\" width=\"144\" height=\"20\" rx=\"4\" />\n <rect x=\"0\" y=\"26\" width=\"100\" height=\"16\" rx=\"4\" />\n <rect x=\"108\" y=\"26\" width=\"100\" height=\"16\" rx=\"4\" />\n <rect x=\"0\" y=\"48\" width=\"130\" height=\"16\" rx=\"4\" />\n <rect x=\"0\" y=\"70\" width=\"80\" height=\"16\" rx=\"4\" />\n <rect x=\"88\" y=\"70\" width=\"90\" height=\"16\" rx=\"4\" />\n </gl-skeleton-loader>\n </div>\n </div>\n <template v-else>\n <div class=\"mr-widget-body mr-widget-body-ready-merge media gl-flex gl-items-center\">\n <div class=\"media-body\">\n <div class=\"mr-widget-body-controls gl-flex gl-flex-wrap gl-items-center\">\n <template v-if=\"shouldShowMergeControls\">\n <div\n class=\"gl-flex gl-w-full gl-flex-col gl-flex-wrap md:gl-flex-row md:gl-items-center\"\n >\n <gl-form-checkbox\n v-if=\"canRemoveSourceBranch\"\n id=\"remove-source-branch-input\"\n :disabled=\"isRemoveSourceBranchButtonDisabled\"\n :checked=\"removeSourceBranch\"\n class=\"js-remove-source-branch-checkbox gl-mr-5 gl-flex gl-items-center\"\n data-testid=\"delete-source-branch-checkbox\"\n @change=\"updateRemoveSourceBranchSettings\"\n >\n {{ __('Delete source branch') }}\n </gl-form-checkbox>\n\n <!-- Placeholder for EE extension of this component -->\n <squash-before-merge\n v-if=\"shouldShowSquashBeforeMerge\"\n v-model=\"squashBeforeMerge\"\n :help-path=\"mr.squashBeforeMergeHelpPath\"\n :is-disabled=\"isSquashReadOnly\"\n class=\"gl-mr-5\"\n />\n\n <gl-form-checkbox\n v-if=\"shouldShowSquashEdit || shouldShowMergeEdit\"\n v-model=\"editCommitMessage\"\n data-testid=\"widget_edit_commit_message\"\n >\n {{ __('Edit commit message') }}\n </gl-form-checkbox>\n </div>\n <div v-if=\"editCommitMessage\" class=\"gl-w-full\" data-testid=\"edit_commit_message\">\n <ul class=\"border-top commits-list flex-list gl-list-none gl-p-0 gl-pt-4\">\n <commit-edit\n v-if=\"shouldShowSquashEdit\"\n :label=\"__('Squash commit message')\"\n :value=\"squashCommitMessage\"\n input-id=\"squash-message-edit\"\n class=\"!gl-m-0 !gl-p-0\"\n @input=\"setSquashCommitMessage\"\n >\n <template #header>\n <commit-message-dropdown\n :ai-commit-message-enabled=\"mr.aiCommitMessageEnabled\"\n :mr-id=\"mr.id\"\n :commits=\"commits\"\n @append=\"(val) => appendCommitMessage('squashCommit', val)\"\n @input=\"setSquashCommitMessage\"\n />\n </template>\n </commit-edit>\n <commit-edit\n v-if=\"shouldShowMergeEdit\"\n v-model=\"commitMessage\"\n :label=\"__('Merge commit message')\"\n input-id=\"merge-message-edit\"\n class=\"!gl-m-0 !gl-p-0\"\n data-testid=\"merge-commit-message\"\n @input=\"setCommitMessage\"\n >\n <template #header>\n <ai-commit-message\n v-if=\"mr.aiCommitMessageEnabled\"\n :id=\"mr.id\"\n @update=\"(val) => appendCommitMessage('commit', val)\"\n />\n </template>\n </commit-edit>\n <li class=\"!gl-m-0 !gl-p-0\">\n <p class=\"form-text gl-text-subtle\">\n <gl-sprintf :message=\"commitTemplateHintText\">\n <template #link=\"{ content }\">\n <gl-link\n :href=\"commitTemplateHelpPage\"\n class=\"inline-link\"\n target=\"_blank\"\n >{{ content }}</gl-link\n >\n </template>\n </gl-sprintf>\n </p>\n </li>\n </ul>\n </div>\n <div class=\"mr-widget-merge-details gl-mb-3 gl-w-full gl-text-subtle\">\n <template v-if=\"sourceHasDivergedFromTarget\">\n <gl-sprintf :message=\"$options.i18n.sourceDivergedFromTargetText\">\n <template #link>\n <gl-link :href=\"mr.targetBranchPath\">{{\n $options.i18n.divergedCommits(mr.divergedCommitsCount)\n }}</gl-link>\n </template>\n </gl-sprintf>\n ·\n </template>\n <added-commit-message\n :is-squash-enabled=\"squashBeforeMerge\"\n :is-fast-forward-enabled=\"!shouldShowMergeEdit\"\n :commits-count=\"commitsCount\"\n :target-branch=\"state.targetBranch\"\n />\n <template v-if=\"mr.relatedLinks\">\n ·\n <related-links\n :state=\"mr.state\"\n :related-links=\"mr.relatedLinks\"\n :show-assign-to-me=\"false\"\n :diverged-commits-count=\"mr.divergedCommitsCount\"\n :target-branch-path=\"mr.targetBranchPath\"\n class=\"mr-ready-merge-related-links gl-inline\"\n />\n </template>\n </div>\n <gl-button-group class=\"gl-self-start\">\n <gl-button\n size=\"medium\"\n category=\"primary\"\n class=\"accept-merge-request\"\n data-testid=\"merge-button\"\n variant=\"confirm\"\n :disabled=\"isMergeButtonDisabled\"\n :loading=\"isMakingRequest\"\n @click=\"handleMergeButtonClick(isAutoMergeAvailable)\"\n >{{ mergeButtonText }}</gl-button\n >\n <gl-disclosure-dropdown\n v-if=\"shouldShowMergeImmediatelyDropdown\"\n v-gl-tooltip.hover.focus=\"__('Select merge moment')\"\n :disabled=\"isMergeButtonDisabled\"\n variant=\"confirm\"\n data-testid=\"merge-immediately-dropdown\"\n toggle-class=\"btn-icon js-merge-moment\"\n :toggle-text=\"__('Select a merge moment')\"\n text-sr-only\n >\n <gl-disclosure-dropdown-item\n v-if=\"\n !shouldDisplayMergeImmediatelyDropdownOptions || !isSkipMergeTrainAvailable\n \"\n data-testid=\"merge-immediately-button\"\n @action=\"handleMergeImmediatelyButtonClick\"\n >\n <template #list-item> {{ __('Merge immediately') }} </template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-item\n v-if=\"displaySkipMergeTrainOptions\"\n data-testid=\"mt-merge-now-restart-button\"\n @action=\"handleMergeTrainMergeImmediatelyButtonClick($options.MT_RESTART_TRAIN)\"\n >\n <template #list-item>\n <strong>{{ __(`Merge now and restart train`) }}</strong>\n <p class=\"gl-mb-0 gl-text-sm gl-text-subtle\">\n {{ __('Restart merge train pipelines with the merged changes.') }}\n </p>\n </template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-item\n v-if=\"displaySkipMergeTrainOptions\"\n data-testid=\"mt-merge-now-skip-restart-button\"\n @action=\"handleMergeTrainMergeImmediatelyButtonClick($options.MT_SKIP_TRAIN)\"\n >\n <template #list-item>\n <strong>{{ __(`Merge now and don't restart train`) }}</strong>\n <p class=\"gl-mb-0 gl-text-sm gl-text-subtle\">\n {{ __('Merge train pipelines continue without the merged changes.') }}\n </p>\n </template>\n </gl-disclosure-dropdown-item>\n </gl-disclosure-dropdown>\n </gl-button-group>\n <template v-if=\"showAutoMergeHelperText\">\n <div class=\"gl-ml-4 gl-text-sm gl-text-subtle\" data-testid=\"auto-merge-helper-text\">\n {{ autoMergeHelperText }}\n </div>\n <help-popover\n class=\"gl-ml-2 gl-inline-flex\"\n :options=\"autoMergeHelpPopoverOptions\"\n data-testid=\"auto-merge-helper-text-icon\"\n >\n <gl-sprintf :message=\"autoMergePopoverSettings.bodyText\">\n <template #link=\"{ content }\">\n <gl-link\n :href=\"autoMergePopoverSettings.helpLink\"\n target=\"_blank\"\n class=\"gl-text-sm\"\n >\n {{ content }}\n </gl-link>\n </template>\n </gl-sprintf>\n </help-popover>\n </template>\n </template>\n <div\n v-else\n class=\"mr-widget-merge-details -gl-order-1 gl-w-full\"\n data-testid=\"merged-status-content\"\n >\n <p v-if=\"showMergeDetailsHeader\" class=\"gl-mb-2 gl-text-default\">\n {{ __('Merge details') }}\n </p>\n <ul class=\"gl-mb-0 gl-ml-3 gl-pl-4 gl-text-subtle\">\n <li v-if=\"sourceHasDivergedFromTarget\" class=\"gl-leading-normal\">\n <gl-sprintf :message=\"$options.i18n.sourceDivergedFromTargetText\">\n <template #link>\n <gl-link :href=\"mr.targetBranchPath\">{{\n $options.i18n.divergedCommits(mr.divergedCommitsCount)\n }}</gl-link>\n </template>\n </gl-sprintf>\n </li>\n <li class=\"gl-leading-normal\">\n <added-commit-message\n :state=\"mr.state\"\n :merge-commit-sha=\"mr.shortMergeCommitSha\"\n :is-squash-enabled=\"squashBeforeMerge\"\n :is-fast-forward-enabled=\"!shouldShowMergeEdit\"\n :commits-count=\"commitsCount\"\n :target-branch=\"state.targetBranch\"\n :merge-commit-path=\"mr.mergeCommitPath\"\n />\n </li>\n <li\n v-if=\"isNotClosed\"\n class=\"gl-leading-normal\"\n data-testid=\"source-branch-deleted-text\"\n >\n {{ isMerged ? sourceBranchMergedText : sourceBranchPreMergeText }}\n </li>\n <li v-if=\"mr.relatedLinks\" class=\"gl-leading-normal\">\n <related-links\n :state=\"mr.state\"\n :related-links=\"mr.relatedLinks\"\n :show-assign-to-me=\"false\"\n class=\"mr-ready-merge-related-links gl-inline\"\n />\n </li>\n <li v-if=\"state.autoMergeEnabled\" class=\"gl-leading-normal\">\n {{ s__('mrWidget|Auto-merge enabled') }}\n </li>\n </ul>\n </div>\n </div>\n </div>\n </div>\n <merge-immediately-confirmation-dialog\n v-if=\"mr.mergeImmediatelyDocsPath\"\n ref=\"confirmationDialog\"\n :docs-url=\"mr.mergeImmediatelyDocsPath\"\n @mergeImmediately=\"onMergeImmediatelyConfirmation\"\n />\n <merge-train-failed-pipeline-confirmation-dialog\n :visible=\"isPipelineFailedModalVisibleMergeTrain\"\n @startMergeTrain=\"onStartMergeTrainConfirmation\"\n @cancel=\"isPipelineFailedModalVisibleMergeTrain = false\"\n />\n <merge-train-restart-train-confirmation-dialog\n v-if=\"isSkipMergeTrainAvailable\"\n :visible=\"isMergeTrainBeingForceMerged\"\n :merge-train-type=\"mergeTrainMergeType\"\n @processMergeTrainMerge=\"processMergeTrain\"\n @cancel=\"isMergeTrainBeingForceMerged = false\"\n />\n <merge-failed-pipeline-confirmation-dialog\n :visible=\"isPipelineFailedModalVisibleNormalMerge\"\n :target-project-id=\"mr.targetProjectId\"\n :iid=\"mr.iid\"\n @mergeWithFailedPipeline=\"onMergeWithFailedPipelineConfirmation\"\n @cancel=\"isPipelineFailedModalVisibleNormalMerge = false\"\n />\n </template>\n </div>\n</template>\n","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!./ready_to_merge.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!./ready_to_merge.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ready_to_merge.vue?vue&type=template&id=761c54ba\"\nimport script from \"./ready_to_merge.vue?vue&type=script&lang=js\"\nexport * from \"./ready_to_merge.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('div',{staticClass:\"gl-border-t gl-border-t-section gl-bg-subtle gl-pl-7\",class:{ 'gl-bg-subtle': _vm.isNeitherClosedNorMerged },attrs:{\"data-testid\":\"ready_to_merge_state\"}},[(_vm.loading)?_c('div',{staticClass:\"mr-widget-body\"},[_c('div',{staticClass:\"mr-ready-to-merge-loader gl-w-full\"},[_c('gl-skeleton-loader',{attrs:{\"width\":418,\"height\":86}},[_c('rect',{attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"144\",\"height\":\"20\",\"rx\":\"4\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"x\":\"0\",\"y\":\"26\",\"width\":\"100\",\"height\":\"16\",\"rx\":\"4\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"x\":\"108\",\"y\":\"26\",\"width\":\"100\",\"height\":\"16\",\"rx\":\"4\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"x\":\"0\",\"y\":\"48\",\"width\":\"130\",\"height\":\"16\",\"rx\":\"4\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"x\":\"0\",\"y\":\"70\",\"width\":\"80\",\"height\":\"16\",\"rx\":\"4\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"x\":\"88\",\"y\":\"70\",\"width\":\"90\",\"height\":\"16\",\"rx\":\"4\"}})])],1)]):[_c('div',{staticClass:\"mr-widget-body mr-widget-body-ready-merge media gl-flex gl-items-center\"},[_c('div',{staticClass:\"media-body\"},[_c('div',{staticClass:\"mr-widget-body-controls gl-flex gl-flex-wrap gl-items-center\"},[(_vm.shouldShowMergeControls)?[_c('div',{staticClass:\"gl-flex gl-w-full gl-flex-col gl-flex-wrap md:gl-flex-row md:gl-items-center\"},[(_vm.canRemoveSourceBranch)?_c('gl-form-checkbox',{staticClass:\"js-remove-source-branch-checkbox gl-mr-5 gl-flex gl-items-center\",attrs:{\"id\":\"remove-source-branch-input\",\"disabled\":_vm.isRemoveSourceBranchButtonDisabled,\"checked\":_vm.removeSourceBranch,\"data-testid\":\"delete-source-branch-checkbox\"},on:{\"change\":_vm.updateRemoveSourceBranchSettings}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Delete source branch'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.shouldShowSquashBeforeMerge)?_c('squash-before-merge',{staticClass:\"gl-mr-5\",attrs:{\"help-path\":_vm.mr.squashBeforeMergeHelpPath,\"is-disabled\":_vm.isSquashReadOnly},model:{value:(_vm.squashBeforeMerge),callback:function ($$v) {_vm.squashBeforeMerge=$$v},expression:\"squashBeforeMerge\"}}):_vm._e(),_vm._v(\" \"),(_vm.shouldShowSquashEdit || _vm.shouldShowMergeEdit)?_c('gl-form-checkbox',{attrs:{\"data-testid\":\"widget_edit_commit_message\"},model:{value:(_vm.editCommitMessage),callback:function ($$v) {_vm.editCommitMessage=$$v},expression:\"editCommitMessage\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Edit commit message'))+\"\\n \")]):_vm._e()],1),_vm._v(\" \"),(_vm.editCommitMessage)?_c('div',{staticClass:\"gl-w-full\",attrs:{\"data-testid\":\"edit_commit_message\"}},[_c('ul',{staticClass:\"border-top commits-list flex-list gl-list-none gl-p-0 gl-pt-4\"},[(_vm.shouldShowSquashEdit)?_c('commit-edit',{staticClass:\"!gl-m-0 !gl-p-0\",attrs:{\"label\":_vm.__('Squash commit message'),\"value\":_vm.squashCommitMessage,\"input-id\":\"squash-message-edit\"},on:{\"input\":_vm.setSquashCommitMessage},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('commit-message-dropdown',{attrs:{\"ai-commit-message-enabled\":_vm.mr.aiCommitMessageEnabled,\"mr-id\":_vm.mr.id,\"commits\":_vm.commits},on:{\"append\":(val) => _vm.appendCommitMessage('squashCommit', val),\"input\":_vm.setSquashCommitMessage}})]},proxy:true}],null,false,2580512050)}):_vm._e(),_vm._v(\" \"),(_vm.shouldShowMergeEdit)?_c('commit-edit',{staticClass:\"!gl-m-0 !gl-p-0\",attrs:{\"label\":_vm.__('Merge commit message'),\"input-id\":\"merge-message-edit\",\"data-testid\":\"merge-commit-message\"},on:{\"input\":_vm.setCommitMessage},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [(_vm.mr.aiCommitMessageEnabled)?_c('ai-commit-message',{attrs:{\"id\":_vm.mr.id},on:{\"update\":(val) => _vm.appendCommitMessage('commit', val)}}):_vm._e()]},proxy:true}],null,false,3871858321),model:{value:(_vm.commitMessage),callback:function ($$v) {_vm.commitMessage=$$v},expression:\"commitMessage\"}}):_vm._e(),_vm._v(\" \"),_c('li',{staticClass:\"!gl-m-0 !gl-p-0\"},[_c('p',{staticClass:\"form-text gl-text-subtle\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.commitTemplateHintText},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{staticClass:\"inline-link\",attrs:{\"href\":_vm.commitTemplateHelpPage,\"target\":\"_blank\"}},[_vm._v(_vm._s(content))])]}}],null,false,1357541771)})],1)])],1)]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"mr-widget-merge-details gl-mb-3 gl-w-full gl-text-subtle\"},[(_vm.sourceHasDivergedFromTarget)?[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.sourceDivergedFromTargetText},scopedSlots:_vm._u([{key:\"link\",fn:function(){return [_c('gl-link',{attrs:{\"href\":_vm.mr.targetBranchPath}},[_vm._v(_vm._s(_vm.$options.i18n.divergedCommits(_vm.mr.divergedCommitsCount)))])]},proxy:true}],null,false,808100932)}),_vm._v(\"\\n ·\\n \")]:_vm._e(),_vm._v(\" \"),_c('added-commit-message',{attrs:{\"is-squash-enabled\":_vm.squashBeforeMerge,\"is-fast-forward-enabled\":!_vm.shouldShowMergeEdit,\"commits-count\":_vm.commitsCount,\"target-branch\":_vm.state.targetBranch}}),_vm._v(\" \"),(_vm.mr.relatedLinks)?[_vm._v(\"\\n ·\\n \"),_c('related-links',{staticClass:\"mr-ready-merge-related-links gl-inline\",attrs:{\"state\":_vm.mr.state,\"related-links\":_vm.mr.relatedLinks,\"show-assign-to-me\":false,\"diverged-commits-count\":_vm.mr.divergedCommitsCount,\"target-branch-path\":_vm.mr.targetBranchPath}})]:_vm._e()],2),_vm._v(\" \"),_c('gl-button-group',{staticClass:\"gl-self-start\"},[_c('gl-button',{staticClass:\"accept-merge-request\",attrs:{\"size\":\"medium\",\"category\":\"primary\",\"data-testid\":\"merge-button\",\"variant\":\"confirm\",\"disabled\":_vm.isMergeButtonDisabled,\"loading\":_vm.isMakingRequest},on:{\"click\":function($event){return _vm.handleMergeButtonClick(_vm.isAutoMergeAvailable)}}},[_vm._v(_vm._s(_vm.mergeButtonText))]),_vm._v(\" \"),(_vm.shouldShowMergeImmediatelyDropdown)?_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.focus\",value:(_vm.__('Select merge moment')),expression:\"__('Select merge moment')\",modifiers:{\"hover\":true,\"focus\":true}}],attrs:{\"disabled\":_vm.isMergeButtonDisabled,\"variant\":\"confirm\",\"data-testid\":\"merge-immediately-dropdown\",\"toggle-class\":\"btn-icon js-merge-moment\",\"toggle-text\":_vm.__('Select a merge moment'),\"text-sr-only\":\"\"}},[(\n !_vm.shouldDisplayMergeImmediatelyDropdownOptions || !_vm.isSkipMergeTrainAvailable\n )?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"merge-immediately-button\"},on:{\"action\":_vm.handleMergeImmediatelyButtonClick},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.__('Merge immediately'))+\" \")]},proxy:true}],null,false,3098986359)}):_vm._e(),_vm._v(\" \"),(_vm.displaySkipMergeTrainOptions)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"mt-merge-now-restart-button\"},on:{\"action\":function($event){return _vm.handleMergeTrainMergeImmediatelyButtonClick(_vm.$options.MT_RESTART_TRAIN)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('strong',[_vm._v(_vm._s(_vm.__(`Merge now and restart train`)))]),_vm._v(\" \"),_c('p',{staticClass:\"gl-mb-0 gl-text-sm gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Restart merge train pipelines with the merged changes.'))+\"\\n \")])]},proxy:true}],null,false,2314009729)}):_vm._e(),_vm._v(\" \"),(_vm.displaySkipMergeTrainOptions)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"mt-merge-now-skip-restart-button\"},on:{\"action\":function($event){return _vm.handleMergeTrainMergeImmediatelyButtonClick(_vm.$options.MT_SKIP_TRAIN)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('strong',[_vm._v(_vm._s(_vm.__(`Merge now and don't restart train`)))]),_vm._v(\" \"),_c('p',{staticClass:\"gl-mb-0 gl-text-sm gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Merge train pipelines continue without the merged changes.'))+\"\\n \")])]},proxy:true}],null,false,1837323087)}):_vm._e()],1):_vm._e()],1),_vm._v(\" \"),(_vm.showAutoMergeHelperText)?[_c('div',{staticClass:\"gl-ml-4 gl-text-sm gl-text-subtle\",attrs:{\"data-testid\":\"auto-merge-helper-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.autoMergeHelperText)+\"\\n \")]),_vm._v(\" \"),_c('help-popover',{staticClass:\"gl-ml-2 gl-inline-flex\",attrs:{\"options\":_vm.autoMergeHelpPopoverOptions,\"data-testid\":\"auto-merge-helper-text-icon\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.autoMergePopoverSettings.bodyText},scopedSlots:_vm._u([{key:\"link\",fn:function({ content }){return [_c('gl-link',{staticClass:\"gl-text-sm\",attrs:{\"href\":_vm.autoMergePopoverSettings.helpLink,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}}],null,false,407787336)})],1)]:_vm._e()]:_c('div',{staticClass:\"mr-widget-merge-details -gl-order-1 gl-w-full\",attrs:{\"data-testid\":\"merged-status-content\"}},[(_vm.showMergeDetailsHeader)?_c('p',{staticClass:\"gl-mb-2 gl-text-default\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Merge details'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('ul',{staticClass:\"gl-mb-0 gl-ml-3 gl-pl-4 gl-text-subtle\"},[(_vm.sourceHasDivergedFromTarget)?_c('li',{staticClass:\"gl-leading-normal\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.sourceDivergedFromTargetText},scopedSlots:_vm._u([{key:\"link\",fn:function(){return [_c('gl-link',{attrs:{\"href\":_vm.mr.targetBranchPath}},[_vm._v(_vm._s(_vm.$options.i18n.divergedCommits(_vm.mr.divergedCommitsCount)))])]},proxy:true}],null,false,808100932)})],1):_vm._e(),_vm._v(\" \"),_c('li',{staticClass:\"gl-leading-normal\"},[_c('added-commit-message',{attrs:{\"state\":_vm.mr.state,\"merge-commit-sha\":_vm.mr.shortMergeCommitSha,\"is-squash-enabled\":_vm.squashBeforeMerge,\"is-fast-forward-enabled\":!_vm.shouldShowMergeEdit,\"commits-count\":_vm.commitsCount,\"target-branch\":_vm.state.targetBranch,\"merge-commit-path\":_vm.mr.mergeCommitPath}})],1),_vm._v(\" \"),(_vm.isNotClosed)?_c('li',{staticClass:\"gl-leading-normal\",attrs:{\"data-testid\":\"source-branch-deleted-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.isMerged ? _vm.sourceBranchMergedText : _vm.sourceBranchPreMergeText)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.mr.relatedLinks)?_c('li',{staticClass:\"gl-leading-normal\"},[_c('related-links',{staticClass:\"mr-ready-merge-related-links gl-inline\",attrs:{\"state\":_vm.mr.state,\"related-links\":_vm.mr.relatedLinks,\"show-assign-to-me\":false}})],1):_vm._e(),_vm._v(\" \"),(_vm.state.autoMergeEnabled)?_c('li',{staticClass:\"gl-leading-normal\"},[_vm._v(\"\\n \"+_vm._s(_vm.s__('mrWidget|Auto-merge enabled'))+\"\\n \")]):_vm._e()])])],2)])]),_vm._v(\" \"),(_vm.mr.mergeImmediatelyDocsPath)?_c('merge-immediately-confirmation-dialog',{ref:\"confirmationDialog\",attrs:{\"docs-url\":_vm.mr.mergeImmediatelyDocsPath},on:{\"mergeImmediately\":_vm.onMergeImmediatelyConfirmation}}):_vm._e(),_vm._v(\" \"),_c('merge-train-failed-pipeline-confirmation-dialog',{attrs:{\"visible\":_vm.isPipelineFailedModalVisibleMergeTrain},on:{\"startMergeTrain\":_vm.onStartMergeTrainConfirmation,\"cancel\":function($event){_vm.isPipelineFailedModalVisibleMergeTrain = false}}}),_vm._v(\" \"),(_vm.isSkipMergeTrainAvailable)?_c('merge-train-restart-train-confirmation-dialog',{attrs:{\"visible\":_vm.isMergeTrainBeingForceMerged,\"merge-train-type\":_vm.mergeTrainMergeType},on:{\"processMergeTrainMerge\":_vm.processMergeTrain,\"cancel\":function($event){_vm.isMergeTrainBeingForceMerged = false}}}):_vm._e(),_vm._v(\" \"),_c('merge-failed-pipeline-confirmation-dialog',{attrs:{\"visible\":_vm.isPipelineFailedModalVisibleNormalMerge,\"target-project-id\":_vm.mr.targetProjectId,\"iid\":_vm.mr.iid},on:{\"mergeWithFailedPipeline\":_vm.onMergeWithFailedPipelineConfirmation,\"cancel\":function($event){_vm.isPipelineFailedModalVisibleNormalMerge = false}}})]],2)\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!./sha_mismatch.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!./sha_mismatch.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport BoldText from '~/vue_merge_request_widget/components/bold_text.vue';\nimport { I18N_SHA_MISMATCH } from '../../i18n';\nimport StateContainer from '../state_container.vue';\n\nexport default {\n name: 'ShaMismatch',\n components: {\n BoldText,\n GlButton,\n StateContainer,\n },\n i18n: {\n I18N_SHA_MISMATCH,\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <state-container status=\"failed\" is-collapsible>\n <span class=\"!gl-ml-0 gl-grow !gl-text-default md:gl-mr-3\" data-testid=\"head-mismatch-content\">\n <bold-text :message=\"$options.i18n.I18N_SHA_MISMATCH.warningMessage\" />\n </span>\n <template #actions>\n <gl-button\n data-testid=\"action-button\"\n size=\"small\"\n category=\"primary\"\n variant=\"confirm\"\n class=\"gl-self-start\"\n :href=\"mr.mergeRequestDiffsPath\"\n >\n {{ $options.i18n.I18N_SHA_MISMATCH.actionButtonLabel }}\n </gl-button>\n </template>\n </state-container>\n</template>\n","import { render, staticRenderFns } from \"./sha_mismatch.vue?vue&type=template&id=6b14be7e\"\nimport script from \"./sha_mismatch.vue?vue&type=script&lang=js\"\nexport * from \"./sha_mismatch.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('state-container',{attrs:{\"status\":\"failed\",\"is-collapsible\":\"\"},scopedSlots:_vm._u([{key:\"actions\",fn:function(){return [_c('gl-button',{staticClass:\"gl-self-start\",attrs:{\"data-testid\":\"action-button\",\"size\":\"small\",\"category\":\"primary\",\"variant\":\"confirm\",\"href\":_vm.mr.mergeRequestDiffsPath}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.I18N_SHA_MISMATCH.actionButtonLabel)+\"\\n \")])]},proxy:true}])},[_c('span',{staticClass:\"!gl-ml-0 gl-grow !gl-text-default md:gl-mr-3\",attrs:{\"data-testid\":\"head-mismatch-content\"}},[_c('bold-text',{attrs:{\"message\":_vm.$options.i18n.I18N_SHA_MISMATCH.warningMessage}})],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!./app.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!./app.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf } from '@gitlab/ui';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport StateContainer from '../state_container.vue';\n\nexport default {\n components: {\n GlSprintf,\n StateContainer,\n MrSecurityWidget: () =>\n import('~/vue_merge_request_widget/widgets/security_reports/mr_widget_security_reports.vue'),\n MrTestReportWidget: () => import('~/vue_merge_request_widget/widgets/test_report/index.vue'),\n MrTerraformWidget: () => import('~/vue_merge_request_widget/widgets/terraform/index.vue'),\n MrCodeQualityWidget: () => import('~/vue_merge_request_widget/widgets/code_quality/index.vue'),\n MrAccessibilityWidget: () =>\n import('~/vue_merge_request_widget/widgets/accessibility/index.vue'),\n },\n mixins: [glFeatureFlagsMixin()],\n props: {\n mr: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n collapsed: this.glFeatures.mrReportsTab,\n };\n },\n computed: {\n testReportWidget() {\n return this.mr.testResultsPath && 'MrTestReportWidget';\n },\n\n terraformPlansWidget() {\n return this.mr.terraformReportsPath && 'MrTerraformWidget';\n },\n\n codeQualityWidget() {\n return this.mr.codequalityReportsPath ? 'MrCodeQualityWidget' : undefined;\n },\n\n accessibilityWidget() {\n return this.mr.accessibilityReportPath ? 'MrAccessibilityWidget' : undefined;\n },\n\n widgets() {\n return [\n this.codeQualityWidget,\n this.testReportWidget,\n this.terraformPlansWidget,\n 'MrSecurityWidget',\n this.accessibilityWidget,\n ].filter((w) => w);\n },\n },\n};\n</script>\n\n<template>\n <section\n v-if=\"widgets.length\"\n role=\"region\"\n :aria-label=\"__('Merge request reports')\"\n data-testid=\"mr-widget-app\"\n class=\"mr-section-container\"\n >\n <state-container\n v-if=\"glFeatures.mrReportsTab\"\n status=\"success\"\n is-collapsible\n collapse-on-desktop\n :collapsed=\"collapsed\"\n :expand-details-tooltip=\"__('Expand merge request reports')\"\n :collapse-details-tooltip=\"__('Collapse merge request reports')\"\n @toggle=\"collapsed = !collapsed\"\n >\n <strong>\n <gl-sprintf :message=\"__('Merge reports (%{reportsCount}):')\">\n <template #reportsCount>{{ widgets.length }}</template>\n </gl-sprintf>\n </strong>\n </state-container>\n <div\n v-show=\"!collapsed\"\n data-testid=\"reports-widgets-container\"\n :class=\"{\n 'gl-border-t gl-relative gl-border-t-section gl-bg-subtle': glFeatures.mrReportsTab,\n }\"\n >\n <component\n :is=\"widget\"\n v-for=\"(widget, index) in widgets\"\n :key=\"widget.name || index\"\n :mr=\"mr\"\n class=\"mr-widget-section\"\n :class=\"{ 'gl-border-t gl-border-t-section': index > 0 }\"\n />\n </div>\n </section>\n</template>\n","import { render, staticRenderFns } from \"./app.vue?vue&type=template&id=1d02caf0\"\nimport script from \"./app.vue?vue&type=script&lang=js\"\nexport * from \"./app.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 (_vm.widgets.length)?_c('section',{staticClass:\"mr-section-container\",attrs:{\"role\":\"region\",\"aria-label\":_vm.__('Merge request reports'),\"data-testid\":\"mr-widget-app\"}},[(_vm.glFeatures.mrReportsTab)?_c('state-container',{attrs:{\"status\":\"success\",\"is-collapsible\":\"\",\"collapse-on-desktop\":\"\",\"collapsed\":_vm.collapsed,\"expand-details-tooltip\":_vm.__('Expand merge request reports'),\"collapse-details-tooltip\":_vm.__('Collapse merge request reports')},on:{\"toggle\":function($event){_vm.collapsed = !_vm.collapsed}}},[_c('strong',[_c('gl-sprintf',{attrs:{\"message\":_vm.__('Merge reports (%{reportsCount}):')},scopedSlots:_vm._u([{key:\"reportsCount\",fn:function(){return [_vm._v(_vm._s(_vm.widgets.length))]},proxy:true}],null,false,2947337955)})],1)]):_vm._e(),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.collapsed),expression:\"!collapsed\"}],class:{\n 'gl-border-t gl-relative gl-border-t-section gl-bg-subtle': _vm.glFeatures.mrReportsTab,\n },attrs:{\"data-testid\":\"reports-widgets-container\"}},_vm._l((_vm.widgets),function(widget,index){return _c(widget,{key:widget.name || index,tag:\"component\",staticClass:\"mr-widget-section\",class:{ 'gl-border-t gl-border-t-section': index > 0 },attrs:{\"mr\":_vm.mr}})}),1)],1):_vm._e()\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!./new_ready_to_merge.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!./new_ready_to_merge.vue?vue&type=script&lang=js\"","<script>\nimport mergeRequestQueryVariablesMixin from '../../mixins/merge_request_query_variables';\nimport readyToMergeQuery from '../../queries/states/new_ready_to_merge.query.graphql';\nimport StatusIcon from '../mr_widget_status_icon.vue';\n\nexport default {\n apollo: {\n canMerge: {\n query: readyToMergeQuery,\n skip() {\n return !this.mr;\n },\n variables() {\n return this.mergeRequestQueryVariables;\n },\n update: (data) => data?.project?.mergeRequest?.userPermissions?.canMerge,\n },\n },\n components: {\n StatusIcon,\n },\n mixins: [mergeRequestQueryVariablesMixin],\n props: {\n mr: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n canMerge: null,\n };\n },\n};\n</script>\n\n<template>\n <div class=\"mr-widget-body media\">\n <status-icon status=\"success\" />\n <p class=\"media-body !gl-mb-0 gl-mt-1 gl-font-bold !gl-text-default\">\n <template v-if=\"canMerge\">\n {{ __('Ready to merge!') }}\n </template>\n <template v-else>\n {{ __('Ready to merge by members who can write to the target branch.') }}\n </template>\n </p>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./new_ready_to_merge.vue?vue&type=template&id=4ab12257\"\nimport script from \"./new_ready_to_merge.vue?vue&type=script&lang=js\"\nexport * from \"./new_ready_to_merge.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('div',{staticClass:\"mr-widget-body media\"},[_c('status-icon',{attrs:{\"status\":\"success\"}}),_vm._v(\" \"),_c('p',{staticClass:\"media-body !gl-mb-0 gl-mt-1 gl-font-bold !gl-text-default\"},[(_vm.canMerge)?[_vm._v(\"\\n \"+_vm._s(_vm.__('Ready to merge!'))+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.__('Ready to merge by members who can write to the target branch.'))+\"\\n \")]],2)],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!./merge_checks.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!./merge_checks.vue?vue&type=script&lang=js\"","<script>\nimport { GlSkeletonLoader } from '@gitlab/ui';\nimport { __, n__, sprintf } from '~/locale';\nimport { TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport {\n COMPONENTS,\n FAILURE_REASONS,\n} from '~/vue_merge_request_widget/components/checks/constants';\nimport mergeRequestQueryVariablesMixin from '../mixins/merge_request_query_variables';\nimport mergeChecksQuery from '../queries/merge_checks.query.graphql';\nimport mergeChecksSubscription from '../queries/merge_checks.subscription.graphql';\nimport StateContainer from './state_container.vue';\nimport BoldText from './bold_text.vue';\n\nexport default {\n apollo: {\n state: {\n query: mergeChecksQuery,\n skip() {\n return !this.mr;\n },\n variables() {\n return this.mergeRequestQueryVariables;\n },\n update: (data) => data?.project?.mergeRequest,\n subscribeToMore: {\n document() {\n return mergeChecksSubscription;\n },\n skip() {\n return !this.mr?.id;\n },\n variables() {\n return {\n issuableId: convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.mr?.id),\n };\n },\n updateQuery(\n _,\n {\n subscriptionData: {\n data: { mergeRequestMergeStatusUpdated },\n },\n },\n ) {\n if (mergeRequestMergeStatusUpdated) {\n this.state = mergeRequestMergeStatusUpdated;\n }\n },\n },\n },\n },\n components: {\n GlSkeletonLoader,\n StateContainer,\n BoldText,\n },\n mixins: [mergeRequestQueryVariablesMixin],\n props: {\n mr: {\n type: Object,\n required: true,\n },\n service: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n collapsed: true,\n state: {},\n };\n },\n computed: {\n isLoading() {\n return this.$apollo.queries.state.loading;\n },\n statusIcon() {\n if (this.warningChecks.length) {\n return 'warning';\n }\n\n if (this.checkingMergeChecks.length) {\n return 'loading';\n }\n\n return this.failedChecks.length ? 'failed' : 'success';\n },\n summaryText() {\n if (this.warningChecks.length) {\n return this.state?.userPermissions?.canMerge\n ? __('%{boldStart}Merge with caution%{boldEnd}: Override added')\n : __('%{boldStart}Ready to be merged with caution%{boldEnd}: Override added');\n }\n\n if (this.checkingMergeChecks.length) {\n return __('Checking if merge request can be merged...');\n }\n\n if (!this.failedChecks.length) {\n return this.state?.userPermissions?.canMerge\n ? __('%{boldStart}Ready to merge!%{boldEnd}')\n : __(\n '%{boldStart}Ready to merge by members who can write to the target branch.%{boldEnd}',\n );\n }\n\n return sprintf(\n n__(\n '%{boldStart}Merge blocked:%{boldEnd} %{count} check failed',\n '%{boldStart}Merge blocked:%{boldEnd} %{count} checks failed',\n this.failedChecks.length,\n ),\n { count: this.failedChecks.length },\n );\n },\n checks() {\n return this.state?.mergeabilityChecks || [];\n },\n sortedChecks() {\n const order = ['CHECKING', 'FAILED', 'WARNING', 'SUCCESS'];\n\n return [...this.checks]\n .filter((s) => {\n if (this.isStatusInactive(s) || !this.hasMessage(s)) return false;\n\n return this.collapsed ? this.isStatusFailed(s) || this.isStatusChecking(s) : true;\n })\n .sort((a, b) => order.indexOf(a.status) - order.indexOf(b.status));\n },\n checkingMergeChecks() {\n return this.checks.filter((c) => this.isStatusChecking(c));\n },\n failedChecks() {\n return this.checks.filter((c) => this.isStatusFailed(c));\n },\n warningChecks() {\n return this.checks.filter((c) => this.isStatusWarning(c));\n },\n showChecks() {\n return this.failedChecks.length > 0 || this.checkingMergeChecks.length || !this.collapsed;\n },\n },\n methods: {\n toggleCollapsed() {\n this.collapsed = !this.collapsed;\n },\n checkComponent(check) {\n return COMPONENTS[check.identifier.toLowerCase()] || COMPONENTS.default;\n },\n hasMessage(check) {\n return Boolean(FAILURE_REASONS[check.identifier.toLowerCase()]);\n },\n isStatusInactive(check) {\n return check.status === 'INACTIVE';\n },\n isStatusFailed(check) {\n return check.status === 'FAILED';\n },\n isStatusWarning(check) {\n return check.status === 'WARNING';\n },\n isStatusChecking(check) {\n return check.status === 'CHECKING';\n },\n },\n};\n</script>\n\n<template>\n <div>\n <state-container\n :is-loading=\"isLoading\"\n :status=\"statusIcon\"\n is-collapsible\n collapse-on-desktop\n :collapsed=\"collapsed\"\n :expand-details-tooltip=\"__('Expand merge checks')\"\n :collapse-details-tooltip=\"__('Collapse merge checks')\"\n @toggle=\"toggleCollapsed\"\n >\n <template v-if=\"isLoading\" #loading>\n <gl-skeleton-loader :width=\"334\" :height=\"24\">\n <rect x=\"0\" y=\"0\" width=\"24\" height=\"24\" rx=\"4\" />\n <rect x=\"32\" y=\"2\" width=\"302\" height=\"20\" rx=\"4\" />\n </gl-skeleton-loader>\n </template>\n <template v-if=\"!isLoading\" #default>\n <bold-text :message=\"summaryText\" />\n </template>\n </state-container>\n <div\n v-if=\"showChecks\"\n class=\"gl-border-t gl-relative gl-border-t-section gl-bg-subtle\"\n data-testid=\"merge-checks-full\"\n >\n <div>\n <component\n :is=\"checkComponent(check)\"\n v-for=\"(check, index) in sortedChecks\"\n :key=\"index\"\n class=\"gl-pl-9 gl-pr-4\"\n :class=\"{\n 'gl-border-b gl-border-b-section': index !== sortedChecks.length - 1,\n }\"\n :check=\"check\"\n :mr=\"mr\"\n :service=\"service\"\n data-testid=\"merge-check\"\n />\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./merge_checks.vue?vue&type=template&id=14c3ecdc\"\nimport script from \"./merge_checks.vue?vue&type=script&lang=js\"\nexport * from \"./merge_checks.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('div',[_c('state-container',{attrs:{\"is-loading\":_vm.isLoading,\"status\":_vm.statusIcon,\"is-collapsible\":\"\",\"collapse-on-desktop\":\"\",\"collapsed\":_vm.collapsed,\"expand-details-tooltip\":_vm.__('Expand merge checks'),\"collapse-details-tooltip\":_vm.__('Collapse merge checks')},on:{\"toggle\":_vm.toggleCollapsed},scopedSlots:_vm._u([(_vm.isLoading)?{key:\"loading\",fn:function(){return [_c('gl-skeleton-loader',{attrs:{\"width\":334,\"height\":24}},[_c('rect',{attrs:{\"x\":\"0\",\"y\":\"0\",\"width\":\"24\",\"height\":\"24\",\"rx\":\"4\"}}),_vm._v(\" \"),_c('rect',{attrs:{\"x\":\"32\",\"y\":\"2\",\"width\":\"302\",\"height\":\"20\",\"rx\":\"4\"}})])]},proxy:true}:null,(!_vm.isLoading)?{key:\"default\",fn:function(){return [_c('bold-text',{attrs:{\"message\":_vm.summaryText}})]},proxy:true}:null],null,true)}),_vm._v(\" \"),(_vm.showChecks)?_c('div',{staticClass:\"gl-border-t gl-relative gl-border-t-section gl-bg-subtle\",attrs:{\"data-testid\":\"merge-checks-full\"}},[_c('div',_vm._l((_vm.sortedChecks),function(check,index){return _c(_vm.checkComponent(check),{key:index,tag:\"component\",staticClass:\"gl-pl-9 gl-pr-4\",class:{\n 'gl-border-b gl-border-b-section': index !== _vm.sortedChecks.length - 1,\n },attrs:{\"check\":check,\"mr\":_vm.mr,\"service\":_vm.service,\"data-testid\":\"merge-check\"}})}),1)]):_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!./mr_widget_options.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!./mr_widget_options.vue?vue&type=script&lang=js\"","<script>\nimport { isEmpty, clamp } from 'lodash';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport MrWidgetApprovals from 'ee_else_ce/vue_merge_request_widget/components/approvals/approvals.vue';\nimport MRWidgetService from 'ee_else_ce/vue_merge_request_widget/services/mr_widget_service';\nimport MRWidgetStore from 'ee_else_ce/vue_merge_request_widget/stores/mr_widget_store';\nimport { stateToComponentMap as classState } from 'ee_else_ce/vue_merge_request_widget/stores/state_maps';\nimport { createAlert } from '~/alert';\nimport { STATUS_CLOSED, STATUS_MERGED } from '~/issues/constants';\nimport notify from '~/lib/utils/notify';\nimport { sprintf, s__, __ } from '~/locale';\nimport SmartInterval from '~/smart_interval';\nimport { TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { setFaviconOverlay } from '~/lib/utils/favicon';\nimport Loading from './components/loading.vue';\nimport MrWidgetAlertMessage from './components/mr_widget_alert_message.vue';\nimport MrWidgetPipelineContainer from './components/mr_widget_pipeline_container.vue';\nimport WidgetSuggestPipeline from './components/mr_widget_suggest_pipeline.vue';\nimport MrWidgetMigrateJenkins from './components/mr_widget_migrate_jenkins.vue';\nimport SourceBranchRemovalStatus from './components/source_branch_removal_status.vue';\nimport ArchivedState from './components/states/mr_widget_archived.vue';\nimport MrWidgetAutoMergeEnabled from './components/states/mr_widget_auto_merge_enabled.vue';\nimport AutoMergeFailed from './components/states/mr_widget_auto_merge_failed.vue';\nimport CheckingState from './components/states/mr_widget_checking.vue';\nimport PreparingState from './components/states/mr_widget_preparing.vue';\nimport ClosedState from './components/states/mr_widget_closed.vue';\nimport FailedToMerge from './components/states/mr_widget_failed_to_merge.vue';\nimport MergedState from './components/states/mr_widget_merged.vue';\nimport MergingState from './components/states/mr_widget_merging.vue';\nimport MissingBranchState from './components/states/mr_widget_missing_branch.vue';\nimport NothingToMergeState from './components/states/nothing_to_merge.vue';\nimport ReadyToMergeState from './components/states/ready_to_merge.vue';\nimport ShaMismatch from './components/states/sha_mismatch.vue';\nimport WidgetContainer from './components/widget/app.vue';\nimport {\n STATE_MACHINE,\n stateToComponentMap,\n STATE_QUERY_POLLING_INTERVAL_DEFAULT,\n STATE_QUERY_POLLING_INTERVAL_BACKOFF,\n FOUR_MINUTES_IN_MS,\n} from './constants';\nimport eventHub from './event_hub';\nimport mergeRequestQueryVariablesMixin from './mixins/merge_request_query_variables';\nimport getStateQuery from './queries/get_state.query.graphql';\nimport getStateSubscription from './queries/get_state.subscription.graphql';\nimport MrWidgetReadyToMerge from './components/states/new_ready_to_merge.vue';\nimport MergeChecks from './components/merge_checks.vue';\n\nexport default {\n // False positive i18n lint: https://gitlab.com/gitlab-org/frontend/eslint-plugin-i18n/issues/25\n // eslint-disable-next-line @gitlab/require-i18n-strings\n name: 'MRWidget',\n directives: {\n SafeHtml,\n },\n components: {\n Loading,\n WidgetContainer,\n MrWidgetSuggestPipeline: WidgetSuggestPipeline,\n MrWidgetMigrateJenkins,\n MrWidgetPipelineContainer,\n MrWidgetAlertMessage,\n MrWidgetMerged: MergedState,\n MrWidgetClosed: ClosedState,\n MrWidgetMerging: MergingState,\n MrWidgetFailedToMerge: FailedToMerge,\n MrWidgetArchived: ArchivedState,\n MrWidgetNothingToMerge: NothingToMergeState,\n MrWidgetMissingBranch: MissingBranchState,\n MrWidgetReadyToMerge,\n ShaMismatch,\n MrWidgetChecking: CheckingState,\n MrWidgetPreparing: PreparingState,\n MrWidgetAutoMergeEnabled,\n MrWidgetAutoMergeFailed: AutoMergeFailed,\n SourceBranchRemovalStatus,\n MrWidgetApprovals,\n ReadyToMerge: ReadyToMergeState,\n MergeChecks,\n },\n apollo: {\n state: {\n query: getStateQuery,\n notifyOnNetworkStatusChange: true,\n manual: true,\n skip() {\n return !this.mr;\n },\n variables() {\n return this.mergeRequestQueryVariables;\n },\n pollInterval() {\n return this.pollInterval;\n },\n result(response) {\n // 7 is the value for when the network status is ready\n if (response.networkStatus !== 7) return;\n\n this.pollInterval = this.apolloStateQueryPollingInterval;\n\n if (response.data?.project) {\n this.mr.setGraphqlData(response.data.project);\n this.loading = false;\n }\n\n this.checkStatus(undefined, undefined, false);\n },\n error() {\n this.pollInterval = null;\n },\n subscribeToMore: {\n document() {\n return getStateSubscription;\n },\n skip() {\n return !this.mr?.id || this.loading;\n },\n variables() {\n return {\n issuableId: convertToGraphQLId(TYPENAME_MERGE_REQUEST, this.mr?.id),\n };\n },\n updateQuery(\n _,\n {\n subscriptionData: {\n data: { mergeRequestMergeStatusUpdated },\n },\n },\n ) {\n if (mergeRequestMergeStatusUpdated) {\n this.mr.setGraphqlSubscriptionData(mergeRequestMergeStatusUpdated);\n }\n },\n },\n },\n },\n mixins: [mergeRequestQueryVariablesMixin],\n props: {\n mrData: {\n type: Object,\n required: false,\n default: null,\n },\n },\n data() {\n const store = this.mrData && new MRWidgetStore(this.mrData);\n\n return {\n mr: store,\n state: store && store.state,\n service: store && this.createService(store),\n machineState: store?.machineValue || STATE_MACHINE.definition.initial,\n loading: true,\n recomputeComponentName: 0,\n issuableId: false,\n startingPollInterval: STATE_QUERY_POLLING_INTERVAL_DEFAULT,\n pollInterval: STATE_QUERY_POLLING_INTERVAL_DEFAULT,\n };\n },\n computed: {\n apolloStateQueryMaxPollingInterval() {\n return this.startingPollInterval + FOUR_MINUTES_IN_MS;\n },\n apolloStateQueryPollingInterval() {\n if (this.startingPollInterval < 0) {\n return 0;\n }\n\n const unboundedInterval = STATE_QUERY_POLLING_INTERVAL_BACKOFF * this.pollInterval;\n\n return clamp(\n unboundedInterval,\n this.startingPollInterval,\n this.apolloStateQueryMaxPollingInterval,\n );\n },\n shouldRenderApprovals() {\n return !['preparing', 'nothingToMerge'].includes(this.mr.state);\n },\n componentName() {\n return stateToComponentMap[this.machineState] || classState[this.mr.state];\n },\n hasPipelineMustSucceedConflict() {\n return !this.mr.hasCI && this.mr.onlyAllowMergeIfPipelineSucceeds;\n },\n shouldRenderPipelines() {\n return this.mr.hasCI || this.hasPipelineMustSucceedConflict;\n },\n shouldSuggestPipelines() {\n const { hasCI, mergeRequestAddCiConfigPath, isDismissedSuggestPipeline } = this.mr;\n\n return !hasCI && mergeRequestAddCiConfigPath && !isDismissedSuggestPipeline;\n },\n showRenderMigrateFromJenkins() {\n const { hasCI, isDismissedJenkinsMigration, ciIntegrationJenkins } = this.mr;\n\n return hasCI && !isDismissedJenkinsMigration && ciIntegrationJenkins;\n },\n shouldRenderCollaborationStatus() {\n return this.mr.allowCollaboration && this.mr.isOpen;\n },\n shouldRenderMergedPipeline() {\n return this.mr.state === STATUS_MERGED && !isEmpty(this.mr.mergePipeline);\n },\n showMergePipelineForkWarning() {\n return Boolean(\n this.mr.mergePipelinesEnabled && this.mr.sourceProjectId !== this.mr.targetProjectId,\n );\n },\n showManageStorageDocsLink() {\n return this.mr.mergeError?.includes(__('Your namespace storage is full'));\n },\n mergeError() {\n let { mergeError } = this.mr;\n\n if (this.showManageStorageDocsLink) return mergeError;\n\n if (mergeError && mergeError.slice(-1) === '.') {\n mergeError = mergeError.slice(0, -1);\n }\n\n return sprintf(\n s__('mrWidget|%{mergeError}. Try again.'),\n {\n mergeError,\n },\n false,\n );\n },\n formattedHumanAccess() {\n return (this.mr.humanAccess || '').toLowerCase();\n },\n hasMergeError() {\n return this.mr.mergeError && this.state !== STATUS_CLOSED;\n },\n hasAlerts() {\n return this.hasMergeError || this.showMergePipelineForkWarning;\n },\n mergeBlockedComponentVisible() {\n return !(\n [\n 'checking',\n 'preparing',\n 'nothingToMerge',\n 'archived',\n 'missingBranch',\n 'merged',\n 'closed',\n 'merging',\n 'shaMismatch',\n ].includes(this.mr.state) || this.mr.machineValue === 'MERGING'\n );\n },\n autoMergeEnabled() {\n return this.mr.autoMergeEnabled;\n },\n },\n watch: {\n 'mr.machineValue': {\n handler(newValue) {\n this.machineState = newValue;\n },\n },\n state(newVal, oldVal) {\n if (newVal !== oldVal && this.shouldRenderMergedPipeline) {\n // init polling\n this.initPostMergeDeploymentsPolling();\n }\n },\n 'mr.ciStatus': {\n handler(newValue) {\n if (!newValue || this.loading) return;\n\n this.handleNotification();\n },\n },\n },\n mounted() {\n MRWidgetService.fetchInitialData()\n .then(({ data, headers }) => {\n this.startingPollInterval =\n Number(headers['POLL-INTERVAL']) || STATE_QUERY_POLLING_INTERVAL_DEFAULT;\n this.initWidget(data);\n })\n .catch(() =>\n createAlert({\n message: __('Unable to load the merge request widget. Try reloading the page.'),\n }),\n );\n },\n beforeDestroy() {\n this.unbindEventListeners();\n\n if (this.deploymentsInterval) {\n this.deploymentsInterval.destroy();\n }\n\n if (this.postMergeDeploymentsInterval) {\n this.postMergeDeploymentsInterval.destroy();\n }\n },\n methods: {\n initWidget(data = {}) {\n if (this.mr) {\n this.mr.setData({ ...window.gl.mrWidgetData, ...data });\n } else {\n this.mr = new MRWidgetStore({ ...window.gl.mrWidgetData, ...data });\n }\n\n this.machineState = this.mr.machineValue;\n\n if (!this.state) {\n this.state = this.mr.state;\n }\n\n if (!this.service) {\n this.service = this.createService(this.mr);\n }\n\n this.setFaviconHelper();\n this.initDeploymentsPolling();\n\n if (this.shouldRenderMergedPipeline) {\n this.initPostMergeDeploymentsPolling();\n }\n\n this.bindEventHubListeners();\n eventHub.$on('mr.discussion.updated', this.checkStatus);\n },\n getServiceEndpoints(store) {\n return {\n mergePath: store.mergePath,\n mergeCheckPath: store.mergeCheckPath,\n cancelAutoMergePath: store.cancelAutoMergePath,\n removeWIPPath: store.removeWIPPath,\n sourceBranchPath: store.sourceBranchPath,\n ciEnvironmentsStatusPath: store.ciEnvironmentsStatusPath,\n mergeRequestBasicPath: store.mergeRequestBasicPath,\n mergeRequestWidgetPath: store.mergeRequestWidgetPath,\n mergeRequestCachedWidgetPath: store.mergeRequestCachedWidgetPath,\n mergeActionsContentPath: store.mergeActionsContentPath,\n rebasePath: store.rebasePath,\n apiApprovalsPath: store.apiApprovalsPath,\n apiApprovePath: store.apiApprovePath,\n apiUnapprovePath: store.apiUnapprovePath,\n };\n },\n createService(store) {\n return new MRWidgetService(this.getServiceEndpoints(store));\n },\n checkStatus(cb, isRebased, refetch = true) {\n if (refetch) {\n this.$apollo.queries.state.refetch();\n }\n\n return this.service\n .checkStatus()\n .then(({ data }) => {\n if (!Object.keys(data).length) return;\n\n this.mr.setData(data, isRebased);\n this.setFaviconHelper();\n\n if (cb) {\n cb.call(null, data);\n }\n })\n .catch(() =>\n createAlert({\n message: __('Something went wrong. Please try again.'),\n }),\n );\n },\n setFaviconHelper() {\n if (this.mr.faviconOverlayPath) {\n return setFaviconOverlay(this.mr.faviconOverlayPath);\n }\n return Promise.resolve();\n },\n initDeploymentsPolling() {\n this.deploymentsInterval = this.deploymentsPoll(this.fetchPreMergeDeployments);\n },\n initPostMergeDeploymentsPolling() {\n this.postMergeDeploymentsInterval = this.deploymentsPoll(this.fetchPostMergeDeployments);\n },\n deploymentsPoll(callback) {\n return new SmartInterval({\n callback,\n startingInterval: 30 * 1000,\n maxInterval: 240 * 1000,\n incrementByFactorOf: 4,\n immediateExecution: true,\n });\n },\n fetchDeployments(target) {\n return this.service.fetchDeployments(target);\n },\n fetchPreMergeDeployments() {\n return this.fetchDeployments()\n .then(({ data }) => {\n if (data.length) {\n this.mr.deployments = data;\n }\n })\n .catch(() => this.throwDeploymentsError());\n },\n fetchPostMergeDeployments() {\n return this.fetchDeployments('merge_commit')\n .then(({ data }) => {\n if (data.length) {\n this.mr.postMergeDeployments = data;\n }\n })\n .catch(() => this.throwDeploymentsError());\n },\n throwDeploymentsError() {\n createAlert({\n message: __(\n 'Something went wrong while fetching the environments for this merge request. Please try again.',\n ),\n });\n },\n fetchActionsContent() {\n this.service\n .fetchMergeActionsContent()\n .then((res) => {\n if (res.data) {\n const el = document.createElement('div');\n // eslint-disable-next-line no-unsanitized/property\n el.innerHTML = res.data;\n document.body.appendChild(el);\n document.dispatchEvent(new CustomEvent('merged:UpdateActions'));\n }\n })\n .catch(() =>\n createAlert({\n message: __('Something went wrong. Please try again.'),\n }),\n );\n },\n handleNotification() {\n const { pipeline } = this.mr;\n\n if (!pipeline || !Object.keys(pipeline).length) return;\n\n const { label } = pipeline.details.status;\n const title = sprintf(__('Pipeline %{label}'), { label });\n const message = sprintf(__('Pipeline %{label} for \"%{dataTitle}\"'), {\n dataTitle: this.mr.title,\n label,\n });\n\n notify.notifyMe(title, message, this.mr.gitlabLogo);\n },\n resumePolling() {\n this.$apollo.queries.state.startPolling(this.pollInterval);\n },\n stopPolling() {\n this.$apollo.queries.state.stopPolling();\n },\n checkRebasedStatus(cb) {\n this.checkStatus(cb, true);\n },\n setIsRemovingSourceBranch([value]) {\n this.mr.isRemovingSourceBranch = value;\n },\n setMergeError(mergeError) {\n this.mr.state = 'failedToMerge';\n this.mr.mergeError = mergeError;\n },\n setMrData(data) {\n this.mr.setData(data);\n },\n onFetchDeployments() {\n this.fetchPreMergeDeployments();\n if (this.shouldRenderMergedPipeline) {\n this.fetchPostMergeDeployments();\n }\n },\n bindEventHubListeners() {\n eventHub.$on('MRWidgetUpdateRequested', this.checkStatus);\n eventHub.$on('MRWidgetRebaseSuccess', this.checkRebasedStatus);\n eventHub.$on('SetBranchRemoveFlag', this.setIsRemovingSourceBranch);\n eventHub.$on('FailedToMerge', this.setMergeError);\n eventHub.$on('UpdateWidgetData', this.setMrData);\n eventHub.$on('FetchActionsContent', this.fetchActionsContent);\n eventHub.$on('EnablePolling', this.resumePolling);\n eventHub.$on('DisablePolling', this.stopPolling);\n eventHub.$on('FetchDeployments', this.onFetchDeployments);\n },\n unbindEventListeners() {\n eventHub.$off('MRWidgetUpdateRequested', this.checkStatus);\n eventHub.$off('MRWidgetRebaseSuccess', this.checkRebasedStatus);\n eventHub.$off('SetBranchRemoveFlag', this.setIsRemovingSourceBranch);\n eventHub.$off('FailedToMerge', this.setMergeError);\n eventHub.$off('UpdateWidgetData', this.setMrData);\n eventHub.$off('FetchActionsContent', this.fetchActionsContent);\n eventHub.$off('EnablePolling', this.resumePolling);\n eventHub.$off('DisablePolling', this.stopPolling);\n eventHub.$off('FetchDeployments', this.onFetchDeployments);\n eventHub.$off('mr.discussion.updated', this.checkStatus);\n },\n dismissSuggestPipelines() {\n this.mr.isDismissedSuggestPipeline = true;\n },\n dismissMigrateFromJenkins() {\n this.mr.isDismissedJenkinsMigration = true;\n },\n },\n};\n</script>\n<template>\n <div v-if=\"!loading\" id=\"widget-state\" class=\"mr-state-widget gl-mt-5\">\n <header v-if=\"shouldRenderCollaborationStatus\" class=\"mr-section-container gl-overflow-hidden\">\n <mr-widget-alert-message type=\"info\">\n {{ s__('mrWidget|Members who can merge are allowed to add commits.') }}\n </mr-widget-alert-message>\n </header>\n <mr-widget-suggest-pipeline\n v-if=\"shouldSuggestPipelines\"\n :pipeline-path=\"mr.mergeRequestAddCiConfigPath\"\n :pipeline-svg-path=\"mr.pipelinesEmptySvgPath\"\n :human-access=\"formattedHumanAccess\"\n :user-callouts-path=\"mr.userCalloutsPath\"\n :user-callout-feature-id=\"mr.suggestPipelineFeatureId\"\n @dismiss=\"dismissSuggestPipelines\"\n />\n <mr-widget-migrate-jenkins\n v-if=\"showRenderMigrateFromJenkins\"\n class=\"mr-widget-workflow\"\n :human-access=\"formattedHumanAccess\"\n :path=\"mr.userCalloutsPath\"\n :feature-id=\"mr.migrateJenkinsFeatureId\"\n @dismiss=\"dismissMigrateFromJenkins\"\n />\n <mr-widget-pipeline-container\n v-if=\"shouldRenderPipelines\"\n :mr=\"mr\"\n data-testid=\"pipeline-container\"\n />\n <mr-widget-approvals v-if=\"shouldRenderApprovals\" :mr=\"mr\" :service=\"service\" />\n <widget-container :mr=\"mr\" />\n <div class=\"mr-section-container\">\n <template v-if=\"hasAlerts\">\n <mr-widget-alert-message\n v-if=\"hasMergeError\"\n type=\"danger\"\n dismissible\n data-testid=\"merge-error\"\n class=\"mr-widget-section gl-rounded-b-none gl-border-b-section\"\n >\n <span>{{ mergeError }}</span>\n </mr-widget-alert-message>\n <mr-widget-alert-message\n v-if=\"showMergePipelineForkWarning\"\n type=\"warning\"\n :help-path=\"mr.mergeRequestPipelinesHelpPath\"\n class=\"mr-widget-section gl-rounded-b-none gl-border-b-section\"\n data-testid=\"merge-pipeline-fork-warning\"\n >\n {{\n s__(\n 'mrWidget|If the last pipeline ran in the fork project, it may be inaccurate. Before merge, we advise running a pipeline in this project.',\n )\n }}\n <template #link-content>\n {{ __('Learn more') }}\n </template>\n </mr-widget-alert-message>\n </template>\n\n <div class=\"mr-widget-section\" data-testid=\"mr-widget-content\">\n <template v-if=\"mergeBlockedComponentVisible\">\n <mr-widget-auto-merge-enabled\n v-if=\"autoMergeEnabled\"\n :mr=\"mr\"\n :service=\"service\"\n class=\"gl-border-b gl-border-b-section\"\n />\n <merge-checks :mr=\"mr\" :service=\"service\" />\n </template>\n <component :is=\"componentName\" v-else :mr=\"mr\" :service=\"service\" />\n <ready-to-merge v-if=\"mr.commitsCount\" :mr=\"mr\" :service=\"service\" />\n </div>\n </div>\n <mr-widget-pipeline-container\n v-if=\"shouldRenderMergedPipeline\"\n class=\"js-post-merge-pipeline\"\n :mr=\"mr\"\n is-post-merge\n data-testid=\"merged-pipeline-container\"\n />\n </div>\n <loading v-else />\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_options.vue?vue&type=template&id=578c78b9\"\nimport script from \"./mr_widget_options.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_options.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 (!_vm.loading)?_c('div',{staticClass:\"mr-state-widget gl-mt-5\",attrs:{\"id\":\"widget-state\"}},[(_vm.shouldRenderCollaborationStatus)?_c('header',{staticClass:\"mr-section-container gl-overflow-hidden\"},[_c('mr-widget-alert-message',{attrs:{\"type\":\"info\"}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('mrWidget|Members who can merge are allowed to add commits.'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.shouldSuggestPipelines)?_c('mr-widget-suggest-pipeline',{attrs:{\"pipeline-path\":_vm.mr.mergeRequestAddCiConfigPath,\"pipeline-svg-path\":_vm.mr.pipelinesEmptySvgPath,\"human-access\":_vm.formattedHumanAccess,\"user-callouts-path\":_vm.mr.userCalloutsPath,\"user-callout-feature-id\":_vm.mr.suggestPipelineFeatureId},on:{\"dismiss\":_vm.dismissSuggestPipelines}}):_vm._e(),_vm._v(\" \"),(_vm.showRenderMigrateFromJenkins)?_c('mr-widget-migrate-jenkins',{staticClass:\"mr-widget-workflow\",attrs:{\"human-access\":_vm.formattedHumanAccess,\"path\":_vm.mr.userCalloutsPath,\"feature-id\":_vm.mr.migrateJenkinsFeatureId},on:{\"dismiss\":_vm.dismissMigrateFromJenkins}}):_vm._e(),_vm._v(\" \"),(_vm.shouldRenderPipelines)?_c('mr-widget-pipeline-container',{attrs:{\"mr\":_vm.mr,\"data-testid\":\"pipeline-container\"}}):_vm._e(),_vm._v(\" \"),(_vm.shouldRenderApprovals)?_c('mr-widget-approvals',{attrs:{\"mr\":_vm.mr,\"service\":_vm.service}}):_vm._e(),_vm._v(\" \"),_c('widget-container',{attrs:{\"mr\":_vm.mr}}),_vm._v(\" \"),_c('div',{staticClass:\"mr-section-container\"},[(_vm.hasAlerts)?[(_vm.hasMergeError)?_c('mr-widget-alert-message',{staticClass:\"mr-widget-section gl-rounded-b-none gl-border-b-section\",attrs:{\"type\":\"danger\",\"dismissible\":\"\",\"data-testid\":\"merge-error\"}},[_c('span',[_vm._v(_vm._s(_vm.mergeError))])]):_vm._e(),_vm._v(\" \"),(_vm.showMergePipelineForkWarning)?_c('mr-widget-alert-message',{staticClass:\"mr-widget-section gl-rounded-b-none gl-border-b-section\",attrs:{\"type\":\"warning\",\"help-path\":_vm.mr.mergeRequestPipelinesHelpPath,\"data-testid\":\"merge-pipeline-fork-warning\"},scopedSlots:_vm._u([{key:\"link-content\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.__('Learn more'))+\"\\n \")]},proxy:true}],null,false,3123720884)},[_vm._v(\"\\n \"+_vm._s(_vm.s__(\n 'mrWidget|If the last pipeline ran in the fork project, it may be inaccurate. Before merge, we advise running a pipeline in this project.',\n ))+\"\\n \")]):_vm._e()]:_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"mr-widget-section\",attrs:{\"data-testid\":\"mr-widget-content\"}},[(_vm.mergeBlockedComponentVisible)?[(_vm.autoMergeEnabled)?_c('mr-widget-auto-merge-enabled',{staticClass:\"gl-border-b gl-border-b-section\",attrs:{\"mr\":_vm.mr,\"service\":_vm.service}}):_vm._e(),_vm._v(\" \"),_c('merge-checks',{attrs:{\"mr\":_vm.mr,\"service\":_vm.service}})]:_c(_vm.componentName,{tag:\"component\",attrs:{\"mr\":_vm.mr,\"service\":_vm.service}}),_vm._v(\" \"),(_vm.mr.commitsCount)?_c('ready-to-merge',{attrs:{\"mr\":_vm.mr,\"service\":_vm.service}}):_vm._e()],2)],2),_vm._v(\" \"),(_vm.shouldRenderMergedPipeline)?_c('mr-widget-pipeline-container',{staticClass:\"js-post-merge-pipeline\",attrs:{\"mr\":_vm.mr,\"is-post-merge\":\"\",\"data-testid\":\"merged-pipeline-container\"}}):_vm._e()],1):_c('loading')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { s__ } from '~/locale';\nimport StateContainer from '~/vue_merge_request_widget/components/state_container.vue';\nimport BoldText from '~/vue_merge_request_widget/components/bold_text.vue';\n\nconst message = s__(\n 'mrWidget|%{boldStart}Merge blocked:%{boldEnd} a Jira issue key must be mentioned in the title or description.',\n);\n\nexport default {\n name: 'MrWidgetJiraAssociationMissing',\n message,\n components: {\n BoldText,\n StateContainer,\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <state-container status=\"failed\" is-collapsible>\n <bold-text :message=\"$options.message\" />\n </state-container>\n</template>\n","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!./mr_widget_jira_association_missing.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!./mr_widget_jira_association_missing.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./mr_widget_jira_association_missing.vue?vue&type=template&id=17446cb8\"\nimport script from \"./mr_widget_jira_association_missing.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_jira_association_missing.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('state-container',{attrs:{\"status\":\"failed\",\"is-collapsible\":\"\"}},[_c('bold-text',{attrs:{\"message\":_vm.$options.message}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { s__ } from '~/locale';\nimport StateContainer from '~/vue_merge_request_widget/components/state_container.vue';\nimport BoldText from '~/vue_merge_request_widget/components/bold_text.vue';\n\nconst message = s__(\n 'mrWidget|%{boldStart}Merge blocked:%{boldEnd} denied licenses must be removed.',\n);\n\nexport default {\n name: 'MRWidgetPolicyViolation',\n message,\n components: {\n BoldText,\n StateContainer,\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <state-container status=\"failed\" is-collapsible>\n <bold-text :message=\"$options.message\" />\n </state-container>\n</template>\n","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!./mr_widget_policy_violation.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!./mr_widget_policy_violation.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./mr_widget_policy_violation.vue?vue&type=template&id=492ed97f\"\nimport script from \"./mr_widget_policy_violation.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_policy_violation.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('state-container',{attrs:{\"status\":\"failed\",\"is-collapsible\":\"\"}},[_c('bold-text',{attrs:{\"message\":_vm.$options.message}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlTooltipDirective } from '@gitlab/ui';\nimport { s__ } from '~/locale';\nimport StateContainer from '~/vue_merge_request_widget/components/state_container.vue';\nimport BoldText from '~/vue_merge_request_widget/components/bold_text.vue';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\n\nconst message = s__(\n 'mrWidget|%{boldStart}Merge unavailable:%{boldEnd} merge requests are read-only in a secondary Geo node.',\n);\n\nexport default {\n message,\n components: {\n BoldText,\n HelpIcon,\n StateContainer,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n mr: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <state-container status=\"failed\" is-collapsible>\n <bold-text :message=\"$options.message\" />\n <a\n v-gl-tooltip\n class=\"gl-ml-2\"\n :href=\"mr.geoSecondaryHelpPath\"\n :title=\"__('About this feature')\"\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n >\n <help-icon />\n </a>\n </state-container>\n</template>\n","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!./mr_widget_secondary_geo_node.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!./mr_widget_secondary_geo_node.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./mr_widget_secondary_geo_node.vue?vue&type=template&id=2acebeb6\"\nimport script from \"./mr_widget_secondary_geo_node.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_secondary_geo_node.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('state-container',{attrs:{\"status\":\"failed\",\"is-collapsible\":\"\"}},[_c('bold-text',{attrs:{\"message\":_vm.$options.message}}),_vm._v(\" \"),_c('a',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-ml-2\",attrs:{\"href\":_vm.mr.geoSecondaryHelpPath,\"title\":_vm.__('About this feature'),\"target\":\"_blank\",\"rel\":\"noopener noreferrer nofollow\"}},[_c('help-icon')],1)],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!./app.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!./app.vue?vue&type=script&lang=js\"","<script>\nimport CEWidgetApp from '~/vue_merge_request_widget/components/widget/app.vue';\n\nexport default {\n components: {\n MrBrowserPerformanceWidget: () =>\n import('ee/vue_merge_request_widget/widgets/browser_performance/index.vue'),\n MrLoadPerformanceWidget: () =>\n import('ee/vue_merge_request_widget/widgets/load_performance/index.vue'),\n MrMetricsWidget: () => import('ee/vue_merge_request_widget/widgets/metrics/index.vue'),\n MrSecurityWidgetEE: () =>\n import('ee/vue_merge_request_widget/widgets/security_reports/mr_widget_security_reports.vue'),\n MrSecurityWidgetCE: () =>\n import('~/vue_merge_request_widget/widgets/security_reports/mr_widget_security_reports.vue'),\n MrStatusChecksWidget: () =>\n import('ee/vue_merge_request_widget/widgets/status_checks/index.vue'),\n MrLicenseComplianceWidget: () =>\n import('ee/vue_merge_request_widget/widgets/license_compliance/index.vue'),\n },\n\n extends: CEWidgetApp,\n\n computed: {\n licenseComplianceWidget() {\n return this.mr?.enabledReports?.licenseScanning ? 'MrLicenseComplianceWidget' : undefined;\n },\n\n browserPerformanceWidget() {\n return this.mr.browserPerformance ? 'MrBrowserPerformanceWidget' : undefined;\n },\n\n loadPerformanceWidget() {\n return this.mr.loadPerformance ? 'MrLoadPerformanceWidget' : undefined;\n },\n\n metricsWidget() {\n return this.mr.metricsReportsPath ? 'MrMetricsWidget' : undefined;\n },\n\n statusChecksWidget() {\n return this.mr.apiStatusChecksPath && !this.mr.isNothingToMergeState\n ? 'MrStatusChecksWidget'\n : undefined;\n },\n\n securityReportsWidget() {\n return this.mr.canReadVulnerabilities ? 'MrSecurityWidgetEE' : 'MrSecurityWidgetCE';\n },\n\n widgets() {\n return [\n this.licenseComplianceWidget,\n this.codeQualityWidget,\n this.browserPerformanceWidget,\n this.loadPerformanceWidget,\n this.testReportWidget,\n this.metricsWidget,\n this.statusChecksWidget,\n this.terraformPlansWidget,\n this.securityReportsWidget,\n this.accessibilityWidget,\n ].filter((w) => w);\n },\n },\n\n render: CEWidgetApp.render,\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./app.vue?vue&type=script&lang=js\"\nexport * from \"./app.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--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mr_widget_options.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!./mr_widget_options.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf, GlLink } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { s__ } from '~/locale';\nimport reportsMixin from 'ee/vue_shared/security_reports/mixins/reports_mixin';\nimport CEWidgetOptions from '~/vue_merge_request_widget/mr_widget_options.vue';\nimport MrWidgetAlertMessage from '~/vue_merge_request_widget/components/mr_widget_alert_message.vue';\nimport MrWidgetSuggestPipeline from '~/vue_merge_request_widget/components/mr_widget_suggest_pipeline.vue';\nimport MrWidgetPipelineContainer from '~/vue_merge_request_widget/components/mr_widget_pipeline_container.vue';\nimport MrWidgetApprovals from 'ee_else_ce/vue_merge_request_widget/components/approvals/approvals.vue';\nimport MrWidgetMigrateJenkins from '~/vue_merge_request_widget/components/mr_widget_migrate_jenkins.vue';\nimport MrWidgetAutoMergeEnabled from '~/vue_merge_request_widget/components/states/mr_widget_auto_merge_enabled.vue';\nimport MergeChecks from '~/vue_merge_request_widget/components/merge_checks.vue';\nimport ReadyToMerge from '~/vue_merge_request_widget/components/states/ready_to_merge.vue';\nimport Loading from '~/vue_merge_request_widget/components/loading.vue';\nimport MrWidgetJiraAssociationMissing from './components/states/mr_widget_jira_association_missing.vue';\nimport MrWidgetPolicyViolation from './components/states/mr_widget_policy_violation.vue';\nimport MrWidgetGeoSecondaryNode from './components/states/mr_widget_secondary_geo_node.vue';\nimport WidgetContainer from './components/widget/app.vue';\n\nexport default {\n components: {\n GlSprintf,\n GlLink,\n WidgetContainer,\n MrWidgetGeoSecondaryNode,\n MrWidgetPolicyViolation,\n MrWidgetJiraAssociationMissing,\n MrWidgetAlertMessage,\n MrWidgetSuggestPipeline,\n MrWidgetMigrateJenkins,\n MrWidgetPipelineContainer,\n MrWidgetApprovals,\n MrWidgetAutoMergeEnabled,\n Loading,\n MergeChecks,\n ReadyToMerge,\n BlockingMergeRequestsReport: () =>\n import('./components/blocking_merge_requests/blocking_merge_requests_report.vue'),\n },\n manageStorageDocsMsg: s__(\n 'mrWidget|To continue, %{docLinkStart}manage your storage usage%{docLinkEnd}.',\n ),\n manageStorageDocsLink: helpPagePath('user/storage_usage_quotas'),\n directives: {\n SafeHtml,\n },\n extends: CEWidgetOptions,\n mixins: [reportsMixin],\n methods: {\n getServiceEndpoints(store) {\n const base = CEWidgetOptions.methods.getServiceEndpoints(store);\n\n return {\n ...base,\n apiApprovalSettingsPath: store.apiApprovalSettingsPath,\n };\n },\n },\n};\n</script>\n<template>\n <div v-if=\"!loading\" id=\"widget-state\" class=\"mr-state-widget gl-mt-5\">\n <header v-if=\"shouldRenderCollaborationStatus\" class=\"mr-section-container gl-overflow-hidden\">\n <mr-widget-alert-message type=\"info\">\n {{ s__('mrWidget|Members who can merge are allowed to add commits.') }}\n </mr-widget-alert-message>\n </header>\n <mr-widget-suggest-pipeline\n v-if=\"shouldSuggestPipelines\"\n class=\"mr-section-container\"\n :pipeline-path=\"mr.mergeRequestAddCiConfigPath\"\n :pipeline-svg-path=\"mr.pipelinesEmptySvgPath\"\n :human-access=\"formattedHumanAccess\"\n :user-callouts-path=\"mr.userCalloutsPath\"\n :user-callout-feature-id=\"mr.suggestPipelineFeatureId\"\n @dismiss=\"dismissSuggestPipelines\"\n />\n <mr-widget-migrate-jenkins\n v-if=\"showRenderMigrateFromJenkins\"\n class=\"mr-widget-workflow\"\n :human-access=\"formattedHumanAccess\"\n @dismiss=\"dismissMigrateFromJenkins\"\n />\n <mr-widget-pipeline-container\n v-if=\"shouldRenderPipelines\"\n :mr=\"mr\"\n data-testid=\"pipeline-container\"\n />\n <mr-widget-approvals v-if=\"shouldRenderApprovals\" :mr=\"mr\" :service=\"service\" />\n <widget-container v-if=\"mr\" :mr=\"mr\" />\n <div class=\"mr-section-container\">\n <template v-if=\"hasAlerts\">\n <mr-widget-alert-message\n v-if=\"hasMergeError\"\n type=\"danger\"\n dismissible\n data-testid=\"merge-error\"\n class=\"mr-widget-section gl-rounded-b-none gl-border-b-section\"\n >\n <span>{{ mergeError }}</span>\n\n <gl-sprintf v-if=\"showManageStorageDocsLink\" :message=\"$options.manageStorageDocsMsg\">\n <template #docLink=\"{ content }\">\n <gl-link :href=\"$options.manageStorageDocsLink\" target=\"_blank\">\n {{ content }}\n </gl-link>\n </template>\n </gl-sprintf>\n </mr-widget-alert-message>\n <mr-widget-alert-message\n v-if=\"showMergePipelineForkWarning\"\n type=\"warning\"\n :help-path=\"mr.mergeRequestPipelinesHelpPath\"\n class=\"mr-widget-section gl-rounded-b-none gl-border-b-section\"\n data-testid=\"merge-pipeline-fork-warning\"\n >\n {{\n s__(\n 'mrWidget|If the last pipeline ran in the fork project, it may be inaccurate. Before merge, we advise running a pipeline in this project.',\n )\n }}\n <template #link-content>\n {{ __('Learn more') }}\n </template>\n </mr-widget-alert-message>\n </template>\n <blocking-merge-requests-report class=\"gl-border-b gl-border-b-section\" :mr=\"mr\" />\n\n <div class=\"mr-widget-section\">\n <template v-if=\"mergeBlockedComponentVisible\">\n <mr-widget-auto-merge-enabled\n v-if=\"autoMergeEnabled\"\n :mr=\"mr\"\n :service=\"service\"\n class=\"gl-border-b gl-border-b-section\"\n />\n <merge-checks :mr=\"mr\" :service=\"service\" />\n </template>\n <component :is=\"componentName\" v-else :mr=\"mr\" :service=\"service\" />\n <ready-to-merge v-if=\"mr.commitsCount\" :mr=\"mr\" :service=\"service\" />\n </div>\n </div>\n <mr-widget-pipeline-container\n v-if=\"shouldRenderMergedPipeline\"\n class=\"js-post-merge-pipeline\"\n data-testid=\"merged-pipeline-container\"\n :mr=\"mr\"\n is-post-merge\n />\n </div>\n <loading v-else />\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_options.vue?vue&type=template&id=229c140a\"\nimport script from \"./mr_widget_options.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_options.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 (!_vm.loading)?_c('div',{staticClass:\"mr-state-widget gl-mt-5\",attrs:{\"id\":\"widget-state\"}},[(_vm.shouldRenderCollaborationStatus)?_c('header',{staticClass:\"mr-section-container gl-overflow-hidden\"},[_c('mr-widget-alert-message',{attrs:{\"type\":\"info\"}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('mrWidget|Members who can merge are allowed to add commits.'))+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),(_vm.shouldSuggestPipelines)?_c('mr-widget-suggest-pipeline',{staticClass:\"mr-section-container\",attrs:{\"pipeline-path\":_vm.mr.mergeRequestAddCiConfigPath,\"pipeline-svg-path\":_vm.mr.pipelinesEmptySvgPath,\"human-access\":_vm.formattedHumanAccess,\"user-callouts-path\":_vm.mr.userCalloutsPath,\"user-callout-feature-id\":_vm.mr.suggestPipelineFeatureId},on:{\"dismiss\":_vm.dismissSuggestPipelines}}):_vm._e(),_vm._v(\" \"),(_vm.showRenderMigrateFromJenkins)?_c('mr-widget-migrate-jenkins',{staticClass:\"mr-widget-workflow\",attrs:{\"human-access\":_vm.formattedHumanAccess},on:{\"dismiss\":_vm.dismissMigrateFromJenkins}}):_vm._e(),_vm._v(\" \"),(_vm.shouldRenderPipelines)?_c('mr-widget-pipeline-container',{attrs:{\"mr\":_vm.mr,\"data-testid\":\"pipeline-container\"}}):_vm._e(),_vm._v(\" \"),(_vm.shouldRenderApprovals)?_c('mr-widget-approvals',{attrs:{\"mr\":_vm.mr,\"service\":_vm.service}}):_vm._e(),_vm._v(\" \"),(_vm.mr)?_c('widget-container',{attrs:{\"mr\":_vm.mr}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"mr-section-container\"},[(_vm.hasAlerts)?[(_vm.hasMergeError)?_c('mr-widget-alert-message',{staticClass:\"mr-widget-section gl-rounded-b-none gl-border-b-section\",attrs:{\"type\":\"danger\",\"dismissible\":\"\",\"data-testid\":\"merge-error\"}},[_c('span',[_vm._v(_vm._s(_vm.mergeError))]),_vm._v(\" \"),(_vm.showManageStorageDocsLink)?_c('gl-sprintf',{attrs:{\"message\":_vm.$options.manageStorageDocsMsg},scopedSlots:_vm._u([{key:\"docLink\",fn:function({ content }){return [_c('gl-link',{attrs:{\"href\":_vm.$options.manageStorageDocsLink,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(content)+\"\\n \")])]}}],null,false,2081334429)}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.showMergePipelineForkWarning)?_c('mr-widget-alert-message',{staticClass:\"mr-widget-section gl-rounded-b-none gl-border-b-section\",attrs:{\"type\":\"warning\",\"help-path\":_vm.mr.mergeRequestPipelinesHelpPath,\"data-testid\":\"merge-pipeline-fork-warning\"},scopedSlots:_vm._u([{key:\"link-content\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.__('Learn more'))+\"\\n \")]},proxy:true}],null,false,3123720884)},[_vm._v(\"\\n \"+_vm._s(_vm.s__(\n 'mrWidget|If the last pipeline ran in the fork project, it may be inaccurate. Before merge, we advise running a pipeline in this project.',\n ))+\"\\n \")]):_vm._e()]:_vm._e(),_vm._v(\" \"),_c('blocking-merge-requests-report',{staticClass:\"gl-border-b gl-border-b-section\",attrs:{\"mr\":_vm.mr}}),_vm._v(\" \"),_c('div',{staticClass:\"mr-widget-section\"},[(_vm.mergeBlockedComponentVisible)?[(_vm.autoMergeEnabled)?_c('mr-widget-auto-merge-enabled',{staticClass:\"gl-border-b gl-border-b-section\",attrs:{\"mr\":_vm.mr,\"service\":_vm.service}}):_vm._e(),_vm._v(\" \"),_c('merge-checks',{attrs:{\"mr\":_vm.mr,\"service\":_vm.service}})]:_c(_vm.componentName,{tag:\"component\",attrs:{\"mr\":_vm.mr,\"service\":_vm.service}}),_vm._v(\" \"),(_vm.mr.commitsCount)?_c('ready-to-merge',{attrs:{\"mr\":_vm.mr,\"service\":_vm.service}}):_vm._e()],2)],2),_vm._v(\" \"),(_vm.shouldRenderMergedPipeline)?_c('mr-widget-pipeline-container',{staticClass:\"js-post-merge-pipeline\",attrs:{\"data-testid\":\"merged-pipeline-container\",\"mr\":_vm.mr,\"is-post-merge\":\"\"}}):_vm._e()],1):_c('loading')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport MrWidgetOptions from 'any_else_ce/vue_merge_request_widget/mr_widget_options.vue';\nimport createDefaultClient from '~/lib/graphql';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport Translate from '../vue_shared/translate';\n\nVue.use(Translate);\nVue.use(VueApollo);\n\nconst apolloProvider = new VueApollo({\n defaultClient: createDefaultClient(\n {},\n {\n cacheConfig: {\n typePolicies: {\n MergeRequestApprovalState: {\n merge: true,\n },\n },\n },\n },\n ),\n});\n\nexport default () => {\n if (gl.mrWidget) return;\n\n gl.mrWidgetData.gitlabLogo = gon.gitlab_logo;\n gl.mrWidgetData.defaultAvatarUrl = gon.default_avatar_url;\n\n const dismissalDescriptions = JSON.parse(gl.mrWidgetData.dismissal_descriptions || '{}');\n\n // This is a false violation of @gitlab/no-runtime-template-compiler, since it\n // creates a new Vue instance by spreading a _valid_ Vue component definition\n // into the Vue constructor.\n // eslint-disable-next-line @gitlab/no-runtime-template-compiler\n const vm = new Vue({\n el: '#js-vue-mr-widget',\n provide: {\n artifactsEndpoint: gl.mrWidgetData.artifacts_endpoint,\n artifactsEndpointPlaceholder: gl.mrWidgetData.artifacts_endpoint_placeholder,\n falsePositiveDocUrl: gl.mrWidgetData.false_positive_doc_url,\n canViewFalsePositive: parseBoolean(gl.mrWidgetData.can_view_false_positive),\n canCreatePipelineInTargetProject: parseBoolean(\n gl.mrWidgetData.can_create_pipeline_in_target_project,\n ),\n commitPathTemplate: gl.mrWidgetData.commit_path_template,\n dismissalDescriptions,\n },\n ...MrWidgetOptions,\n apolloProvider,\n });\n\n window.gl.mrWidget = {\n checkStatus: vm.checkStatus,\n };\n};\n","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapState, mapGetters } from 'vuex';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\n\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport store from '~/mr_notes/stores';\nimport notesEventHub from '~/notes/event_hub';\nimport discussionNavigator from '../notes/components/discussion_navigator.vue';\nimport NotesApp from '../notes/components/notes_app.vue';\nimport { getNotesFilterData } from '../notes/utils/get_notes_filter_data';\nimport initWidget from '../vue_merge_request_widget';\n\nexport default () => {\n requestIdleCallback(\n () => {\n renderGFM(document.getElementById('diff-notes-app'));\n },\n { timeout: 500 },\n );\n\n const el = document.getElementById('js-vue-mr-discussions');\n if (!el) {\n return;\n }\n\n Vue.use(VueApollo);\n\n const notesFilterProps = getNotesFilterData(el);\n const notesDataset = el.dataset;\n\n // eslint-disable-next-line no-new\n new Vue({\n el,\n name: 'MergeRequestDiscussions',\n components: {\n NotesApp,\n },\n store,\n apolloProvider,\n provide: {\n reportAbusePath: notesDataset.reportAbusePath,\n newCommentTemplatePaths: JSON.parse(notesDataset.newCommentTemplatePaths),\n mrFilter: true,\n newCustomEmojiPath: notesDataset.newCustomEmojiPath,\n },\n data() {\n const noteableData = JSON.parse(notesDataset.noteableData);\n noteableData.noteableType = notesDataset.noteableType;\n noteableData.targetType = notesDataset.targetType;\n noteableData.discussion_locked = parseBoolean(notesDataset.isLocked);\n\n return {\n noteableData,\n endpoints: {\n metadata: notesDataset.endpointMetadata,\n },\n notesData: JSON.parse(notesDataset.notesData),\n helpPagePath: notesDataset.helpPagePath,\n };\n },\n computed: {\n ...mapGetters(['isNotesFetched']),\n ...mapState({\n activeTab: (state) => state.page.activeTab,\n }),\n isShowTabActive() {\n return this.activeTab === 'show';\n },\n },\n watch: {\n isShowTabActive: {\n handler(newVal) {\n if (newVal) {\n initWidget();\n }\n },\n immediate: true,\n },\n },\n created() {\n this.setEndpoints(this.endpoints);\n\n if (!this.isNotesFetched) {\n notesEventHub.$emit('fetchNotesData');\n }\n\n this.fetchMrMetadata();\n },\n methods: {\n ...mapActions(['setEndpoints', 'fetchMrMetadata']),\n },\n render(createElement) {\n // NOTE: Even though `discussionNavigator` is added to the `notes-app`,\n // it adds a global key listener so it works on the diffs tab as well.\n // If we create a single Vue app for all of the MR tabs, we should move this\n // up the tree, to the root.\n return createElement(discussionNavigator, [\n createElement('notes-app', {\n props: {\n noteableData: this.noteableData,\n notesData: this.notesData,\n userData: this.currentUserData,\n shouldShow: this.isShowTabActive,\n helpPagePath: this.helpPagePath,\n ...notesFilterProps,\n },\n }),\n ]);\n },\n });\n};\n","import initNotes from './init_notes';\n\n// this module is required for the EE functions to work properly with merge request tabs\nexport default () => {\n initNotes();\n};\n","import { extend } from '../../vue';\nimport { NAME_TABLE_CELL } from '../../constants/components';\nimport { PROP_TYPE_NUMBER_STRING, PROP_TYPE_STRING, PROP_TYPE_BOOLEAN } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { isUndefinedOrNull } from '../../utils/inspect';\nimport { toInteger } from '../../utils/number';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { toString } from '../../utils/string';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Helper methods ---\n\n// Parse a rowspan or colspan into a digit (or `null` if < `1` )\nconst parseSpan = value => {\n value = toInteger(value, 0);\n return value > 0 ? value : null;\n};\n\n/* istanbul ignore next */\nconst spanValidator = value => isUndefinedOrNull(value) || parseSpan(value) > 0;\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n colspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n rowspan: makeProp(PROP_TYPE_NUMBER_STRING, null, spanValidator),\n stackedHeading: makeProp(PROP_TYPE_STRING),\n stickyColumn: makeProp(PROP_TYPE_BOOLEAN, false),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TABLE_CELL);\n\n// --- Main component ---\n\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\nconst BTd = /*#__PURE__*/extend({\n name: NAME_TABLE_CELL,\n // Mixin order is important!\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n inject: {\n getBvTableTr: {\n default: /* istanbul ignore next */() => () => ({})\n }\n },\n inheritAttrs: false,\n props,\n computed: {\n bvTableTr() {\n return this.getBvTableTr();\n },\n // Overridden by `<b-th>`\n tag() {\n return 'td';\n },\n inTbody() {\n return this.bvTableTr.inTbody;\n },\n inThead() {\n return this.bvTableTr.inThead;\n },\n inTfoot() {\n return this.bvTableTr.inTfoot;\n },\n isDark() {\n return this.bvTableTr.isDark;\n },\n isStacked() {\n return this.bvTableTr.isStacked;\n },\n // We only support stacked-heading in tbody in stacked mode\n isStackedCell() {\n return this.inTbody && this.isStacked;\n },\n isResponsive() {\n return this.bvTableTr.isResponsive;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky headers only apply to cells in table `thead`\n isStickyHeader() {\n return this.bvTableTr.isStickyHeader;\n },\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader() {\n return this.bvTableTr.hasStickyHeader;\n },\n // Needed to handle background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n // Sticky column cells are only available in responsive\n // mode (horizontal scrolling) or when sticky header mode\n // Applies to cells in `thead`, `tbody` and `tfoot`\n isStickyColumn() {\n return !this.isStacked && (this.isResponsive || this.hasStickyHeader) && this.stickyColumn;\n },\n rowVariant() {\n return this.bvTableTr.variant;\n },\n headVariant() {\n return this.bvTableTr.headVariant;\n },\n footVariant() {\n return this.bvTableTr.footVariant;\n },\n tableVariant() {\n return this.bvTableTr.tableVariant;\n },\n computedColspan() {\n return parseSpan(this.colspan);\n },\n computedRowspan() {\n return parseSpan(this.rowspan);\n },\n // We use computed props here for improved performance by caching\n // the results of the string interpolation\n cellClasses() {\n let {\n variant,\n headVariant,\n isStickyColumn\n } = this;\n if (!variant && this.isStickyHeader && !headVariant || !variant && isStickyColumn && this.inTfoot && !this.footVariant || !variant && isStickyColumn && this.inThead && !headVariant || !variant && isStickyColumn && this.inTbody) {\n // Needed for sticky-header mode as Bootstrap v4 table cells do\n // not inherit parent's `background-color`\n variant = this.rowVariant || this.tableVariant || 'b-table-default';\n }\n return [variant ? `${this.isDark ? 'bg' : 'table'}-${variant}` : null, isStickyColumn ? 'b-table-sticky-column' : null];\n },\n cellAttrs() {\n const {\n stackedHeading\n } = this;\n\n // We use computed props here for improved performance by caching\n // the results of the object spread (Object.assign)\n const headOrFoot = this.inThead || this.inTfoot;\n // Make sure col/rowspan's are > 0 or null\n const colspan = this.computedColspan;\n const rowspan = this.computedRowspan;\n // Default role and scope\n let role = 'cell';\n let scope = null;\n\n // Compute role and scope\n // We only add scopes with an explicit span of 1 or greater\n if (headOrFoot) {\n // Header or footer cells\n role = 'columnheader';\n scope = colspan > 0 ? 'colspan' : 'col';\n } else if (isTag(this.tag, 'th')) {\n // th's in tbody\n role = 'rowheader';\n scope = rowspan > 0 ? 'rowgroup' : 'row';\n }\n return {\n colspan,\n rowspan,\n role,\n scope,\n // Allow users to override role/scope plus add other attributes\n ...this.bvAttrs,\n // Add in the stacked cell label data-attribute if in\n // stacked mode (if a stacked heading label is provided)\n 'data-label': this.isStackedCell && !isUndefinedOrNull(stackedHeading) ? /* istanbul ignore next */toString(stackedHeading) : null\n };\n }\n },\n render(h) {\n const $content = [this.normalizeSlot()];\n return h(this.tag, {\n class: this.cellClasses,\n attrs: this.cellAttrs,\n // Transfer any native listeners\n on: this.bvListeners\n }, [this.isStackedCell ? h('div', [$content]) : $content]);\n }\n});\n\nexport { BTd, props };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"header\",staticClass:\"js-file-title file-title file-title-flex-parent\",attrs:{\"data-testid\":\"file-title-container\",\"data-qa-file-name\":_vm.filePath},on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.handleToggleFile.apply(null, arguments)}}},[_c('div',{staticClass:\"file-header-content\"},[(_vm.collapsible)?_c('gl-button',{ref:\"collapseButton\",staticClass:\"gl-mr-2\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"icon\":_vm.collapseIcon,\"aria-label\":_vm.labelToggleFile},on:{\"click\":function($event){$event.stopPropagation();return _vm.handleToggleFile.apply(null, arguments)}}}):_vm._e(),_vm._v(\" \"),_c('a',{staticClass:\"gl-mr-2 gl-break-all !gl-no-underline\",attrs:{\"v-once\":!_vm.viewDiffsFileByFile,\"href\":_vm.titleLink,\"data-testid\":\"file-title\"},on:{\"click\":_vm.handleFileNameClick}},[(_vm.isFileRenamed)?_c('span',[_c('strong',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"},{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.diffFile.old_path_html),expression:\"diffFile.old_path_html\"}],staticClass:\"file-title-name\",attrs:{\"title\":_vm.diffFile.old_path}}),_vm._v(\"\\n →\\n \"),_c('strong',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"},{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.diffFile.new_path_html),expression:\"diffFile.new_path_html\"}],staticClass:\"file-title-name\",attrs:{\"title\":_vm.diffFile.new_path}})]):_c('strong',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"file-title-name\",attrs:{\"title\":_vm.filePath,\"data-container\":\"body\",\"data-testid\":\"file-name-content\"}},[_vm._v(\"\\n \"+_vm._s(_vm.filePath)+\"\\n \")])]),_vm._v(\" \"),_c('clipboard-button',{attrs:{\"title\":_vm.__('Copy file path'),\"text\":_vm.diffFile.file_path,\"gfm\":_vm.gfmCopyText,\"size\":\"small\",\"data-testid\":\"diff-file-copy-clipboard\",\"category\":\"tertiary\",\"data-track-action\":\"click_copy_file_button\",\"data-track-label\":\"diff_copy_file_path_button\",\"data-track-property\":\"diff_copy_file\"}}),_vm._v(\" \"),(_vm.isModeChanged)?_c('small',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.focus\",modifiers:{\"hover\":true,\"focus\":true}}],ref:\"fileMode\",staticClass:\"gl-mr-2 gl-text-subtle\",attrs:{\"title\":_vm.$options.i18n.fileModeTooltip}},[_vm._v(\"\\n \"+_vm._s(_vm.diffFile.a_mode)+\" → \"+_vm._s(_vm.diffFile.b_mode)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.isUsingLfs)?_c('gl-badge',{staticClass:\"gl-mr-2\",attrs:{\"variant\":\"neutral\",\"data-testid\":\"label-lfs\"}},[_vm._v(_vm._s(_vm.__('LFS')))]):_vm._e()],1),_vm._v(\" \"),(!_vm.diffFile.submodule && _vm.addMergeRequestButtons)?_c('div',{staticClass:\"file-actions gl-ml-auto gl-flex gl-items-center gl-self-start\"},[_c('diff-stats',{attrs:{\"diff-file\":_vm.diffFile,\"added-lines\":_vm.diffFile.added_lines,\"removed-lines\":_vm.diffFile.removed_lines}}),_vm._v(\" \"),(_vm.isReviewable && _vm.showLocalFileReviews)?_c('gl-form-checkbox',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.focus.left\",modifiers:{\"hover\":true,\"focus\":true,\"left\":true}}],staticClass:\"-gl-mb-3 gl-mr-5 gl-flex gl-items-center\",attrs:{\"data-testid\":\"fileReviewCheckbox\",\"title\":_vm.$options.i18n.fileReviewTooltip,\"checked\":_vm.reviewed},on:{\"change\":_vm.toggleReview}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.fileReviewLabel)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showCommentButton)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.focus\",modifiers:{\"hover\":true,\"focus\":true}}],staticClass:\"btn-icon gl-mr-3\",attrs:{\"title\":_vm.__('Comment on this file'),\"aria-label\":_vm.__('Comment on this file'),\"icon\":\"comment\",\"category\":\"tertiary\",\"size\":\"small\",\"data-testid\":\"comment-files-button\"},on:{\"click\":function($event){return _vm.toggleFileCommentForm(_vm.diffFile.file_path)}}}):_vm._e(),_vm._v(\" \"),_c('gl-button-group',{staticClass:\"!gl-pt-0\"},[(_vm.diffFile.external_url)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.focus\",modifiers:{\"hover\":true,\"focus\":true}}],ref:\"externalLink\",attrs:{\"href\":_vm.diffFile.external_url,\"title\":_vm.externalUrlLabel,\"aria-label\":_vm.externalUrlLabel,\"target\":\"_blank\",\"data-track-action\":\"click_toggle_external_button\",\"data-track-label\":\"diff_toggle_external_button\",\"data-track-property\":\"diff_toggle_external\",\"icon\":\"external-link\"}}):_vm._e(),_vm._v(\" \"),_c('gl-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.focus\",value:(_vm.$options.i18n.optionsDropdownTitle),expression:\"$options.i18n.optionsDropdownTitle\",modifiers:{\"hover\":true,\"focus\":true}}],staticClass:\"!gl-pt-0\",attrs:{\"size\":\"small\",\"category\":\"tertiary\",\"right\":\"\",\"toggle-class\":\"btn-icon js-diff-more-actions\",\"data-testid\":\"options-dropdown-button\",\"lazy\":\"\"},scopedSlots:_vm._u([{key:\"button-content\",fn:function(){return [_c('gl-icon',{staticClass:\"mr-0\",attrs:{\"name\":\"ellipsis_v\"}}),_vm._v(\" \"),_c('span',{staticClass:\"sr-only\"},[_vm._v(_vm._s(_vm.$options.i18n.optionsDropdownTitle))])]},proxy:true}],null,false,1529039611)},[_vm._v(\" \"),_c('gl-dropdown-item',{ref:\"viewButton\",attrs:{\"href\":_vm.diffFile.view_path,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.viewFileButtonText)+\"\\n \")]),_vm._v(\" \"),(_vm.showEditButton)?[(_vm.diffFile.edit_path)?_c('gl-dropdown-item',{ref:\"editButton\",staticClass:\"js-edit-blob\",attrs:{\"href\":_vm.diffFile.edit_path},on:{\"click\":_vm.showForkMessage}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Edit in single-file editor'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.diffFile.edit_path)?_c('gl-dropdown-item',{ref:\"ideEditButton\",staticClass:\"js-ide-edit-blob\",attrs:{\"href\":_vm.diffFile.ide_edit_path,\"data-testid\":\"edit-in-ide-button\",\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Open in Web IDE'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.diffFile.replaced_view_path)?_c('gl-dropdown-item',{ref:\"replacedFileButton\",attrs:{\"href\":_vm.diffFile.replaced_view_path,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.viewReplacedFileButtonText)+\"\\n \")]):_vm._e()]:_vm._e(),_vm._v(\" \"),(!_vm.isCollapsed)?[(!_vm.diffFile.is_fully_expanded || _vm.diffHasDiscussions(_vm.diffFile))?_c('gl-dropdown-divider'):_vm._e(),_vm._v(\" \"),(_vm.diffHasDiscussions(_vm.diffFile))?_c('gl-dropdown-item',{ref:\"toggleDiscussionsButton\",attrs:{\"data-testid\":\"toggle-comments-button\"},on:{\"click\":function($event){return _vm.toggleFileDiscussionWrappers(_vm.diffFile)}}},[(_vm.diffHasExpandedDiscussions(_vm.diffFile))?[_vm._v(\"\\n \"+_vm._s(_vm.__('Hide comments on this file'))+\"\\n \")]:[_vm._v(\"\\n \"+_vm._s(_vm.__('Show comments on this file'))+\"\\n \")]],2):_vm._e(),_vm._v(\" \"),(!_vm.diffFile.is_fully_expanded)?_c('gl-dropdown-item',{ref:\"expandDiffToFullFileButton\",attrs:{\"disabled\":_vm.diffFile.isLoadingFullFile},on:{\"click\":function($event){return _vm.toggleFullDiff(_vm.diffFile.file_path)}}},[(_vm.diffFile.isLoadingFullFile)?_c('gl-loading-icon',{attrs:{\"size\":\"sm\",\"inline\":\"\"}}):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.expandDiffToFullFileTitle)+\"\\n \")],1):_vm._e()]:_vm._e()],2)],1)],1):_vm._e(),_vm._v(\" \"),(_vm.diffFile.submodule_compare)?_c('div',{staticClass:\"file-actions gl-hidden gl-flex-wrap gl-items-center sm:gl-flex\"},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover\",modifiers:{\"hover\":true}},{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.submoduleDiffCompareLinkText),expression:\"submoduleDiffCompareLinkText\"}],staticClass:\"submodule-compare gl-inline-block\",attrs:{\"title\":_vm.$options.i18n.compareButtonLabel,\"aria-label\":_vm.$options.i18n.compareButtonLabel,\"href\":_vm.diffFile.submodule_compare.url}})],1):_vm._e()])\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!./diff_file_header.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!./diff_file_header.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlTooltipDirective,\n GlIcon,\n GlBadge,\n GlButton,\n GlButtonGroup,\n GlDropdown,\n GlDropdownItem,\n GlDropdownDivider,\n GlFormCheckbox,\n GlLoadingIcon,\n} from '@gitlab/ui';\nimport { escape } from 'lodash';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { scrollToElement } from '~/lib/utils/common_utils';\nimport { truncateSha } from '~/lib/utils/text_utility';\nimport { __, s__, sprintf } from '~/locale';\nimport ClipboardButton from '~/vue_shared/components/clipboard_button.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\n\nimport { createFileUrl, fileContentsId } from '~/diffs/components/diff_row_utils';\nimport { DIFF_FILE_AUTOMATIC_COLLAPSE } from '../constants';\nimport { DIFF_FILE_HEADER } from '../i18n';\nimport { collapsedType, isCollapsed } from '../utils/diff_file';\nimport { reviewable } from '../utils/file_reviews';\n\nimport DiffStats from './diff_stats.vue';\n\nexport default {\n components: {\n ClipboardButton,\n GlIcon,\n DiffStats,\n GlBadge,\n GlButton,\n GlButtonGroup,\n GlDropdown,\n GlDropdownItem,\n GlDropdownDivider,\n GlFormCheckbox,\n GlLoadingIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n SafeHtml,\n },\n mixins: [glFeatureFlagsMixin()],\n i18n: {\n ...DIFF_FILE_HEADER,\n compareButtonLabel: __('Compare submodule commit revisions'),\n fileModeTooltip: __('File permissions'),\n },\n props: {\n discussionPath: {\n type: String,\n required: false,\n default: '',\n },\n diffFile: {\n type: Object,\n required: true,\n },\n collapsible: {\n type: Boolean,\n required: false,\n default: false,\n },\n addMergeRequestButtons: {\n type: Boolean,\n required: false,\n default: false,\n },\n expanded: {\n type: Boolean,\n required: false,\n default: true,\n },\n canCurrentUserFork: {\n type: Boolean,\n required: true,\n },\n viewDiffsFileByFile: {\n type: Boolean,\n required: false,\n default: false,\n },\n showLocalFileReviews: {\n type: Boolean,\n required: false,\n default: false,\n },\n reviewed: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n ...mapState('diffs', ['latestDiff']),\n ...mapGetters('diffs', ['diffHasExpandedDiscussions', 'diffHasDiscussions']),\n ...mapGetters(['getNoteableData']),\n diffContentIDSelector() {\n return fileContentsId(this.diffFile);\n },\n diffUrl() {\n return createFileUrl(this.diffFile);\n },\n titleLink() {\n if (this.diffFile.submodule) {\n return this.diffFile.submodule_tree_url || this.diffFile.submodule_link;\n }\n\n if (!this.discussionPath) {\n return this.diffUrl;\n }\n\n return this.discussionPath;\n },\n submoduleDiffCompareLinkText() {\n if (this.diffFile.submodule_compare) {\n const truncatedOldSha = escape(truncateSha(this.diffFile.submodule_compare.old_sha));\n const truncatedNewSha = escape(truncateSha(this.diffFile.submodule_compare.new_sha));\n return sprintf(\n __('Compare %{oldCommitId}...%{newCommitId}'),\n {\n oldCommitId: `<span class=\"commit-sha\">${truncatedOldSha}</span>`,\n newCommitId: `<span class=\"commit-sha\">${truncatedNewSha}</span>`,\n },\n false,\n );\n }\n return null;\n },\n filePath() {\n if (this.diffFile.submodule) {\n return `${this.diffFile.file_path} @ ${truncateSha(this.diffFile.blob.id)}`;\n }\n\n if (this.diffFile.deleted_file) {\n return sprintf(__('%{filePath} deleted'), { filePath: this.diffFile.file_path }, false);\n }\n\n return this.diffFile.file_path;\n },\n isUsingLfs() {\n return this.diffFile.stored_externally && this.diffFile.external_storage === 'lfs';\n },\n isCollapsed() {\n return isCollapsed(this.diffFile, { fileByFile: this.viewDiffsFileByFile });\n },\n collapseIcon() {\n return this.expanded ? 'chevron-down' : 'chevron-right';\n },\n viewFileButtonText() {\n const truncatedContentSha = escape(truncateSha(this.diffFile.content_sha));\n return sprintf(\n s__('MergeRequests|View file @ %{commitId}'),\n { commitId: truncatedContentSha },\n false,\n );\n },\n viewReplacedFileButtonText() {\n const truncatedBaseSha = escape(truncateSha(this.diffFile.diff_refs.base_sha));\n return sprintf(s__('MergeRequests|View replaced file @ %{commitId}'), {\n commitId: truncatedBaseSha,\n });\n },\n gfmCopyText() {\n return `\\`${this.diffFile.file_path}\\``;\n },\n isFileRenamed() {\n return this.diffFile.renamed_file;\n },\n isModeChanged() {\n return this.diffFile.mode_changed;\n },\n expandDiffToFullFileTitle() {\n if (this.diffFile.isShowingFullFile) {\n return s__('MRDiff|Show changes only');\n }\n return s__('MRDiff|Show full file');\n },\n showEditButton() {\n return (\n this.diffFile.blob?.readable_text &&\n !this.diffFile.deleted_file &&\n (this.diffFile.edit_path || this.diffFile.ide_edit_path)\n );\n },\n isReviewable() {\n return reviewable(this.diffFile);\n },\n externalUrlLabel() {\n return sprintf(__('View on %{url}'), { url: this.diffFile.formatted_external_url });\n },\n labelToggleFile() {\n return this.expanded ? __('Hide file contents') : __('Show file contents');\n },\n showCommentButton() {\n return this.getNoteableData.current_user.can_create_note;\n },\n },\n methods: {\n ...mapActions('diffs', [\n 'toggleFileDiscussionWrappers',\n 'toggleFullDiff',\n 'setCurrentFileHash',\n 'reviewFile',\n 'setFileCollapsedByUser',\n 'setFileForcedOpen',\n 'toggleFileCommentForm',\n ]),\n handleToggleFile() {\n this.setFileForcedOpen({\n filePath: this.diffFile.file_path,\n forced: false,\n });\n this.$emit('toggleFile');\n },\n showForkMessage(e) {\n if (this.canCurrentUserFork && !this.diffFile.can_modify_blob) {\n e.preventDefault();\n this.$emit('showForkMessage');\n }\n },\n handleFileNameClick(e) {\n const isLinkToOtherPage =\n this.diffFile.submodule_tree_url || this.diffFile.submodule_link || this.discussionPath;\n\n if (!isLinkToOtherPage) {\n e.preventDefault();\n const selector = this.diffContentIDSelector;\n scrollToElement(document.querySelector(selector));\n window.location.hash = selector;\n if (!this.viewDiffsFileByFile) {\n this.setCurrentFileHash(this.diffFile.file_hash);\n }\n }\n },\n toggleReview(newReviewedStatus) {\n // this is the easiest way to hide an already open tooltip that triggers on focus\n document.activeElement.blur();\n const autoCollapsed =\n this.isCollapsed && collapsedType(this.diffFile) === DIFF_FILE_AUTOMATIC_COLLAPSE;\n const open = this.expanded;\n const closed = !open;\n const reviewed = newReviewedStatus;\n\n this.reviewFile({ file: this.diffFile, reviewed });\n\n if (reviewed && autoCollapsed) {\n this.setFileCollapsedByUser({\n filePath: this.diffFile.file_path,\n collapsed: true,\n });\n }\n\n if ((open && reviewed) || (closed && !reviewed)) {\n this.setFileForcedOpen({\n filePath: this.diffFile.file_path,\n forced: false,\n });\n this.$emit('toggleFile');\n }\n },\n },\n};\n</script>\n\n<template>\n <div\n ref=\"header\"\n class=\"js-file-title file-title file-title-flex-parent\"\n data-testid=\"file-title-container\"\n :data-qa-file-name=\"filePath\"\n @click.self=\"handleToggleFile\"\n >\n <div class=\"file-header-content\">\n <gl-button\n v-if=\"collapsible\"\n ref=\"collapseButton\"\n class=\"gl-mr-2\"\n category=\"tertiary\"\n size=\"small\"\n :icon=\"collapseIcon\"\n :aria-label=\"labelToggleFile\"\n @click.stop=\"handleToggleFile\"\n />\n <a\n :v-once=\"!viewDiffsFileByFile\"\n class=\"gl-mr-2 gl-break-all !gl-no-underline\"\n :href=\"titleLink\"\n data-testid=\"file-title\"\n @click=\"handleFileNameClick\"\n >\n <span v-if=\"isFileRenamed\">\n <strong\n v-gl-tooltip\n v-safe-html=\"diffFile.old_path_html\"\n :title=\"diffFile.old_path\"\n class=\"file-title-name\"\n ></strong>\n →\n <strong\n v-gl-tooltip\n v-safe-html=\"diffFile.new_path_html\"\n :title=\"diffFile.new_path\"\n class=\"file-title-name\"\n ></strong>\n </span>\n\n <strong\n v-else\n v-gl-tooltip\n :title=\"filePath\"\n class=\"file-title-name\"\n data-container=\"body\"\n data-testid=\"file-name-content\"\n >\n {{ filePath }}\n </strong>\n </a>\n\n <clipboard-button\n :title=\"__('Copy file path')\"\n :text=\"diffFile.file_path\"\n :gfm=\"gfmCopyText\"\n size=\"small\"\n data-testid=\"diff-file-copy-clipboard\"\n category=\"tertiary\"\n data-track-action=\"click_copy_file_button\"\n data-track-label=\"diff_copy_file_path_button\"\n data-track-property=\"diff_copy_file\"\n />\n\n <small\n v-if=\"isModeChanged\"\n ref=\"fileMode\"\n v-gl-tooltip.hover.focus\n class=\"gl-mr-2 gl-text-subtle\"\n :title=\"$options.i18n.fileModeTooltip\"\n >\n {{ diffFile.a_mode }} → {{ diffFile.b_mode }}\n </small>\n\n <gl-badge v-if=\"isUsingLfs\" variant=\"neutral\" class=\"gl-mr-2\" data-testid=\"label-lfs\">{{\n __('LFS')\n }}</gl-badge>\n </div>\n\n <div\n v-if=\"!diffFile.submodule && addMergeRequestButtons\"\n class=\"file-actions gl-ml-auto gl-flex gl-items-center gl-self-start\"\n >\n <diff-stats\n :diff-file=\"diffFile\"\n :added-lines=\"diffFile.added_lines\"\n :removed-lines=\"diffFile.removed_lines\"\n />\n <gl-form-checkbox\n v-if=\"isReviewable && showLocalFileReviews\"\n v-gl-tooltip.hover.focus.left\n data-testid=\"fileReviewCheckbox\"\n class=\"-gl-mb-3 gl-mr-5 gl-flex gl-items-center\"\n :title=\"$options.i18n.fileReviewTooltip\"\n :checked=\"reviewed\"\n @change=\"toggleReview\"\n >\n {{ $options.i18n.fileReviewLabel }}\n </gl-form-checkbox>\n <gl-button\n v-if=\"showCommentButton\"\n v-gl-tooltip.hover.focus\n :title=\"__('Comment on this file')\"\n :aria-label=\"__('Comment on this file')\"\n icon=\"comment\"\n category=\"tertiary\"\n size=\"small\"\n class=\"btn-icon gl-mr-3\"\n data-testid=\"comment-files-button\"\n @click=\"toggleFileCommentForm(diffFile.file_path)\"\n />\n <gl-button-group class=\"!gl-pt-0\">\n <gl-button\n v-if=\"diffFile.external_url\"\n ref=\"externalLink\"\n v-gl-tooltip.hover.focus\n :href=\"diffFile.external_url\"\n :title=\"externalUrlLabel\"\n :aria-label=\"externalUrlLabel\"\n target=\"_blank\"\n data-track-action=\"click_toggle_external_button\"\n data-track-label=\"diff_toggle_external_button\"\n data-track-property=\"diff_toggle_external\"\n icon=\"external-link\"\n />\n <gl-dropdown\n v-gl-tooltip.hover.focus=\"$options.i18n.optionsDropdownTitle\"\n size=\"small\"\n category=\"tertiary\"\n right\n toggle-class=\"btn-icon js-diff-more-actions\"\n class=\"!gl-pt-0\"\n data-testid=\"options-dropdown-button\"\n lazy\n >\n <template #button-content>\n <gl-icon name=\"ellipsis_v\" class=\"mr-0\" />\n <span class=\"sr-only\">{{ $options.i18n.optionsDropdownTitle }}</span>\n </template>\n <gl-dropdown-item ref=\"viewButton\" :href=\"diffFile.view_path\" target=\"_blank\">\n {{ viewFileButtonText }}\n </gl-dropdown-item>\n <template v-if=\"showEditButton\">\n <gl-dropdown-item\n v-if=\"diffFile.edit_path\"\n ref=\"editButton\"\n :href=\"diffFile.edit_path\"\n class=\"js-edit-blob\"\n @click=\"showForkMessage\"\n >\n {{ __('Edit in single-file editor') }}\n </gl-dropdown-item>\n <gl-dropdown-item\n v-if=\"diffFile.edit_path\"\n ref=\"ideEditButton\"\n :href=\"diffFile.ide_edit_path\"\n class=\"js-ide-edit-blob\"\n data-testid=\"edit-in-ide-button\"\n target=\"_blank\"\n >\n {{ __('Open in Web IDE') }}\n </gl-dropdown-item>\n <gl-dropdown-item\n v-if=\"diffFile.replaced_view_path\"\n ref=\"replacedFileButton\"\n :href=\"diffFile.replaced_view_path\"\n target=\"_blank\"\n >\n {{ viewReplacedFileButtonText }}\n </gl-dropdown-item>\n </template>\n\n <template v-if=\"!isCollapsed\">\n <gl-dropdown-divider\n v-if=\"!diffFile.is_fully_expanded || diffHasDiscussions(diffFile)\"\n />\n\n <gl-dropdown-item\n v-if=\"diffHasDiscussions(diffFile)\"\n ref=\"toggleDiscussionsButton\"\n data-testid=\"toggle-comments-button\"\n @click=\"toggleFileDiscussionWrappers(diffFile)\"\n >\n <template v-if=\"diffHasExpandedDiscussions(diffFile)\">\n {{ __('Hide comments on this file') }}\n </template>\n <template v-else>\n {{ __('Show comments on this file') }}\n </template>\n </gl-dropdown-item>\n <gl-dropdown-item\n v-if=\"!diffFile.is_fully_expanded\"\n ref=\"expandDiffToFullFileButton\"\n :disabled=\"diffFile.isLoadingFullFile\"\n @click=\"toggleFullDiff(diffFile.file_path)\"\n >\n <gl-loading-icon v-if=\"diffFile.isLoadingFullFile\" size=\"sm\" inline />\n {{ expandDiffToFullFileTitle }}\n </gl-dropdown-item>\n </template>\n </gl-dropdown>\n </gl-button-group>\n </div>\n\n <div\n v-if=\"diffFile.submodule_compare\"\n class=\"file-actions gl-hidden gl-flex-wrap gl-items-center sm:gl-flex\"\n >\n <gl-button\n v-gl-tooltip.hover\n v-safe-html=\"submoduleDiffCompareLinkText\"\n class=\"submodule-compare gl-inline-block\"\n :title=\"$options.i18n.compareButtonLabel\"\n :aria-label=\"$options.i18n.compareButtonLabel\"\n :href=\"diffFile.submodule_compare.url\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./diff_file_header.vue?vue&type=template&id=3b3bca96\"\nimport script from \"./diff_file_header.vue?vue&type=script&lang=js\"\nexport * from \"./diff_file_header.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 { BLink } from '../../../../vendor/bootstrap-vue/src/components/link/link';\nimport { ENTER, SPACE } from '../constants';\nimport { stopEvent } from '../../../../utils/utils';\nimport { isItem } from './utils';\nimport { DISCLOSURE_DROPDOWN_ITEM_NAME } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst ITEM_CLASS = 'gl-new-dropdown-item';\nvar script = {\n name: DISCLOSURE_DROPDOWN_ITEM_NAME,\n ITEM_CLASS,\n components: {\n BLink\n },\n props: {\n item: {\n type: Object,\n required: false,\n default: null,\n validator: isItem\n }\n },\n computed: {\n isLink() {\n var _this$item, _this$item2;\n return typeof ((_this$item = this.item) === null || _this$item === void 0 ? void 0 : _this$item.href) === 'string' || typeof ((_this$item2 = this.item) === null || _this$item2 === void 0 ? void 0 : _this$item2.to) === 'string';\n },\n isCustomContent() {\n return Boolean(this.$scopedSlots.default);\n },\n itemComponent() {\n const {\n item\n } = this;\n if (this.isLink) return {\n is: BLink,\n attrs: {\n href: item.href,\n to: item.to,\n ...item.extraAttrs\n },\n listeners: {\n click: this.action\n }\n };\n return {\n is: 'button',\n attrs: {\n ...(item === null || item === void 0 ? void 0 : item.extraAttrs),\n type: 'button'\n },\n listeners: {\n click: () => {\n var _item$action;\n item === null || item === void 0 ? void 0 : (_item$action = item.action) === null || _item$action === void 0 ? void 0 : _item$action.call(undefined, item);\n this.action();\n }\n }\n };\n },\n listIndex() {\n var _this$item3, _this$item3$extraAttr;\n return (_this$item3 = this.item) !== null && _this$item3 !== void 0 && (_this$item3$extraAttr = _this$item3.extraAttrs) !== null && _this$item3$extraAttr !== void 0 && _this$item3$extraAttr.disabled ? null : 0;\n },\n componentIndex() {\n var _this$item4, _this$item4$extraAttr;\n return (_this$item4 = this.item) !== null && _this$item4 !== void 0 && (_this$item4$extraAttr = _this$item4.extraAttrs) !== null && _this$item4$extraAttr !== void 0 && _this$item4$extraAttr.disabled ? null : -1;\n },\n wrapperClass() {\n var _this$item$wrapperCla, _this$item5;\n return (_this$item$wrapperCla = (_this$item5 = this.item) === null || _this$item5 === void 0 ? void 0 : _this$item5.wrapperClass) !== null && _this$item$wrapperCla !== void 0 ? _this$item$wrapperCla : '';\n },\n wrapperListeners() {\n const listeners = {\n keydown: this.onKeydown\n };\n if (this.isCustomContent) {\n listeners.click = this.action;\n }\n return listeners;\n }\n },\n methods: {\n onKeydown(event) {\n const {\n code\n } = event;\n if (code === ENTER || code === SPACE) {\n if (this.isCustomContent) {\n this.action();\n } else {\n stopEvent(event);\n /** Instead of simply navigating or calling the action, we want\n * the `a/button` to be the target of the event as it might have additional attributes.\n * E.g. `a` might have `target` attribute.\n */\n const e = new MouseEvent('click', {\n bubbles: true,\n cancelable: true\n });\n if (this.isLink) {\n this.$refs.item.$el.dispatchEvent(e);\n } else {\n var _this$$refs$item;\n (_this$$refs$item = this.$refs.item) === null || _this$$refs$item === void 0 ? void 0 : _this$$refs$item.dispatchEvent(e);\n }\n }\n }\n },\n action() {\n this.$emit('action', this.item);\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('li',_vm._g({class:[_vm.$options.ITEM_CLASS, _vm.wrapperClass],attrs:{\"tabindex\":_vm.listIndex,\"data-testid\":\"disclosure-dropdown-item\"}},_vm.wrapperListeners),[_vm._t(\"default\",function(){return [_c(_vm.itemComponent.is,_vm._g(_vm._b({ref:\"item\",tag:\"component\",staticClass:\"gl-new-dropdown-item-content\",attrs:{\"tabindex\":_vm.componentIndex}},'component',_vm.itemComponent.attrs,false),_vm.itemComponent.listeners),[_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n \"+_vm._s(_vm.item.text)+\"\\n \")]})],2)])]})],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__;\nexport { ITEM_CLASS };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('ul',{staticClass:\"gl-contents\"},[(_vm.showExportButton)?_c('gl-disclosure-dropdown-item',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.exportModalId),expression:\"exportModalId\"}],attrs:{\"data-testid\":\"export-as-csv-button\",\"item\":_vm.dropdownItems.exportAsCSV}}):_vm._e(),_vm._v(\" \"),(_vm.showImportButton)?_c('gl-disclosure-dropdown-item',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.importModalId),expression:\"importModalId\"}],attrs:{\"data-testid\":\"import-from-csv-button\",\"item\":_vm.dropdownItems.importCSV}}):_vm._e(),_vm._v(\" \"),(_vm.showImportButton && _vm.canEdit)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"import-from-jira-link\",\"item\":_vm.dropdownItems.importFromJIRA}}):_vm._e(),_vm._v(\" \"),(_vm.showExportButton)?_c('csv-export-modal',{attrs:{\"modal-id\":_vm.exportModalId,\"export-csv-path\":_vm.exportCsvPath,\"issuable-count\":_vm.issuableCount}}):_vm._e(),_vm._v(\" \"),(_vm.showImportButton)?_c('csv-import-modal',{attrs:{\"modal-id\":_vm.importModalId}}):_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!./csv_export_modal.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!./csv_export_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlModal, GlSprintf, GlIcon } from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { __, n__ } from '~/locale';\n\nexport default {\n actionCancel: {\n text: __('Cancel'),\n },\n i18n: {\n exportText: __(\n 'The CSV export will be created in the background. Once finished, it will be sent to %{email} in an attachment.',\n ),\n },\n components: {\n GlModal,\n GlSprintf,\n GlIcon,\n },\n inject: {\n issuableType: {\n default: TYPE_ISSUE,\n },\n email: {\n default: '',\n },\n },\n props: {\n exportCsvPath: {\n type: String,\n required: true,\n },\n issuableCount: {\n type: Number,\n required: true,\n },\n modalId: {\n type: String,\n required: true,\n },\n },\n computed: {\n actionPrimary() {\n return {\n text: this.exportText,\n attributes: {\n href: this.exportCsvPath,\n variant: 'confirm',\n 'data-method': 'post',\n 'data-testid': 'export-issues-button',\n 'data-track-action': 'click_button',\n 'data-track-label': this.dataTrackLabel,\n },\n };\n },\n isIssue() {\n return this.issuableType === TYPE_ISSUE;\n },\n dataTrackLabel() {\n return this.isIssue ? 'export_issues_csv' : 'export_merge-requests_csv';\n },\n exportText() {\n return this.isIssue ? __('Export issues') : __('Export merge requests');\n },\n issuableCountText() {\n return this.isIssue\n ? n__('1 issue selected', '%d issues selected', this.issuableCount)\n : n__('1 merge request selected', '%d merge requests selected', this.issuableCount);\n },\n },\n};\n</script>\n\n<template>\n <gl-modal\n :modal-id=\"modalId\"\n :action-primary=\"actionPrimary\"\n :action-cancel=\"$options.actionCancel\"\n body-class=\"!gl-p-0\"\n :title=\"exportText\"\n data-testid=\"export-issuable-modal\"\n >\n <div\n class=\"gl-items-center gl-justify-start gl-border-1 gl-border-subtle gl-p-4 gl-border-b-solid\"\n >\n <gl-icon name=\"check\" class=\"gl-color-green-400\" />\n <strong class=\"gl-m-3\">{{ issuableCountText }}</strong>\n </div>\n <div class=\"modal-text gl-px-4 gl-py-5\">\n <gl-sprintf :message=\"$options.i18n.exportText\">\n <template #email>\n <strong>{{ email }}</strong>\n </template>\n </gl-sprintf>\n </div>\n </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./csv_export_modal.vue?vue&type=template&id=2ea547ee\"\nimport script from \"./csv_export_modal.vue?vue&type=script&lang=js\"\nexport * from \"./csv_export_modal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{attrs:{\"modal-id\":_vm.modalId,\"action-primary\":_vm.actionPrimary,\"action-cancel\":_vm.$options.actionCancel,\"body-class\":\"!gl-p-0\",\"title\":_vm.exportText,\"data-testid\":\"export-issuable-modal\"}},[_c('div',{staticClass:\"gl-items-center gl-justify-start gl-border-1 gl-border-subtle gl-p-4 gl-border-b-solid\"},[_c('gl-icon',{staticClass:\"gl-color-green-400\",attrs:{\"name\":\"check\"}}),_vm._v(\" \"),_c('strong',{staticClass:\"gl-m-3\"},[_vm._v(_vm._s(_vm.issuableCountText))])],1),_vm._v(\" \"),_c('div',{staticClass:\"modal-text gl-px-4 gl-py-5\"},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.exportText},scopedSlots:_vm._u([{key:\"email\",fn:function(){return [_c('strong',[_vm._v(_vm._s(_vm.email))])]},proxy:true}])})],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!./csv_import_modal.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!./csv_import_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlModal, GlFormGroup } from '@gitlab/ui';\nimport csrf from '~/lib/utils/csrf';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n i18n: {\n maximumFileSizeText: __('The maximum file size allowed is %{size}.'),\n importIssuesText: __('Import issues'),\n uploadCsvFileText: __('Upload CSV file'),\n mainText: __(\n \"Your issues will be imported in the background. Once finished, you'll get a confirmation email.\",\n ),\n helpText: __(\n 'It must have a header row and at least two columns: the first column is the issue title and the second column is the issue description. The separator is automatically detected.',\n ),\n },\n actionPrimary: {\n text: __('Import issues'),\n },\n actionCancel: {\n text: __('Cancel'),\n },\n components: {\n GlModal,\n GlFormGroup,\n },\n inject: {\n importCsvIssuesPath: {\n default: '',\n },\n maxAttachmentSize: {\n default: 0,\n },\n },\n props: {\n modalId: {\n type: String,\n required: true,\n },\n },\n computed: {\n maxFileSizeText() {\n return sprintf(this.$options.i18n.maximumFileSizeText, { size: this.maxAttachmentSize });\n },\n },\n methods: {\n submitForm() {\n this.$refs.form.submit();\n },\n },\n csrf,\n};\n</script>\n\n<template>\n <gl-modal\n :modal-id=\"modalId\"\n :title=\"$options.i18n.importIssuesText\"\n :action-primary=\"$options.actionPrimary\"\n :action-cancel=\"$options.actionCancel\"\n @primary=\"submitForm\"\n >\n <form ref=\"form\" :action=\"importCsvIssuesPath\" enctype=\"multipart/form-data\" method=\"post\">\n <input :value=\"$options.csrf.token\" type=\"hidden\" name=\"authenticity_token\" />\n <p>{{ $options.i18n.mainText }}</p>\n <gl-form-group :label=\"$options.i18n.uploadCsvFileText\" class=\"gl-truncate\" label-for=\"file\">\n <input id=\"file\" type=\"file\" name=\"file\" accept=\".csv,text/csv\" />\n </gl-form-group>\n <p class=\"gl-text-subtle\">\n {{ $options.i18n.helpText }}\n {{ maxFileSizeText }}\n </p>\n </form>\n </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./csv_import_modal.vue?vue&type=template&id=4596ece7\"\nimport script from \"./csv_import_modal.vue?vue&type=script&lang=js\"\nexport * from \"./csv_import_modal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{attrs:{\"modal-id\":_vm.modalId,\"title\":_vm.$options.i18n.importIssuesText,\"action-primary\":_vm.$options.actionPrimary,\"action-cancel\":_vm.$options.actionCancel},on:{\"primary\":_vm.submitForm}},[_c('form',{ref:\"form\",attrs:{\"action\":_vm.importCsvIssuesPath,\"enctype\":\"multipart/form-data\",\"method\":\"post\"}},[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"authenticity_token\"},domProps:{\"value\":_vm.$options.csrf.token}}),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$options.i18n.mainText))]),_vm._v(\" \"),_c('gl-form-group',{staticClass:\"gl-truncate\",attrs:{\"label\":_vm.$options.i18n.uploadCsvFileText,\"label-for\":\"file\"}},[_c('input',{attrs:{\"id\":\"file\",\"type\":\"file\",\"name\":\"file\",\"accept\":\".csv,text/csv\"}})]),_vm._v(\" \"),_c('p',{staticClass:\"gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.helpText)+\"\\n \"+_vm._s(_vm.maxFileSizeText)+\"\\n \")])],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!./csv_import_export_buttons.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!./csv_import_export_buttons.vue?vue&type=script&lang=js\"","<script>\nimport { GlDisclosureDropdownItem, GlModalDirective } from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { __ } from '~/locale';\nimport CsvExportModal from './csv_export_modal.vue';\nimport CsvImportModal from './csv_import_modal.vue';\n\nexport default {\n components: {\n GlDisclosureDropdownItem,\n CsvExportModal,\n CsvImportModal,\n },\n directives: {\n GlModal: GlModalDirective,\n },\n inject: {\n issuableType: {\n default: TYPE_ISSUE,\n },\n showExportButton: {\n default: false,\n },\n showImportButton: {\n default: false,\n },\n canEdit: {\n default: false,\n },\n projectImportJiraPath: {\n default: null,\n },\n },\n props: {\n exportCsvPath: {\n type: String,\n required: false,\n default: '',\n },\n issuableCount: {\n type: Number,\n required: false,\n default: undefined,\n },\n trackImportClick: {\n type: Boolean,\n required: false,\n default: null,\n },\n },\n data() {\n return {\n dropdownItems: {\n exportAsCSV: {\n text: __('Export as CSV'),\n },\n importCSV: {\n text: __('Import CSV'),\n },\n importFromJIRA: {\n text: __('Import from Jira'),\n href: this.projectImportJiraPath,\n },\n },\n };\n },\n computed: {\n exportModalId() {\n return `${this.issuableType}-export-modal`;\n },\n importModalId() {\n return `${this.issuableType}-import-modal`;\n },\n },\n};\n</script>\n\n<template>\n <ul class=\"gl-contents\">\n <gl-disclosure-dropdown-item\n v-if=\"showExportButton\"\n v-gl-modal=\"exportModalId\"\n data-testid=\"export-as-csv-button\"\n :item=\"dropdownItems.exportAsCSV\"\n />\n <gl-disclosure-dropdown-item\n v-if=\"showImportButton\"\n v-gl-modal=\"importModalId\"\n data-testid=\"import-from-csv-button\"\n :item=\"dropdownItems.importCSV\"\n />\n <gl-disclosure-dropdown-item\n v-if=\"showImportButton && canEdit\"\n data-testid=\"import-from-jira-link\"\n :item=\"dropdownItems.importFromJIRA\"\n />\n\n <csv-export-modal\n v-if=\"showExportButton\"\n :modal-id=\"exportModalId\"\n :export-csv-path=\"exportCsvPath\"\n :issuable-count=\"issuableCount\"\n />\n <csv-import-modal v-if=\"showImportButton\" :modal-id=\"importModalId\" />\n </ul>\n</template>\n","import { render, staticRenderFns } from \"./csv_import_export_buttons.vue?vue&type=template&id=124754d4\"\nimport script from \"./csv_import_export_buttons.vue?vue&type=script&lang=js\"\nexport * from \"./csv_import_export_buttons.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 * Custom positioning reference element.\n * @see https://floating-ui.com/docs/virtual-elements\n */\n\nconst sides = ['top', 'right', 'bottom', 'left'];\nconst alignments = ['start', 'end'];\nconst placements = /*#__PURE__*/sides.reduce((acc, side) => acc.concat(side, side + \"-\" + alignments[0], side + \"-\" + alignments[1]), []);\nconst min = Math.min;\nconst max = Math.max;\nconst round = Math.round;\nconst floor = Math.floor;\nconst createCoords = v => ({\n x: v,\n y: v\n});\nconst oppositeSideMap = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n};\nconst oppositeAlignmentMap = {\n start: 'end',\n end: 'start'\n};\nfunction clamp(start, value, end) {\n return max(start, min(value, end));\n}\nfunction evaluate(value, param) {\n return typeof value === 'function' ? value(param) : value;\n}\nfunction getSide(placement) {\n return placement.split('-')[0];\n}\nfunction getAlignment(placement) {\n return placement.split('-')[1];\n}\nfunction getOppositeAxis(axis) {\n return axis === 'x' ? 'y' : 'x';\n}\nfunction getAxisLength(axis) {\n return axis === 'y' ? 'height' : 'width';\n}\nfunction getSideAxis(placement) {\n return ['top', 'bottom'].includes(getSide(placement)) ? 'y' : 'x';\n}\nfunction getAlignmentAxis(placement) {\n return getOppositeAxis(getSideAxis(placement));\n}\nfunction getAlignmentSides(placement, rects, rtl) {\n if (rtl === void 0) {\n rtl = false;\n }\n const alignment = getAlignment(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const length = getAxisLength(alignmentAxis);\n let mainAlignmentSide = alignmentAxis === 'x' ? alignment === (rtl ? 'end' : 'start') ? 'right' : 'left' : alignment === 'start' ? 'bottom' : 'top';\n if (rects.reference[length] > rects.floating[length]) {\n mainAlignmentSide = getOppositePlacement(mainAlignmentSide);\n }\n return [mainAlignmentSide, getOppositePlacement(mainAlignmentSide)];\n}\nfunction getExpandedPlacements(placement) {\n const oppositePlacement = getOppositePlacement(placement);\n return [getOppositeAlignmentPlacement(placement), oppositePlacement, getOppositeAlignmentPlacement(oppositePlacement)];\n}\nfunction getOppositeAlignmentPlacement(placement) {\n return placement.replace(/start|end/g, alignment => oppositeAlignmentMap[alignment]);\n}\nfunction getSideList(side, isStart, rtl) {\n const lr = ['left', 'right'];\n const rl = ['right', 'left'];\n const tb = ['top', 'bottom'];\n const bt = ['bottom', 'top'];\n switch (side) {\n case 'top':\n case 'bottom':\n if (rtl) return isStart ? rl : lr;\n return isStart ? lr : rl;\n case 'left':\n case 'right':\n return isStart ? tb : bt;\n default:\n return [];\n }\n}\nfunction getOppositeAxisPlacements(placement, flipAlignment, direction, rtl) {\n const alignment = getAlignment(placement);\n let list = getSideList(getSide(placement), direction === 'start', rtl);\n if (alignment) {\n list = list.map(side => side + \"-\" + alignment);\n if (flipAlignment) {\n list = list.concat(list.map(getOppositeAlignmentPlacement));\n }\n }\n return list;\n}\nfunction getOppositePlacement(placement) {\n return placement.replace(/left|right|bottom|top/g, side => oppositeSideMap[side]);\n}\nfunction expandPaddingObject(padding) {\n return {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n ...padding\n };\n}\nfunction getPaddingObject(padding) {\n return typeof padding !== 'number' ? expandPaddingObject(padding) : {\n top: padding,\n right: padding,\n bottom: padding,\n left: padding\n };\n}\nfunction rectToClientRect(rect) {\n const {\n x,\n y,\n width,\n height\n } = rect;\n return {\n width,\n height,\n top: y,\n left: x,\n right: x + width,\n bottom: y + height,\n x,\n y\n };\n}\n\nexport { alignments, clamp, createCoords, evaluate, expandPaddingObject, floor, getAlignment, getAlignmentAxis, getAlignmentSides, getAxisLength, getExpandedPlacements, getOppositeAlignmentPlacement, getOppositeAxis, getOppositeAxisPlacements, getOppositePlacement, getPaddingObject, getSide, getSideAxis, max, min, placements, rectToClientRect, round, sides };\n","import { convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_GROUP, TYPENAME_USER } from '~/graphql_shared/constants';\nimport { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';\nimport { defaultClient } from 'ee/vue_shared/security_configuration/graphql/provider';\nimport { POLICY_TYPE_COMPONENT_OPTIONS } from './components/constants';\nimport { GROUP_TYPE, ROLE_TYPE, USER_TYPE } from './constants';\n\n/**\n * Get a property from a policy's typename\n * @param {String} typeName policy's typename from GraphQL\n * @param {String} field\n * @returns {String|null} policy property if available\n */\nexport const getPolicyType = (typeName = '', field = 'value') => {\n return Object.values(POLICY_TYPE_COMPONENT_OPTIONS).find(\n (component) => component.typeName === typeName,\n )?.[field];\n};\n\n/**\n * Separate existing approvers by type\n * @param {Array} existingApprovers all approvers\n * @returns {Object} approvers separated by type\n */\nexport const decomposeApprovers = (existingApprovers) => {\n return existingApprovers.map((approvers) => {\n const output = {};\n\n const { users = [], groups = [], roles = [] } = approvers;\n\n const hasUsers = users.length > 0;\n const hasGroups = groups.length > 0;\n const hasRoles = roles.length > 0;\n\n if (hasRoles) {\n output[ROLE_TYPE] = approvers.roles || [];\n }\n\n if (hasUsers) {\n output[USER_TYPE] =\n approvers.users\n .map((user) => ({\n ...user,\n type: USER_TYPE,\n value: convertToGraphQLId(TYPENAME_USER, user.id),\n }))\n .map(convertObjectPropsToCamelCase) || [];\n }\n\n if (hasGroups) {\n output[GROUP_TYPE] =\n approvers.groups\n .map((group) => ({\n ...group,\n type: GROUP_TYPE,\n value: convertToGraphQLId(TYPENAME_GROUP, group.id),\n }))\n .map(convertObjectPropsToCamelCase) || [];\n }\n\n return output;\n });\n};\n\n/**\n * Removes initial line dashes from a policy YAML that is received from the API, which\n * is not required for the user.\n * @param {String} manifest the policy from the API request\n * @returns {String} the policy without the initial dashes or the initial string\n */\nexport const removeUnnecessaryDashes = (manifest) => {\n return manifest.replace('---\\n', '');\n};\n\n/**\n * Create GraphQL Client for security policies\n */\nexport const gqClient = defaultClient;\n\n/**\n * Transforms a key-value mapping into an array of objects suitable for use with\n * GlCollapsibleListbox component.\n *\n * @param {Object} textMap - An object where keys represent values and values represent display text.\n * @returns {Array<Object>} An array of objects, each containing 'value' and 'text' properties.\n *\n * @example\n * const mapping = { 'key1': 'Text 1', 'key2': 'Text 2' };\n * const listBoxItems = mapToListboxItems(mapping);\n * // returns: [{ value: 'key1', text: 'Text 1' }, { value: 'key2', text: 'Text 2' }]\n */\n\nexport const mapToListboxItems = (textMap) =>\n Object.entries(textMap).map(([value, text]) => ({\n value,\n text,\n }));\n","import { calculateRemainingMilliseconds, formatTime } from '~/lib/utils/datetime_utility';\n\nexport default {\n data() {\n return {\n remainingTime: formatTime(0),\n remainingTimeIntervalId: null,\n };\n },\n\n mounted() {\n this.startRemainingTimeInterval();\n },\n\n beforeDestroy() {\n if (this.remainingTimeIntervalId) {\n clearInterval(this.remainingTimeIntervalId);\n }\n },\n\n computed: {\n isDelayedJob() {\n return this.job?.scheduled || this.job?.scheduledAt;\n },\n scheduledTime() {\n return this.job.scheduled_at || this.job.scheduledAt;\n },\n },\n\n watch: {\n isDelayedJob() {\n this.startRemainingTimeInterval();\n },\n },\n\n methods: {\n startRemainingTimeInterval() {\n if (this.remainingTimeIntervalId) {\n clearInterval(this.remainingTimeIntervalId);\n }\n\n if (this.isDelayedJob) {\n this.updateRemainingTime();\n this.remainingTimeIntervalId = setInterval(() => this.updateRemainingTime(), 1000);\n }\n },\n\n updateRemainingTime() {\n const remainingMilliseconds = calculateRemainingMilliseconds(this.scheduledTime);\n this.remainingTime = formatTime(remainingMilliseconds);\n },\n },\n};\n","export const ENABLE_BATCH_COMMENTS = 'ENABLE_BATCH_COMMENTS';\nexport const ADD_NEW_DRAFT = 'ADD_NEW_DRAFT';\nexport const DELETE_DRAFT = 'DELETE_DRAFT';\nexport const SET_BATCH_COMMENTS_DRAFTS = 'SET_BATCH_COMMENTS_DRAFTS';\n\nexport const REQUEST_PUBLISH_DRAFT = 'REQUEST_PUBLISH_DRAFT';\nexport const RECEIVE_PUBLISH_DRAFT_SUCCESS = 'RECEIVE_PUBLISH_DRAFT_SUCCESS';\nexport const RECEIVE_PUBLISH_DRAFT_ERROR = 'RECEIVE_PUBLISH_DRAFT_ERROR';\n\nexport const REQUEST_PUBLISH_REVIEW = 'REQUEST_PUBLISH_REVIEW';\nexport const RECEIVE_PUBLISH_REVIEW_SUCCESS = 'RECEIVE_PUBLISH_REVIEW_SUCCESS';\nexport const RECEIVE_PUBLISH_REVIEW_ERROR = 'RECEIVE_PUBLISH_REVIEW_ERROR';\n\nexport const RECEIVE_DRAFT_UPDATE_SUCCESS = 'RECEIVE_DRAFT_UPDATE_SUCCESS';\n\nexport const TOGGLE_RESOLVE_DISCUSSION = 'TOGGLE_RESOLVE_DISCUSSION';\n\nexport const CLEAR_DRAFTS = 'CLEAR_DRAFTS';\n\nexport const SET_REVIEW_BAR_RENDERED = 'SET_REVIEW_BAR_RENDERED';\n\nexport const SET_DRAFT_EDITING = 'SET_DRAFT_EDITING';\n","import { extend } from '../../vue';\nimport { NAME_TH } from '../../constants/components';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { props as props$1, BTd } from './td';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(props$1, NAME_TH);\n\n// --- Main component ---\n\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\nconst BTh = /*#__PURE__*/extend({\n name: NAME_TH,\n extends: BTd,\n props,\n computed: {\n tag() {\n return 'th';\n }\n }\n});\n\nexport { BTh, props };\n","// Zen Mode (full screen) textarea\n//\n/*= provides zen_mode:enter */\n/*= provides zen_mode:leave */\n\nimport autosize from 'autosize';\nimport Dropzone from 'dropzone';\nimport $ from 'jquery';\nimport { Mousetrap } from '~/lib/mousetrap';\nimport 'mousetrap/plugins/pause/mousetrap-pause';\nimport { scrollToElement } from '~/lib/utils/common_utils';\n\nDropzone.autoDiscover = false;\n\n//\n// ### Events\n//\n// `zen_mode:enter`\n//\n// Fired when the \"Edit in fullscreen\" link is clicked.\n//\n// **Synchronicity** Sync\n// **Bubbles** Yes\n// **Cancelable** No\n// **Target** a.js-zen-enter\n//\n// `zen_mode:leave`\n//\n// Fired when the \"Leave Fullscreen\" link is clicked.\n//\n// **Synchronicity** Sync\n// **Bubbles** Yes\n// **Cancelable** No\n// **Target** a.js-zen-leave\n//\n\nexport default class ZenMode {\n constructor() {\n this.active_backdrop = null;\n this.active_textarea = null;\n this.storedStyle = null;\n $(document).on('click', '.js-zen-enter', (e) => {\n e.preventDefault();\n return $(e.currentTarget).trigger('zen_mode:enter');\n });\n $(document).on('click', '.js-zen-leave', (e) => {\n e.preventDefault();\n return $(e.currentTarget).trigger('zen_mode:leave');\n });\n $(document).on('zen_mode:enter', (e) => {\n this.enter($(e.target).closest('.md-area').find('.zen-backdrop'));\n });\n $(document).on('zen_mode:leave', () => {\n this.exit();\n });\n // eslint-disable-next-line consistent-return\n $(document).on('keydown', (e) => {\n // Esc\n if (e.keyCode === 27) {\n e.preventDefault();\n return $(document).trigger('zen_mode:leave');\n }\n });\n }\n\n enter(backdrop) {\n Mousetrap.pause();\n this.active_backdrop = $(backdrop);\n this.active_backdrop.addClass('fullscreen');\n this.active_textarea = this.active_backdrop.find('textarea');\n // Prevent a user-resized textarea from persisting to fullscreen\n this.storedStyle = this.active_textarea.attr('style');\n this.active_textarea.removeAttr('style');\n this.active_textarea.focus();\n }\n\n exit() {\n if (this.active_textarea) {\n Mousetrap.unpause();\n this.active_textarea.closest('.zen-backdrop').removeClass('fullscreen');\n scrollToElement(this.active_textarea, { duration: 0, offset: -100 });\n this.active_textarea.attr('style', this.storedStyle);\n\n autosize(this.active_textarea);\n autosize.update(this.active_textarea);\n\n this.active_textarea = null;\n this.active_backdrop = null;\n\n const $dropzone = $('.div-dropzone');\n if ($dropzone && !$dropzone.hasClass('js-invalid-dropzone')) {\n Dropzone.forElement('.div-dropzone').enable();\n }\n }\n }\n}\n","var baseIteratee = require('./_baseIteratee'),\n baseUniq = require('./_baseUniq');\n\n/**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\nfunction uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, baseIteratee(iteratee, 2)) : [];\n}\n\nmodule.exports = uniqBy;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"epicAncestors\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"ancestors\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasParent\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"url\"},\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":289}};\n doc.loc.source = {\"body\":\"query epicAncestors($fullPath: ID!, $iid: ID) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n issuable: epic(iid: $iid) {\\n id\\n ancestors {\\n nodes {\\n id\\n title\\n state\\n hasParent\\n url: webUrl\\n }\\n }\\n }\\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[\"epicAncestors\"] = oneQuery(doc, \"epicAncestors\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button-group',{staticClass:\"js-comment-button js-comment-submit-button comment-type-dropdown gl-mb-3 gl-w-full sm:gl-mb-0 sm:gl-w-auto\",attrs:{\"data-track-label\":_vm.trackingLabel,\"data-track-action\":\"click_button\",\"data-testid\":\"comment-button\"}},[_c('gl-button',{attrs:{\"type\":\"submit\",\"variant\":\"confirm\",\"disabled\":_vm.disabled},on:{\"click\":_vm.handleClick}},[_vm._v(\"\\n \"+_vm._s(_vm.commentButtonTitle)+\"\\n \")]),_vm._v(\" \"),_c('gl-collapsible-listbox',{attrs:{\"variant\":\"confirm\",\"text-sr-only\":\"\",\"toggle-text\":_vm.$options.i18n.toggleSrText,\"disabled\":_vm.disabled,\"items\":_vm.dropdownItems,\"selected\":_vm.noteType},on:{\"select\":_vm.setNoteType},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('div',{attrs:{\"data-testid\":item.testid}},[_c('strong',[_vm._v(_vm._s(item.text))]),_vm._v(\" \"),_c('p',{staticClass:\"gl-m-0\"},[_vm._v(_vm._s(item.description))])])]}}])})],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!./comment_type_dropdown.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!./comment_type_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlButtonGroup, GlButton, GlCollapsibleListbox } from '@gitlab/ui';\n\nimport { sprintf, __ } from '~/locale';\nimport { COMMENT_FORM } from '~/notes/i18n';\nimport * as constants from '../constants';\n\nexport default {\n name: 'CommentTypeDropdown',\n i18n: {\n ...COMMENT_FORM,\n toggleSrText: __('Comment type'),\n },\n components: {\n GlButtonGroup,\n GlButton,\n GlCollapsibleListbox,\n },\n model: {\n prop: 'noteType',\n event: 'change',\n },\n props: {\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n trackingLabel: {\n type: String,\n required: false,\n default: undefined,\n },\n discussionsRequireResolution: {\n type: Boolean,\n required: false,\n default: false,\n },\n isInternalNote: {\n type: Boolean,\n required: false,\n default: false,\n },\n noteableDisplayName: {\n type: String,\n required: true,\n },\n noteType: {\n type: String,\n required: true,\n },\n isReviewDropdown: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n isNoteTypeComment() {\n return this.noteType === constants.COMMENT;\n },\n isNoteTypeDiscussion() {\n return this.noteType === constants.DISCUSSION;\n },\n dropdownCommentButtonTitle() {\n const { comment, internalComment } = this.$options.i18n.submitButton;\n\n return this.isInternalNote ? internalComment : comment;\n },\n dropdownStartThreadButtonTitle() {\n const { startThread, startInternalThread } = this.$options.i18n.submitButton;\n\n return this.isInternalNote ? startInternalThread : startThread;\n },\n commentButtonTitle() {\n const { comment, internalComment, startThread, startInternalThread } = this.$options.i18n;\n const { saveThread, saveComment } = this.$options.i18n.addToReviewButton;\n\n if (this.isInternalNote) {\n return this.noteType === constants.COMMENT ? internalComment : startInternalThread;\n }\n\n if (this.isReviewDropdown) {\n return this.noteType === constants.COMMENT ? saveComment : saveThread;\n }\n\n return this.noteType === constants.COMMENT ? comment : startThread;\n },\n startDiscussionDescription() {\n const {\n discussionThatNeedsResolution,\n internalDiscussionThatNeedsResolution,\n discussion,\n internalDiscussion,\n } = this.$options.i18n;\n\n if (this.isInternalNote) {\n return this.discussionsRequireResolution\n ? internalDiscussionThatNeedsResolution\n : internalDiscussion;\n }\n return this.discussionsRequireResolution ? discussionThatNeedsResolution : discussion;\n },\n commentDescription() {\n const { commentHelp, internalCommentHelp } = this.$options.i18n.submitButton;\n\n return sprintf(this.isInternalNote ? internalCommentHelp : commentHelp, {\n noteableDisplayName: this.noteableDisplayName,\n });\n },\n dropdownItems() {\n return [\n {\n text: this.dropdownCommentButtonTitle,\n description: this.commentDescription,\n value: constants.COMMENT,\n },\n {\n text: this.dropdownStartThreadButtonTitle,\n description: this.startDiscussionDescription,\n value: constants.DISCUSSION,\n testid: 'discussion-menu-item',\n },\n ];\n },\n },\n methods: {\n handleClick() {\n this.$emit('click');\n },\n setNoteType(value) {\n this.$emit('change', value);\n },\n },\n};\n</script>\n\n<template>\n <gl-button-group\n class=\"js-comment-button js-comment-submit-button comment-type-dropdown gl-mb-3 gl-w-full sm:gl-mb-0 sm:gl-w-auto\"\n :data-track-label=\"trackingLabel\"\n data-track-action=\"click_button\"\n data-testid=\"comment-button\"\n >\n <gl-button type=\"submit\" variant=\"confirm\" :disabled=\"disabled\" @click=\"handleClick\">\n {{ commentButtonTitle }}\n </gl-button>\n <gl-collapsible-listbox\n variant=\"confirm\"\n text-sr-only\n :toggle-text=\"$options.i18n.toggleSrText\"\n :disabled=\"disabled\"\n :items=\"dropdownItems\"\n :selected=\"noteType\"\n @select=\"setNoteType\"\n >\n <template #list-item=\"{ item }\">\n <div :data-testid=\"item.testid\">\n <strong>{{ item.text }}</strong>\n <p class=\"gl-m-0\">{{ item.description }}</p>\n </div>\n </template>\n </gl-collapsible-listbox>\n </gl-button-group>\n</template>\n","import { render, staticRenderFns } from \"./comment_type_dropdown.vue?vue&type=template&id=63ac1d67\"\nimport script from \"./comment_type_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./comment_type_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-avatar-link',{staticClass:\"user-avatar-link js-user-link\",attrs:{\"href\":_vm.linkHref,\"data-user-id\":_vm.userId,\"data-username\":_vm.popoverUsername},on:{\"click\":function($event){$event.stopPropagation();}}},[_c('user-avatar-image',{class:_vm.imgCssWrapperClasses,attrs:{\"img-src\":_vm.imgSrc,\"img-alt\":_vm.imgAlt,\"css-classes\":_vm.imgCssClasses,\"size\":_vm.imgSize,\"tooltip-text\":_vm.avatarTooltipText,\"tooltip-placement\":_vm.tooltipPlacement,\"lazy\":_vm.lazy}},[_vm._t(\"default\")],2),_vm._v(\" \"),(_vm.shouldShowUsername)?_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-ml-1\",attrs:{\"title\":_vm.tooltipText,\"tooltip-placement\":_vm.tooltipPlacement,\"data-testid\":\"user-avatar-link-username\"}},[_vm._v(\"\\n \"+_vm._s(_vm.username)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"avatar-badge\")],2)\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!./user_avatar_link.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!./user_avatar_link.vue?vue&type=script&lang=js\"","<script>\n/* This is a re-usable vue component for rendering a user avatar wrapped in\n a clickable link (likely to the user's profile). The link, image, and\n tooltip can be configured by props passed to this component.\n\n Sample configuration:\n\n <user-avatar-link\n :link-href=\"userProfileUrl\"\n :img-src=\"userAvatarSrc\"\n :img-alt=\"tooltipText\"\n :img-size=\"32\"\n :tooltip-text=\"tooltipText\"\n :tooltip-placement=\"top\"\n :username=\"username\"\n />\n\n*/\n\nimport { GlAvatarLink, GlTooltipDirective } from '@gitlab/ui';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport UserAvatarImage from './user_avatar_image.vue';\n\nexport default {\n name: 'UserAvatarLinkNew',\n components: {\n UserAvatarImage,\n GlAvatarLink,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n lazy: {\n type: Boolean,\n required: false,\n default: false,\n },\n linkHref: {\n type: String,\n required: false,\n default: '',\n },\n imgSrc: {\n type: String,\n required: false,\n default: '',\n },\n imgAlt: {\n type: String,\n required: false,\n default: '',\n },\n imgCssClasses: {\n type: String,\n required: false,\n default: '',\n },\n imgCssWrapperClasses: {\n type: String,\n required: false,\n default: '',\n },\n imgSize: {\n type: [Number, Object],\n required: true,\n },\n tooltipText: {\n type: String,\n required: false,\n default: '',\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'top',\n },\n popoverUserId: {\n type: [String, Number],\n required: false,\n default: '',\n },\n popoverUsername: {\n type: String,\n required: false,\n default: '',\n },\n username: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n userId() {\n return getIdFromGraphQLId(this.popoverUserId);\n },\n shouldShowUsername() {\n return this.username.length > 0;\n },\n avatarTooltipText() {\n // Prevent showing tooltip when popoverUserId is present\n if (this.popoverUserId) {\n return '';\n }\n return this.shouldShowUsername ? '' : this.tooltipText;\n },\n },\n};\n</script>\n\n<template>\n <gl-avatar-link\n :href=\"linkHref\"\n :data-user-id=\"userId\"\n :data-username=\"popoverUsername\"\n class=\"user-avatar-link js-user-link\"\n @click.stop\n >\n <user-avatar-image\n :class=\"imgCssWrapperClasses\"\n :img-src=\"imgSrc\"\n :img-alt=\"imgAlt\"\n :css-classes=\"imgCssClasses\"\n :size=\"imgSize\"\n :tooltip-text=\"avatarTooltipText\"\n :tooltip-placement=\"tooltipPlacement\"\n :lazy=\"lazy\"\n >\n <slot></slot>\n </user-avatar-image>\n\n <span\n v-if=\"shouldShowUsername\"\n v-gl-tooltip\n :title=\"tooltipText\"\n :tooltip-placement=\"tooltipPlacement\"\n class=\"gl-ml-1\"\n data-testid=\"user-avatar-link-username\"\n >\n {{ username }}\n </span>\n\n <slot name=\"avatar-badge\"></slot>\n </gl-avatar-link>\n</template>\n","import { render, staticRenderFns } from \"./user_avatar_link.vue?vue&type=template&id=0c9f1264\"\nimport script from \"./user_avatar_link.vue?vue&type=script&lang=js\"\nexport * from \"./user_avatar_link.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"labels-select-wrapper gl-relative\",class:{\n 'is-standalone': _vm.isDropdownVariantStandalone(_vm.variant),\n 'is-embedded': _vm.isDropdownVariantEmbedded(_vm.variant),\n },attrs:{\"data-testid\":\"sidebar-labels\"}},[(_vm.isDropdownVariantSidebar(_vm.variant))?[_c('sidebar-editable-item',{ref:\"editable\",attrs:{\"title\":_vm.__('Labels'),\"edit-tooltip\":_vm.labelTooltip,\"edit-aria-label\":_vm.labelShortcutDescription,\"edit-keyshortcuts\":_vm.labelShortcutKey,\"loading\":_vm.isLoading,\"can-edit\":_vm.allowLabelEdit},on:{\"open\":function($event){_vm.oldIid = null}},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_c('dropdown-value',{staticClass:\"gl-pt-2\",attrs:{\"disable-labels\":_vm.labelsSelectInProgress,\"selected-labels\":_vm.issuableLabels,\"allow-label-remove\":_vm.allowLabelRemove,\"supports-lock-on-merge\":_vm.isLockOnMergeSupported,\"labels-filter-base-path\":_vm.labelsFilterBasePath,\"labels-filter-param\":_vm.labelsFilterParam},on:{\"onLabelRemove\":_vm.handleLabelRemove,\"onCollapsedValueClick\":_vm.handleCollapsedValueClick}},[_vm._t(\"default\")],2)]},proxy:true},{key:\"default\",fn:function({ edit }){return [_c('dropdown-value',{staticClass:\"gl-mb-2\",attrs:{\"disable-labels\":_vm.labelsSelectInProgress,\"selected-labels\":_vm.issuableLabels,\"allow-label-remove\":_vm.allowLabelRemove,\"supports-lock-on-merge\":_vm.isLockOnMergeSupported,\"labels-filter-base-path\":_vm.labelsFilterBasePath,\"labels-filter-param\":_vm.labelsFilterParam},on:{\"onLabelRemove\":_vm.handleLabelRemove}},[_vm._t(\"default\")],2),_vm._v(\" \"),_c('dropdown-contents',{ref:\"dropdownContents\",staticClass:\"gl-mt-3 gl-w-full\",attrs:{\"dropdown-button-text\":_vm.dropdownButtonText,\"allow-multiselect\":_vm.allowMultiselect,\"labels-list-title\":_vm.labelsListTitle,\"footer-create-label-title\":_vm.footerCreateLabelTitle,\"footer-manage-label-title\":_vm.footerManageLabelTitle,\"labels-create-title\":_vm.labelsCreateTitle,\"selected-labels\":_vm.issuableLabels,\"variant\":_vm.variant,\"is-visible\":edit,\"full-path\":_vm.fullPath,\"workspace-type\":_vm.workspaceType,\"attr-workspace-path\":_vm.attrWorkspacePath,\"label-create-type\":_vm.labelCreateType},on:{\"setLabels\":_vm.handleDropdownClose,\"closeDropdown\":_vm.collapseEditableItem}})]}}],null,true)})]:[_c('dropdown-contents',{ref:\"dropdownContents\",staticClass:\"issuable-form-select-holder\",attrs:{\"dropdown-button-text\":_vm.dropdownButtonText,\"allow-multiselect\":_vm.allowMultiselect,\"labels-list-title\":_vm.labelsListTitle,\"footer-create-label-title\":_vm.footerCreateLabelTitle,\"footer-manage-label-title\":_vm.footerManageLabelTitle,\"labels-create-title\":_vm.labelsCreateTitle,\"selected-labels\":_vm.issuableLabels,\"variant\":_vm.variant,\"full-path\":_vm.fullPath,\"workspace-type\":_vm.workspaceType,\"attr-workspace-path\":_vm.attrWorkspacePath,\"label-create-type\":_vm.labelCreateType},on:{\"setLabels\":_vm.handleDropdownClose}}),_vm._v(\" \"),(_vm.isLabelListEnabled)?_c('embedded-labels-list',{attrs:{\"disabled\":_vm.labelsSelectInProgress,\"selected-labels\":_vm.issuableLabels,\"allow-label-remove\":_vm.allowLabelRemove,\"supports-lock-on-merge\":_vm.isLockOnMergeSupported,\"labels-filter-base-path\":_vm.labelsFilterBasePath,\"labels-filter-param\":_vm.labelsFilterParam},on:{\"onLabelRemove\":_vm.handleLabelRemove}}):_vm._e()]],2)\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!./dropdown_contents_labels_view.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!./dropdown_contents_labels_view.vue?vue&type=script&lang=js\"","<script>\nimport { GlDropdownItem, GlLoadingIcon, GlIntersectionObserver } from '@gitlab/ui';\nimport fuzzaldrinPlus from 'fuzzaldrin-plus';\nimport { createAlert } from '~/alert';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { __ } from '~/locale';\nimport { workspaceLabelsQueries } from '../../../queries/constants';\nimport LabelItem from './label_item.vue';\n\nexport default {\n components: {\n GlDropdownItem,\n GlLoadingIcon,\n GlIntersectionObserver,\n LabelItem,\n },\n model: {\n prop: 'localSelectedLabels',\n },\n props: {\n allowMultiselect: {\n type: Boolean,\n required: true,\n },\n localSelectedLabels: {\n type: Array,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n searchKey: {\n type: String,\n required: true,\n },\n workspaceType: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n labels: [],\n isVisible: false,\n };\n },\n apollo: {\n labels: {\n query() {\n return workspaceLabelsQueries[this.workspaceType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n searchTerm: this.searchKey,\n };\n },\n skip() {\n return this.searchKey.length === 1 || !this.isVisible;\n },\n update: (data) => data.workspace?.labels?.nodes || [],\n error() {\n createAlert({ message: __('Error fetching labels.') });\n },\n },\n },\n computed: {\n labelsFetchInProgress() {\n return this.$apollo.queries.labels.loading;\n },\n localSelectedLabelsIds() {\n return this.localSelectedLabels.map((label) => getIdFromGraphQLId(label.id));\n },\n visibleLabels() {\n if (this.searchKey) {\n return fuzzaldrinPlus.filter(this.labels, this.searchKey, {\n key: ['title'],\n });\n }\n return this.labels;\n },\n showNoMatchingResultsMessage() {\n return Boolean(this.searchKey) && this.visibleLabels.length === 0;\n },\n shouldHighlightFirstItem() {\n return this.searchKey !== '' && this.visibleLabels.length > 0;\n },\n },\n methods: {\n isLabelSelected(label) {\n return this.localSelectedLabelsIds.includes(getIdFromGraphQLId(label.id));\n },\n /**\n * This method scrolls item from dropdown into\n * the view if it is off the viewable area of the\n * container.\n */\n scrollIntoViewIfNeeded() {\n const highlightedLabel = this.$refs.labelsListContainer.querySelector('.is-focused');\n\n if (highlightedLabel) {\n const container = this.$refs.labelsListContainer.getBoundingClientRect();\n const label = highlightedLabel.getBoundingClientRect();\n\n if (label.bottom > container.bottom) {\n this.$refs.labelsListContainer.scrollTop += label.bottom - container.bottom;\n } else if (label.top < container.top) {\n this.$refs.labelsListContainer.scrollTop -= container.top - label.top;\n }\n }\n },\n updateSelectedLabels(label) {\n let labels;\n if (this.isLabelSelected(label)) {\n labels = this.localSelectedLabels.filter(\n ({ id }) => id !== getIdFromGraphQLId(label.id) && id !== label.id,\n );\n } else {\n labels = [...this.localSelectedLabels, label];\n }\n this.$emit('input', labels);\n },\n handleLabelClick(label) {\n this.updateSelectedLabels(label);\n if (!this.allowMultiselect) {\n this.$emit('closeDropdown', this.localSelectedLabels);\n }\n },\n onDropdownAppear() {\n this.isVisible = true;\n },\n selectFirstItem() {\n if (this.shouldHighlightFirstItem) {\n this.handleLabelClick(this.visibleLabels[0]);\n }\n },\n handleFocus(event, index) {\n if (index === 0 && event.target.classList.contains('is-focused')) {\n event.target.classList.remove('is-focused');\n\n // Focus next element (if available) as the first item was already focused.\n if (event.target.parentNode?.nextElementSibling?.querySelector('button')) {\n event.target.parentNode.nextElementSibling.querySelector('button').focus();\n }\n }\n },\n },\n};\n</script>\n\n<template>\n <gl-intersection-observer @appear=\"onDropdownAppear\">\n <div class=\"js-labels-list\">\n <div ref=\"labelsListContainer\" data-testid=\"dropdown-content\">\n <gl-loading-icon\n v-if=\"labelsFetchInProgress\"\n class=\"labels-fetch-loading gl-mb-3 gl-h-full gl-w-full gl-items-center\"\n size=\"sm\"\n />\n <template v-else>\n <gl-dropdown-item\n v-for=\"(label, index) in visibleLabels\"\n :key=\"label.id\"\n :is-checked=\"isLabelSelected(label)\"\n is-check-item\n :active=\"shouldHighlightFirstItem && index === 0\"\n active-class=\"is-focused\"\n data-testid=\"labels-list\"\n @focus.capture.native=\"handleFocus($event, index)\"\n @click.capture.native.stop=\"handleLabelClick(label)\"\n >\n <label-item :label=\"label\" />\n </gl-dropdown-item>\n <gl-dropdown-item\n v-show=\"showNoMatchingResultsMessage\"\n class=\"gl-p-3 gl-text-center\"\n data-testid=\"no-results\"\n >\n {{ __('No matching results') }}\n </gl-dropdown-item>\n </template>\n </div>\n </div>\n </gl-intersection-observer>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_contents_labels_view.vue?vue&type=template&id=c7ae369c\"\nimport script from \"./dropdown_contents_labels_view.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_contents_labels_view.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-intersection-observer',{on:{\"appear\":_vm.onDropdownAppear}},[_c('div',{staticClass:\"js-labels-list\"},[_c('div',{ref:\"labelsListContainer\",attrs:{\"data-testid\":\"dropdown-content\"}},[(_vm.labelsFetchInProgress)?_c('gl-loading-icon',{staticClass:\"labels-fetch-loading gl-mb-3 gl-h-full gl-w-full gl-items-center\",attrs:{\"size\":\"sm\"}}):[_vm._l((_vm.visibleLabels),function(label,index){return _c('gl-dropdown-item',{key:label.id,attrs:{\"is-checked\":_vm.isLabelSelected(label),\"is-check-item\":\"\",\"active\":_vm.shouldHighlightFirstItem && index === 0,\"active-class\":\"is-focused\",\"data-testid\":\"labels-list\"},nativeOn:{\"!focus\":function($event){return _vm.handleFocus($event, index)},\"!click\":function($event){$event.stopPropagation();return _vm.handleLabelClick(label)}}},[_c('label-item',{attrs:{\"label\":label}})],1)}),_vm._v(\" \"),_c('gl-dropdown-item',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showNoMatchingResultsMessage),expression:\"showNoMatchingResultsMessage\"}],staticClass:\"gl-p-3 gl-text-center\",attrs:{\"data-testid\":\"no-results\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('No matching results'))+\"\\n \")])]],2)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { VARIANT_EMBEDDED, VARIANT_SIDEBAR, VARIANT_STANDALONE } from './constants';\n\n/**\n * Returns boolean representing whether dropdown variant\n * is `sidebar`\n * @param {string} variant\n */\nexport const isDropdownVariantSidebar = (variant) => variant === VARIANT_SIDEBAR;\n\n/**\n * Returns boolean representing whether dropdown variant\n * is `standalone`\n * @param {string} variant\n */\nexport const isDropdownVariantStandalone = (variant) => variant === VARIANT_STANDALONE;\n\n/**\n * Returns boolean representing whether dropdown variant\n * is `embedded`\n * @param {string} variant\n */\nexport const isDropdownVariantEmbedded = (variant) => variant === VARIANT_EMBEDDED;\n","<script>\nimport { GlButton, GlDropdown, GlDropdownItem, GlLink } from '@gitlab/ui';\nimport { debounce } from 'lodash';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport { __, s__, sprintf } from '~/locale';\nimport DropdownContentsCreateView from './dropdown_contents_create_view.vue';\nimport DropdownContentsLabelsView from './dropdown_contents_labels_view.vue';\nimport DropdownFooter from './dropdown_footer.vue';\nimport DropdownHeader from './dropdown_header.vue';\nimport { isDropdownVariantStandalone, isDropdownVariantSidebar } from './utils';\n\nexport default {\n components: {\n DropdownContentsLabelsView,\n DropdownContentsCreateView,\n DropdownHeader,\n DropdownFooter,\n GlButton,\n GlDropdown,\n GlDropdownItem,\n GlLink,\n },\n inject: {\n toggleAttrs: {\n default: () => ({}),\n },\n },\n props: {\n labelsCreateTitle: {\n type: String,\n required: true,\n },\n selectedLabels: {\n type: Array,\n required: true,\n },\n allowMultiselect: {\n type: Boolean,\n required: true,\n },\n labelsListTitle: {\n type: String,\n required: true,\n },\n dropdownButtonText: {\n type: String,\n required: true,\n },\n footerCreateLabelTitle: {\n type: String,\n required: true,\n },\n footerManageLabelTitle: {\n type: String,\n required: true,\n },\n variant: {\n type: String,\n required: true,\n },\n isVisible: {\n type: Boolean,\n required: false,\n default: false,\n },\n fullPath: {\n type: String,\n required: true,\n },\n workspaceType: {\n type: String,\n required: true,\n },\n attrWorkspacePath: {\n type: String,\n required: true,\n },\n labelCreateType: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n showDropdownContentsCreateView: false,\n localSelectedLabels: [...this.selectedLabels],\n isDirty: false,\n searchKey: '',\n };\n },\n computed: {\n dropdownContentsView() {\n if (this.showDropdownContentsCreateView) {\n return 'dropdown-contents-create-view';\n }\n return 'dropdown-contents-labels-view';\n },\n dropdownTitle() {\n return this.showDropdownContentsCreateView ? this.labelsCreateTitle : this.labelsListTitle;\n },\n buttonText() {\n if (!this.localSelectedLabels.length) {\n return this.dropdownButtonText || __('Label');\n }\n if (this.localSelectedLabels.length > 1) {\n return sprintf(s__('LabelSelect|%{firstLabelName} +%{remainingLabelCount} more'), {\n firstLabelName: this.localSelectedLabels[0].title,\n remainingLabelCount: this.localSelectedLabels.length - 1,\n });\n }\n return this.localSelectedLabels[0].title;\n },\n showDropdownFooter() {\n return !this.showDropdownContentsCreateView && !this.isStandalone;\n },\n isStandalone() {\n return isDropdownVariantStandalone(this.variant);\n },\n isSidebar() {\n return isDropdownVariantSidebar(this.variant);\n },\n },\n watch: {\n localSelectedLabels: {\n handler() {\n this.isDirty = true;\n },\n deep: true,\n },\n isVisible(newVal) {\n if (newVal) {\n this.$refs.dropdown.show();\n this.isDirty = false;\n this.localSelectedLabels = this.selectedLabels;\n } else {\n this.$refs.dropdown.hide();\n this.setLabels();\n }\n },\n selectedLabels(newVal) {\n if (!this.isDirty || !this.isSidebar) {\n this.localSelectedLabels = newVal;\n }\n },\n },\n created() {\n this.debouncedSearchKeyUpdate = debounce(this.setSearchKey, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);\n },\n beforeDestroy() {\n this.debouncedSearchKeyUpdate.cancel();\n },\n methods: {\n toggleDropdownContentsCreateView() {\n this.showDropdownContentsCreateView = !this.showDropdownContentsCreateView;\n },\n toggleDropdownContent() {\n this.toggleDropdownContentsCreateView();\n // Required to recalculate dropdown position as its size changes\n if (this.$refs.dropdown?.$refs.dropdown) {\n this.$refs.dropdown.$refs.dropdown.$_popper.scheduleUpdate();\n }\n },\n setLabels() {\n if (!this.isDirty) {\n return;\n }\n this.$emit('setLabels', this.localSelectedLabels);\n },\n handleDropdownHide() {\n this.$emit('closeDropdown');\n if (!this.isSidebar) {\n this.setLabels();\n }\n },\n setSearchKey(value) {\n this.searchKey = value;\n },\n setFocus() {\n this.$refs.header.focusInput();\n },\n hideDropdown() {\n this.$refs.dropdown.hide();\n },\n showDropdown() {\n this.$refs.dropdown.show();\n },\n clearSearch() {\n if (!this.allowMultiselect || this.isStandalone) {\n return;\n }\n this.searchKey = '';\n this.setFocus();\n },\n selectFirstItem() {\n this.$refs.dropdownContentsView.selectFirstItem();\n },\n handleNewLabel(label) {\n this.localSelectedLabels = [...this.localSelectedLabels, label];\n this.toggleDropdownContent();\n this.clearSearch();\n },\n },\n};\n</script>\n\n<template>\n <gl-dropdown\n ref=\"dropdown\"\n :text=\"buttonText\"\n block\n data-testid=\"labels-select-dropdown-contents\"\n :toggle-attrs=\"toggleAttrs\"\n @hide=\"handleDropdownHide\"\n @shown=\"setFocus\"\n >\n <template #header>\n <dropdown-header\n ref=\"header\"\n :search-key=\"searchKey\"\n :labels-create-title=\"labelsCreateTitle\"\n :labels-list-title=\"labelsListTitle\"\n :show-dropdown-contents-create-view=\"showDropdownContentsCreateView\"\n :is-standalone=\"isStandalone\"\n @toggleDropdownContentsCreateView=\"toggleDropdownContent\"\n @closeDropdown=\"hideDropdown\"\n @input=\"debouncedSearchKeyUpdate\"\n @searchEnter.prevent=\"selectFirstItem\"\n />\n </template>\n <template #default>\n <component\n :is=\"dropdownContentsView\"\n ref=\"dropdownContentsView\"\n v-model=\"localSelectedLabels\"\n :search-key=\"searchKey\"\n :allow-multiselect=\"allowMultiselect\"\n :full-path=\"fullPath\"\n :workspace-type=\"workspaceType\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :label-create-type=\"labelCreateType\"\n @hideCreateView=\"toggleDropdownContent\"\n @labelCreated=\"handleNewLabel\"\n @input=\"clearSearch\"\n />\n </template>\n <template #footer>\n <dropdown-footer\n v-if=\"showDropdownFooter\"\n :footer-create-label-title=\"footerCreateLabelTitle\"\n :footer-manage-label-title=\"footerManageLabelTitle\"\n @toggleDropdownContentsCreateView=\"toggleDropdownContent\"\n />\n </template>\n </gl-dropdown>\n</template>\n","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!./dropdown_contents.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!./dropdown_contents.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./dropdown_contents.vue?vue&type=template&id=bc30b3ca\"\nimport script from \"./dropdown_contents.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_contents.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',{ref:\"dropdown\",attrs:{\"text\":_vm.buttonText,\"block\":\"\",\"data-testid\":\"labels-select-dropdown-contents\",\"toggle-attrs\":_vm.toggleAttrs},on:{\"hide\":_vm.handleDropdownHide,\"shown\":_vm.setFocus},scopedSlots:_vm._u([{key:\"header\",fn:function(){return [_c('dropdown-header',{ref:\"header\",attrs:{\"search-key\":_vm.searchKey,\"labels-create-title\":_vm.labelsCreateTitle,\"labels-list-title\":_vm.labelsListTitle,\"show-dropdown-contents-create-view\":_vm.showDropdownContentsCreateView,\"is-standalone\":_vm.isStandalone},on:{\"toggleDropdownContentsCreateView\":_vm.toggleDropdownContent,\"closeDropdown\":_vm.hideDropdown,\"input\":_vm.debouncedSearchKeyUpdate,\"searchEnter\":function($event){$event.preventDefault();return _vm.selectFirstItem.apply(null, arguments)}}})]},proxy:true},{key:\"default\",fn:function(){return [_c(_vm.dropdownContentsView,{ref:\"dropdownContentsView\",tag:\"component\",attrs:{\"search-key\":_vm.searchKey,\"allow-multiselect\":_vm.allowMultiselect,\"full-path\":_vm.fullPath,\"workspace-type\":_vm.workspaceType,\"attr-workspace-path\":_vm.attrWorkspacePath,\"label-create-type\":_vm.labelCreateType},on:{\"hideCreateView\":_vm.toggleDropdownContent,\"labelCreated\":_vm.handleNewLabel,\"input\":_vm.clearSearch},model:{value:(_vm.localSelectedLabels),callback:function ($$v) {_vm.localSelectedLabels=$$v},expression:\"localSelectedLabels\"}})]},proxy:true},{key:\"footer\",fn:function(){return [(_vm.showDropdownFooter)?_c('dropdown-footer',{attrs:{\"footer-create-label-title\":_vm.footerCreateLabelTitle,\"footer-manage-label-title\":_vm.footerManageLabelTitle},on:{\"toggleDropdownContentsCreateView\":_vm.toggleDropdownContent}}):_vm._e()]},proxy:true}])})\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!./embedded_labels_list.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!./embedded_labels_list.vue?vue&type=script&lang=js\"","<script>\nimport { GlLabel } from '@gitlab/ui';\nimport { sortBy } from 'lodash';\nimport { isScopedLabel } from '~/lib/utils/common_utils';\n\nexport default {\n components: {\n GlLabel,\n },\n inject: ['allowScopedLabels'],\n props: {\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n selectedLabels: {\n type: Array,\n required: true,\n },\n allowLabelRemove: {\n type: Boolean,\n required: true,\n },\n supportsLockOnMerge: {\n type: Boolean,\n required: false,\n default: false,\n },\n labelsFilterBasePath: {\n type: String,\n required: true,\n },\n labelsFilterParam: {\n type: String,\n required: true,\n },\n },\n computed: {\n sortedSelectedLabels() {\n return sortBy(this.selectedLabels, (label) => isScopedLabel(label));\n },\n },\n methods: {\n buildFilterUrl({ title }) {\n const { labelsFilterBasePath: basePath, labelsFilterParam: filterParam } = this;\n\n return `${basePath}?${filterParam}[]=${encodeURIComponent(title)}`;\n },\n scopedLabel(label) {\n return this.allowScopedLabels && isScopedLabel(label);\n },\n isLabelLocked(label) {\n // These particular labels were initialized from HAML data, so the attributes are\n // in snake case instead of camel case\n return label.lock_on_merge && this.supportsLockOnMerge;\n },\n showCloseButton(label) {\n return this.allowLabelRemove && !this.isLabelLocked(label);\n },\n removeLabel(labelId) {\n this.$emit('onLabelRemove', labelId);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-mt-3\" data-testid=\"embedded-labels-list\">\n <gl-label\n v-for=\"label in sortedSelectedLabels\"\n :key=\"label.id\"\n class=\"gl-mb-2 gl-mr-2\"\n :data-qa-label-name=\"label.title\"\n :title=\"label.title\"\n :description=\"label.description\"\n :background-color=\"label.color\"\n :target=\"buildFilterUrl(label)\"\n :scoped=\"scopedLabel(label)\"\n :show-close-button=\"showCloseButton(label)\"\n :disabled=\"disabled\"\n tooltip-placement=\"top\"\n @close=\"removeLabel(label.id)\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./embedded_labels_list.vue?vue&type=template&id=4cf671a6\"\nimport script from \"./embedded_labels_list.vue?vue&type=script&lang=js\"\nexport * from \"./embedded_labels_list.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('div',{staticClass:\"gl-mt-3\",attrs:{\"data-testid\":\"embedded-labels-list\"}},_vm._l((_vm.sortedSelectedLabels),function(label){return _c('gl-label',{key:label.id,staticClass:\"gl-mb-2 gl-mr-2\",attrs:{\"data-qa-label-name\":label.title,\"title\":label.title,\"description\":label.description,\"background-color\":label.color,\"target\":_vm.buildFilterUrl(label),\"scoped\":_vm.scopedLabel(label),\"show-close-button\":_vm.showCloseButton(label),\"disabled\":_vm.disabled,\"tooltip-placement\":\"top\"},on:{\"close\":function($event){return _vm.removeLabel(label.id)}}})}),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!./labels_select_root.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!./labels_select_root.vue?vue&type=script&lang=js\"","<script>\nimport { debounce } from 'lodash';\nimport issuableLabelsSubscription from 'ee_else_ce/sidebar/queries/issuable_labels.subscription.graphql';\nimport { mutationOperationMode, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { createAlert } from '~/alert';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { TYPE_EPIC, TYPE_ISSUE, TYPE_MERGE_REQUEST, TYPE_TEST_CASE } from '~/issues/constants';\n\nimport { __ } from '~/locale';\nimport { keysFor, ISSUABLE_CHANGE_LABEL } from '~/behaviors/shortcuts/keybindings';\nimport { shouldDisableShortcuts } from '~/behaviors/shortcuts/shortcuts_toggle';\nimport { sanitize } from '~/lib/dompurify';\nimport { issuableLabelsQueries } from '../../../queries/constants';\nimport SidebarEditableItem from '../../sidebar_editable_item.vue';\nimport { DEBOUNCE_DROPDOWN_DELAY, VARIANT_SIDEBAR } from './constants';\nimport DropdownContents from './dropdown_contents.vue';\nimport DropdownValue from './dropdown_value.vue';\nimport EmbeddedLabelsList from './embedded_labels_list.vue';\nimport {\n isDropdownVariantSidebar,\n isDropdownVariantStandalone,\n isDropdownVariantEmbedded,\n} from './utils';\n\nexport default {\n components: {\n DropdownValue,\n DropdownContents,\n EmbeddedLabelsList,\n SidebarEditableItem,\n },\n mixins: [glFeatureFlagsMixin()],\n inject: {\n allowLabelEdit: {\n default: false,\n },\n },\n props: {\n iid: {\n type: String,\n required: false,\n default: '',\n },\n fullPath: {\n type: String,\n required: true,\n },\n allowLabelRemove: {\n type: Boolean,\n required: false,\n default: false,\n },\n allowMultiselect: {\n type: Boolean,\n required: false,\n default: false,\n },\n showEmbeddedLabelsList: {\n type: Boolean,\n required: false,\n default: false,\n },\n variant: {\n type: String,\n required: false,\n default: VARIANT_SIDEBAR,\n },\n labelsFilterBasePath: {\n type: String,\n required: false,\n default: '',\n },\n labelsFilterParam: {\n type: String,\n required: false,\n default: 'label_name',\n },\n dropdownButtonText: {\n type: String,\n required: false,\n default: __('Label'),\n },\n labelsListTitle: {\n type: String,\n required: false,\n default: __('Select labels'),\n },\n labelsCreateTitle: {\n type: String,\n required: false,\n default: __('Create group label'),\n },\n footerCreateLabelTitle: {\n type: String,\n required: false,\n default: __('Create group label'),\n },\n footerManageLabelTitle: {\n type: String,\n required: false,\n default: __('Manage group labels'),\n },\n issuableType: {\n type: String,\n required: true,\n },\n issuableSupportsLockOnMerge: {\n type: Boolean,\n required: false,\n default: false,\n },\n workspaceType: {\n type: String,\n required: true,\n },\n attrWorkspacePath: {\n type: String,\n required: true,\n },\n labelCreateType: {\n type: String,\n required: true,\n },\n selectedLabels: {\n type: Array,\n required: false,\n default: () => [],\n },\n },\n data() {\n return {\n contentIsOnViewport: true,\n issuable: null,\n labelsSelectInProgress: false,\n oldIid: null,\n sidebarExpandedOnClick: false,\n };\n },\n computed: {\n isLoading() {\n return this.labelsSelectInProgress || this.$apollo.queries.issuable.loading;\n },\n issuableLabelIds() {\n return this.issuableLabels.map((label) => label.id);\n },\n issuableLabels() {\n if (this.iid !== '') {\n return this.issuable?.labels.nodes || [];\n }\n\n return this.selectedLabels || [];\n },\n issuableId() {\n return this.issuable?.id;\n },\n isRealtimeEnabled() {\n return this.glFeatures.realtimeLabels;\n },\n isLabelListEnabled() {\n return this.showEmbeddedLabelsList && isDropdownVariantEmbedded(this.variant);\n },\n isLockOnMergeSupported() {\n return this.issuableSupportsLockOnMerge || this.issuable?.supportsLockOnMerge;\n },\n labelShortcutDescription() {\n return shouldDisableShortcuts() ? null : ISSUABLE_CHANGE_LABEL.description;\n },\n labelShortcutKey() {\n return shouldDisableShortcuts() ? null : keysFor(ISSUABLE_CHANGE_LABEL)[0];\n },\n labelTooltip() {\n const description = this.labelShortcutDescription;\n const key = this.labelShortcutKey;\n return shouldDisableShortcuts()\n ? null\n : sanitize(`${description} <kbd class=\"flat gl-ml-1\" aria-hidden=true>${key}</kbd>`);\n },\n },\n apollo: {\n issuable: {\n query() {\n return issuableLabelsQueries[this.issuableType].issuableQuery;\n },\n skip() {\n return !isDropdownVariantSidebar(this.variant) || !this.iid;\n },\n variables() {\n const queryVariables = {\n iid: this.iid,\n fullPath: this.fullPath,\n };\n\n if (this.issuableType === TYPE_TEST_CASE) {\n queryVariables.types = ['TEST_CASE'];\n }\n\n return queryVariables;\n },\n update(data) {\n return data.workspace?.issuable;\n },\n error() {\n createAlert({ message: __('Error fetching labels.') });\n },\n subscribeToMore: {\n document() {\n return issuableLabelsSubscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return !this.issuableId || !this.isDropdownVariantSidebar;\n },\n updateQuery(\n _,\n {\n subscriptionData: {\n data: { issuableLabelsUpdated },\n },\n },\n ) {\n if (issuableLabelsUpdated) {\n const {\n id,\n labels: { nodes },\n } = issuableLabelsUpdated;\n this.$emit('updateSelectedLabels', { id, labels: nodes });\n }\n },\n },\n },\n },\n watch: {\n iid(_, oldVal) {\n this.oldIid = oldVal;\n },\n },\n mounted() {\n document.addEventListener('toggleSidebarRevealLabelsDropdown', this.handleCollapsedValueClick);\n },\n beforeDestroy() {\n document.removeEventListener(\n 'toggleSidebarRevealLabelsDropdown',\n this.handleCollapsedValueClick,\n );\n },\n methods: {\n handleDropdownClose(labels) {\n if (this.iid !== '') {\n this.updateSelectedLabels(this.getUpdateVariables(labels));\n } else {\n this.$emit('updateSelectedLabels', { labels });\n }\n\n this.collapseEditableItem();\n },\n collapseEditableItem() {\n this.$refs.editable?.collapse();\n if (this.sidebarExpandedOnClick) {\n this.sidebarExpandedOnClick = false;\n this.$emit('toggleCollapse');\n }\n },\n handleCollapsedValueClick() {\n this.sidebarExpandedOnClick = true;\n this.$emit('toggleCollapse');\n debounce(() => {\n this.$refs.editable.toggle();\n this.$refs.dropdownContents.showDropdown();\n }, DEBOUNCE_DROPDOWN_DELAY)();\n },\n getUpdateVariables(labels) {\n let labelIds = [];\n\n labelIds = labels.map(({ id }) => id);\n const currentIid = this.oldIid || this.iid;\n\n const updateVariables = {\n iid: currentIid,\n projectPath: this.fullPath,\n labelIds,\n };\n\n switch (this.issuableType) {\n case TYPE_ISSUE:\n case TYPE_TEST_CASE:\n return updateVariables;\n case TYPE_MERGE_REQUEST:\n return {\n ...updateVariables,\n operationMode: mutationOperationMode.replace,\n };\n case TYPE_EPIC:\n return {\n iid: currentIid,\n groupPath: this.fullPath,\n addLabelIds: labelIds.map((id) => getIdFromGraphQLId(id)),\n removeLabelIds: this.issuableLabelIds\n .filter((id) => !labelIds.includes(id))\n .map((id) => getIdFromGraphQLId(id)),\n };\n default:\n return {};\n }\n },\n updateSelectedLabels(inputVariables) {\n this.labelsSelectInProgress = true;\n\n this.$apollo\n .mutate({\n mutation: issuableLabelsQueries[this.issuableType].mutation,\n variables: { input: inputVariables },\n })\n .then(({ data }) => {\n if (data.updateIssuableLabels?.errors?.length) {\n throw new Error();\n }\n\n this.$emit('updateSelectedLabels', {\n id: data.updateIssuableLabels?.issuable?.id,\n labels: data.updateIssuableLabels?.issuable?.labels?.nodes,\n });\n })\n .catch((error) =>\n createAlert({\n message: __('An error occurred while updating labels.'),\n captureError: true,\n error,\n }),\n )\n .finally(() => {\n this.labelsSelectInProgress = false;\n });\n },\n getRemoveVariables(labelId) {\n const removeVariables = {\n iid: this.iid,\n projectPath: this.fullPath,\n };\n\n switch (this.issuableType) {\n case TYPE_ISSUE:\n case TYPE_TEST_CASE:\n return {\n ...removeVariables,\n removeLabelIds: [labelId],\n };\n case TYPE_MERGE_REQUEST:\n return {\n ...removeVariables,\n labelIds: [labelId],\n operationMode: mutationOperationMode.remove,\n };\n case TYPE_EPIC:\n return {\n iid: this.iid,\n removeLabelIds: [getIdFromGraphQLId(labelId)],\n groupPath: this.fullPath,\n };\n default:\n return {};\n }\n },\n handleLabelRemove(labelId) {\n if (this.iid !== '') {\n this.updateSelectedLabels(this.getRemoveVariables(labelId));\n }\n\n this.$emit('onLabelRemove', labelId);\n },\n isDropdownVariantSidebar,\n isDropdownVariantStandalone,\n isDropdownVariantEmbedded,\n },\n};\n</script>\n\n<template>\n <div\n class=\"labels-select-wrapper gl-relative\"\n :class=\"{\n 'is-standalone': isDropdownVariantStandalone(variant),\n 'is-embedded': isDropdownVariantEmbedded(variant),\n }\"\n data-testid=\"sidebar-labels\"\n >\n <template v-if=\"isDropdownVariantSidebar(variant)\">\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"__('Labels')\"\n :edit-tooltip=\"labelTooltip\"\n :edit-aria-label=\"labelShortcutDescription\"\n :edit-keyshortcuts=\"labelShortcutKey\"\n :loading=\"isLoading\"\n :can-edit=\"allowLabelEdit\"\n @open=\"oldIid = null\"\n >\n <template #collapsed>\n <dropdown-value\n :disable-labels=\"labelsSelectInProgress\"\n :selected-labels=\"issuableLabels\"\n :allow-label-remove=\"allowLabelRemove\"\n :supports-lock-on-merge=\"isLockOnMergeSupported\"\n :labels-filter-base-path=\"labelsFilterBasePath\"\n :labels-filter-param=\"labelsFilterParam\"\n class=\"gl-pt-2\"\n @onLabelRemove=\"handleLabelRemove\"\n @onCollapsedValueClick=\"handleCollapsedValueClick\"\n >\n <slot></slot>\n </dropdown-value>\n </template>\n <template #default=\"{ edit }\">\n <dropdown-value\n :disable-labels=\"labelsSelectInProgress\"\n :selected-labels=\"issuableLabels\"\n :allow-label-remove=\"allowLabelRemove\"\n :supports-lock-on-merge=\"isLockOnMergeSupported\"\n :labels-filter-base-path=\"labelsFilterBasePath\"\n :labels-filter-param=\"labelsFilterParam\"\n class=\"gl-mb-2\"\n @onLabelRemove=\"handleLabelRemove\"\n >\n <slot></slot>\n </dropdown-value>\n <dropdown-contents\n ref=\"dropdownContents\"\n class=\"gl-mt-3 gl-w-full\"\n :dropdown-button-text=\"dropdownButtonText\"\n :allow-multiselect=\"allowMultiselect\"\n :labels-list-title=\"labelsListTitle\"\n :footer-create-label-title=\"footerCreateLabelTitle\"\n :footer-manage-label-title=\"footerManageLabelTitle\"\n :labels-create-title=\"labelsCreateTitle\"\n :selected-labels=\"issuableLabels\"\n :variant=\"variant\"\n :is-visible=\"edit\"\n :full-path=\"fullPath\"\n :workspace-type=\"workspaceType\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :label-create-type=\"labelCreateType\"\n @setLabels=\"handleDropdownClose\"\n @closeDropdown=\"collapseEditableItem\"\n />\n </template>\n </sidebar-editable-item>\n </template>\n <template v-else>\n <dropdown-contents\n ref=\"dropdownContents\"\n class=\"issuable-form-select-holder\"\n :dropdown-button-text=\"dropdownButtonText\"\n :allow-multiselect=\"allowMultiselect\"\n :labels-list-title=\"labelsListTitle\"\n :footer-create-label-title=\"footerCreateLabelTitle\"\n :footer-manage-label-title=\"footerManageLabelTitle\"\n :labels-create-title=\"labelsCreateTitle\"\n :selected-labels=\"issuableLabels\"\n :variant=\"variant\"\n :full-path=\"fullPath\"\n :workspace-type=\"workspaceType\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :label-create-type=\"labelCreateType\"\n @setLabels=\"handleDropdownClose\"\n />\n <embedded-labels-list\n v-if=\"isLabelListEnabled\"\n :disabled=\"labelsSelectInProgress\"\n :selected-labels=\"issuableLabels\"\n :allow-label-remove=\"allowLabelRemove\"\n :supports-lock-on-merge=\"isLockOnMergeSupported\"\n :labels-filter-base-path=\"labelsFilterBasePath\"\n :labels-filter-param=\"labelsFilterParam\"\n @onLabelRemove=\"handleLabelRemove\"\n />\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./labels_select_root.vue?vue&type=template&id=7c2f1289\"\nimport script from \"./labels_select_root.vue?vue&type=script&lang=js\"\nexport * from \"./labels_select_root.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--13-0!../../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./cve_id_request.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!./cve_id_request.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlIcon, GlTooltipDirective } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapState } from 'vuex';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { createCveIdRequestIssueBody } from '~/helpers/cve_id_request_helper';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport { CVE_ID_REQUEST_SIDEBAR_I18N } from '../../constants';\n\nexport default {\n i18n: {\n ...CVE_ID_REQUEST_SIDEBAR_I18N,\n },\n\n components: {\n GlButton,\n GlIcon,\n HelpIcon,\n },\n\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n\n inject: {\n iid: {\n required: true,\n type: String,\n },\n fullPath: {\n required: true,\n type: String,\n },\n },\n\n data() {\n return {\n showHelp: false,\n };\n },\n\n computed: {\n ...mapState({ confidential: (state) => state.noteableData.confidential }),\n helpHref() {\n return helpPagePath('user/application_security/cve_id_request');\n },\n showHelpState() {\n return Boolean(this.showHelp);\n },\n tooltipTitle() {\n return this.$options.i18n.description;\n },\n newCveIdRequestUrl() {\n const currUrl = new URL(window.location.href);\n const newUrl = new URL(currUrl.origin);\n newUrl.pathname = '/gitlab-org/cves/-/issues/new';\n\n const params = {\n 'issue[confidential]': 'true',\n // eslint-disable-next-line @gitlab/require-i18n-strings\n 'issue[title]': `CVE ID Request - ${this.fullPath}`,\n 'issue[description]': createCveIdRequestIssueBody(this.fullPath, this.iid),\n };\n Object.keys(params).forEach((k) => newUrl.searchParams.append(k, params[k]));\n\n return newUrl.toString();\n },\n },\n\n methods: {\n toggleHelpState(show) {\n this.showHelp = show;\n },\n },\n};\n</script>\n\n<template>\n <div v-if=\"confidential\" class=\"sidebar-contained-width cve-id-request gl-border-b-0 gl-pb-0\">\n <div\n v-gl-tooltip.viewport.left\n :title=\"tooltipTitle\"\n class=\"sidebar-collapsed-icon\"\n data-container=\"body\"\n data-placement=\"left\"\n data-boundary=\"viewport\"\n >\n <gl-icon name=\"bug\" class=\"sidebar-item-icon is-active\" />\n </div>\n\n <div class=\"hide-collapsed\">\n {{ $options.i18n.action }}\n <div\n v-if=\"!showHelpState\"\n class=\"help-button gl-float-right\"\n data-testid=\"help-button\"\n @click=\"toggleHelpState(true)\"\n >\n <help-icon />\n </div>\n <div\n v-else\n class=\"close-help-button gl-float-right\"\n data-testid=\"close-help-button\"\n @click=\"toggleHelpState(false)\"\n >\n <gl-icon name=\"close\" />\n </div>\n\n <div class=\"gl-mt-5\">\n <gl-button block :href=\"newCveIdRequestUrl\" target=\"_blank\" data-testid=\"request-button\">{{\n $options.i18n.createRequest\n }}</gl-button>\n </div>\n\n <div class=\"hide-collapsed\">\n <transition name=\"help-state-toggle\">\n <div v-if=\"showHelpState\" class=\"cve-id-request-help-state\" data-testid=\"help-state\">\n <h4>{{ $options.i18n.whyRequest }}</h4>\n <p>\n {{ $options.i18n.whyText1 }}\n </p>\n\n <p>\n {{ $options.i18n.whyText2 }}\n </p>\n\n <div>\n <gl-button :href=\"helpHref\" target=\"_blank\">{{ $options.i18n.learnMore }}</gl-button>\n </div>\n </div>\n </transition>\n </div>\n </div>\n </div>\n</template>\n","export function createCveIdRequestIssueBody(fullPath, iid) {\n return `### Vulnerability Submission\n\n**NOTE:** Only maintainers of GitLab-hosted projects may request a CVE for\na vulnerability within their project.\n\nProject issue: ${fullPath}#${iid}\n\n#### Publishing Schedule\n\nAfter a CVE request is validated, a CVE identifier will be assigned. On what\nschedule should the details of the CVE be published?\n\n* [ ] Publish immediately\n* [ ] Wait to publish\n\n<!--\nPlease fill out the yaml codeblock below\n-->\n\n\\`\\`\\`yaml\nreporter:\n name: \"TODO\" # \"First Last\"\n email: \"TODO\" # \"email@domain.tld\"\nvulnerability:\n description: \"TODO\" # \"[VULNTYPE] in [COMPONENT] in [VENDOR][PRODUCT] [VERSION] allows [ATTACKER] to [IMPACT] via [VECTOR]\"\n cwe: \"TODO\" # \"CWE-22\" # Path Traversal\n product:\n gitlab_path: \"${fullPath}\"\n vendor: \"TODO\" # \"Deluxe Sandwich Maker Company\"\n name: \"TODO\" # \"Deluxe Sandwich Maker 2\"\n affected_versions:\n - \"TODO\" # \"1.2.3\"\n - \"TODO\" # \">1.3.0, <=1.3.9\"\n fixed_versions:\n - \"TODO\" # \"1.2.4\"\n - \"TODO\" # \"1.3.10\"\n impact: \"TODO\" # \"CVSS v3 string\" # https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator\n solution: \"TODO\" # \"Upgrade to version 1.2.4 or 1.3.10\"\n credit: \"TODO\"\n references:\n - \"TODO\" # \"https://some.domain.tld/a/reference\"\n\\`\\`\\`\n\nCVSS scores can be computed by means of the [NVD CVSS Calculator](https://nvd.nist.gov/vuln-metrics/cvss/v3-calculator).\n\n/relate ${fullPath}#${iid}\n/label ~\"devops::secure\" ~\"group::vulnerability research\" ~\"vulnerability research::cve\" ~\"advisory::queued\"\n `;\n}\n","import { render, staticRenderFns } from \"./cve_id_request.vue?vue&type=template&id=ceceab98\"\nimport script from \"./cve_id_request.vue?vue&type=script&lang=js\"\nexport * from \"./cve_id_request.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 (_vm.confidential)?_c('div',{staticClass:\"sidebar-contained-width cve-id-request gl-border-b-0 gl-pb-0\"},[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.tooltipTitle,\"data-container\":\"body\",\"data-placement\":\"left\",\"data-boundary\":\"viewport\"}},[_c('gl-icon',{staticClass:\"sidebar-item-icon is-active\",attrs:{\"name\":\"bug\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.action)+\"\\n \"),(!_vm.showHelpState)?_c('div',{staticClass:\"help-button gl-float-right\",attrs:{\"data-testid\":\"help-button\"},on:{\"click\":function($event){return _vm.toggleHelpState(true)}}},[_c('help-icon')],1):_c('div',{staticClass:\"close-help-button gl-float-right\",attrs:{\"data-testid\":\"close-help-button\"},on:{\"click\":function($event){return _vm.toggleHelpState(false)}}},[_c('gl-icon',{attrs:{\"name\":\"close\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-mt-5\"},[_c('gl-button',{attrs:{\"block\":\"\",\"href\":_vm.newCveIdRequestUrl,\"target\":\"_blank\",\"data-testid\":\"request-button\"}},[_vm._v(_vm._s(_vm.$options.i18n.createRequest))])],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed\"},[_c('transition',{attrs:{\"name\":\"help-state-toggle\"}},[(_vm.showHelpState)?_c('div',{staticClass:\"cve-id-request-help-state\",attrs:{\"data-testid\":\"help-state\"}},[_c('h4',[_vm._v(_vm._s(_vm.$options.i18n.whyRequest))]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.whyText1)+\"\\n \")]),_vm._v(\" \"),_c('p',[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.whyText2)+\"\\n \")]),_vm._v(\" \"),_c('div',[_c('gl-button',{attrs:{\"href\":_vm.helpHref,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$options.i18n.learnMore))])],1)]):_vm._e()])],1)])]):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport { debounce } from 'lodash';\nimport IterationTitle from 'ee/iterations/components/iteration_title.vue';\nimport { groupByIterationCadences } from 'ee/iterations/utils';\nimport { STATUS_OPEN } from '~/issues/constants';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport { __ } from '~/locale';\nimport { iterationSelectTextMap } from '../../constants';\nimport groupIterationsQuery from '../../queries/group_iterations.query.graphql';\n\nconst NO_ITEMS_ID = 'NO_ITEMS_ID';\n\nexport default {\n noIteration: { text: iterationSelectTextMap.noIteration, id: NO_ITEMS_ID },\n components: {\n GlCollapsibleListbox,\n IterationTitle,\n },\n apollo: {\n iterations: {\n query: groupIterationsQuery,\n debounce: DEFAULT_DEBOUNCE_AND_THROTTLE_MS,\n variables() {\n const search = this.searchTerm ? `\"${this.searchTerm}\"` : '';\n\n return {\n fullPath: this.fullPath,\n title: search,\n state: STATUS_OPEN,\n };\n },\n update(data) {\n return data.workspace?.attributes?.nodes || [];\n },\n skip() {\n return !this.shouldFetch;\n },\n },\n },\n inject: ['fullPath'],\n data() {\n return {\n searchTerm: '',\n iterations: [],\n currentIteration: null,\n shouldFetch: false,\n };\n },\n computed: {\n currentIterationId() {\n return this.currentIteration?.id;\n },\n iterationCadences() {\n return groupByIterationCadences(this.iterations);\n },\n iterationCadencesListBoxItems() {\n const groups = this.iterationCadences.map((cadence) => ({\n text: cadence.title,\n options: cadence.iterations.map(({ id, period, title }) => ({\n value: id,\n text: period,\n title,\n })),\n }));\n\n return [\n {\n text: this.$options.noIteration.text,\n options: [\n {\n text: this.$options.noIteration.text,\n value: this.$options.noIteration.id,\n },\n ],\n },\n ...groups,\n ];\n },\n dropdownSelectedText() {\n return this.currentIteration?.period || __('Select iteration');\n },\n dropdownHeaderText() {\n return __('Select Iteration');\n },\n },\n created() {\n this.handleSearch = debounce(this.setSearchTerm, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);\n },\n destroyed() {\n this.handleSearch.cancel();\n },\n methods: {\n setSearchTerm(val = '') {\n this.searchTerm = val?.trim();\n },\n onClick(iterationId) {\n this.currentIteration =\n this.iterationCadences\n .flatMap((cadence) => cadence.iterations)\n ?.find(({ id }) => id === iterationId) || this.$options.noIteration;\n\n this.$emit('onIterationSelect', this.currentIteration);\n },\n onDropdownShow() {\n this.shouldFetch = true;\n },\n },\n};\n</script>\n\n<template>\n <gl-collapsible-listbox\n block\n is-check-centered\n searchable\n toggle-class=\"gl-w-full\"\n :header-text=\"dropdownHeaderText\"\n :items=\"iterationCadencesListBoxItems\"\n :loading=\"$apollo.queries.iterations.loading\"\n :searching=\"$apollo.queries.iterations.loading\"\n :selected=\"currentIterationId\"\n :toggle-text=\"dropdownSelectedText\"\n @shown=\"onDropdownShow\"\n @search=\"handleSearch\"\n @select=\"onClick\"\n >\n <template #list-item=\"{ item }\">\n {{ item.text }}\n <iteration-title v-if=\"item.title\" :title=\"item.title\" />\n </template>\n </gl-collapsible-listbox>\n</template>\n","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!./iteration_dropdown.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!./iteration_dropdown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./iteration_dropdown.vue?vue&type=template&id=3b5d8732\"\nimport script from \"./iteration_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./iteration_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-collapsible-listbox',{attrs:{\"block\":\"\",\"is-check-centered\":\"\",\"searchable\":\"\",\"toggle-class\":\"gl-w-full\",\"header-text\":_vm.dropdownHeaderText,\"items\":_vm.iterationCadencesListBoxItems,\"loading\":_vm.$apollo.queries.iterations.loading,\"searching\":_vm.$apollo.queries.iterations.loading,\"selected\":_vm.currentIterationId,\"toggle-text\":_vm.dropdownSelectedText},on:{\"shown\":_vm.onDropdownShow,\"search\":_vm.handleSearch,\"select\":_vm.onClick},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_vm._v(\"\\n \"+_vm._s(item.text)+\"\\n \"),(item.title)?_c('iteration-title',{attrs:{\"title\":item.title}}):_vm._e()]}}])})\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!./escalation_policy_help_state.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!./escalation_policy_help_state.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { i18nHelpText } from '../../constants';\n\nexport default {\n POLICIES_PATH: helpPagePath('operations/incident_management/escalation_policies.md'),\n i18n: i18nHelpText,\n components: {\n GlButton,\n },\n};\n</script>\n\n<template>\n <transition name=\"help-state-toggle\">\n <div\n class=\"sidebar-help-state gl-border-1 gl-border-default gl-bg-white gl-border-b-solid gl-border-t-solid\"\n >\n <div>\n <h4>{{ $options.i18n.title }}</h4>\n <p>{{ $options.i18n.detail }}</p>\n <gl-button :href=\"$options.POLICIES_PATH\">{{ $options.i18n.linkText }}</gl-button>\n </div>\n </div>\n </transition>\n</template>\n","import { render, staticRenderFns } from \"./escalation_policy_help_state.vue?vue&type=template&id=a17b26a4\"\nimport script from \"./escalation_policy_help_state.vue?vue&type=script&lang=js\"\nexport * from \"./escalation_policy_help_state.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('transition',{attrs:{\"name\":\"help-state-toggle\"}},[_c('div',{staticClass:\"sidebar-help-state gl-border-1 gl-border-default gl-bg-white gl-border-b-solid gl-border-t-solid\"},[_c('div',[_c('h4',[_vm._v(_vm._s(_vm.$options.i18n.title))]),_vm._v(\" \"),_c('p',[_vm._v(_vm._s(_vm.$options.i18n.detail))]),_vm._v(\" \"),_c('gl-button',{attrs:{\"href\":_vm.$options.POLICIES_PATH}},[_vm._v(_vm._s(_vm.$options.i18n.linkText))])],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!./escalation_policy_collapsed_state.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!./escalation_policy_collapsed_state.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { i18nPolicyText } from '../../constants';\n\nexport default {\n i18n: i18nPolicyText,\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlIcon,\n },\n props: {\n value: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n policyText() {\n return this.value ? this.$options.i18n.paged : this.$options.i18n.none;\n },\n tooltipText() {\n const policyName = this.value || this.$options.i18n.none;\n\n return `${this.$options.i18n.title}: ${policyName}`;\n },\n },\n};\n</script>\n\n<template>\n <div\n v-gl-tooltip.left.viewport\n :title=\"tooltipText\"\n class=\"sidebar-collapsed-icon\"\n data-testid=\"sidebar-collapsed-attribute-title\"\n >\n <gl-icon :aria-label=\"$options.i18n.title\" name=\"mobile\" />\n <span class=\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\">\n {{ policyText }}\n </span>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./escalation_policy_collapsed_state.vue?vue&type=template&id=5fef5902\"\nimport script from \"./escalation_policy_collapsed_state.vue?vue&type=script&lang=js\"\nexport * from \"./escalation_policy_collapsed_state.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.tooltipText,\"data-testid\":\"sidebar-collapsed-attribute-title\"}},[_c('gl-icon',{attrs:{\"aria-label\":_vm.$options.i18n.title,\"name\":\"mobile\"}}),_vm._v(\" \"),_c('span',{staticClass:\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.policyText)+\"\\n \")])],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!./escalation_policies_empty_state.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!./escalation_policies_empty_state.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { i18nPolicyText } from '../../constants';\nimport EscalationPolicyHelpState from './escalation_policy_help_state.vue';\nimport EscalationPolicyCollapsedState from './escalation_policy_collapsed_state.vue';\n\nexport default {\n i18n: i18nPolicyText,\n components: {\n GlButton,\n EscalationPolicyCollapsedState,\n EscalationPolicyHelpState,\n },\n data() {\n return {\n showHelp: false,\n };\n },\n methods: {\n toggleHelpState() {\n this.showHelp = !this.showHelp;\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"escalation-policy-edit\">\n <div class=\"hide-collapsed sidebar-help-wrap\">\n <div class=\"gl-line-height-2 gl-mb-2 gl-flex gl-items-center gl-font-bold gl-text-default\">\n <span>{{ $options.i18n.title }}</span>\n <gl-button\n :data-testid=\"showHelp ? 'close-help-button' : 'help-button'\"\n category=\"tertiary\"\n :icon=\"showHelp ? 'close' : 'question-o'\"\n size=\"small\"\n variant=\"link\"\n class=\"gl-ml-auto\"\n @click=\"toggleHelpState\"\n />\n </div>\n\n <div data-testid=\"select-escalation-policy\" class=\"hide-collapsed gl-leading-1\">\n <span class=\"gl-text-subtle\">\n {{ $options.i18n.none }}\n </span>\n </div>\n\n <escalation-policy-help-state v-if=\"showHelp\" />\n </div>\n\n <escalation-policy-collapsed-state />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./escalation_policies_empty_state.vue?vue&type=template&id=4fd87dea\"\nimport script from \"./escalation_policies_empty_state.vue?vue&type=script&lang=js\"\nexport * from \"./escalation_policies_empty_state.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"data-testid\":\"escalation-policy-edit\"}},[_c('div',{staticClass:\"hide-collapsed sidebar-help-wrap\"},[_c('div',{staticClass:\"gl-line-height-2 gl-mb-2 gl-flex gl-items-center gl-font-bold gl-text-default\"},[_c('span',[_vm._v(_vm._s(_vm.$options.i18n.title))]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-ml-auto\",attrs:{\"data-testid\":_vm.showHelp ? 'close-help-button' : 'help-button',\"category\":\"tertiary\",\"icon\":_vm.showHelp ? 'close' : 'question-o',\"size\":\"small\",\"variant\":\"link\"},on:{\"click\":_vm.toggleHelpState}})],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed gl-leading-1\",attrs:{\"data-testid\":\"select-escalation-policy\"}},[_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.none)+\"\\n \")])]),_vm._v(\" \"),(_vm.showHelp)?_c('escalation-policy-help-state'):_vm._e()],1),_vm._v(\" \"),_c('escalation-policy-collapsed-state')],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!./sidebar_escalation_policy.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!./sidebar_escalation_policy.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink } from '@gitlab/ui';\nimport { joinPaths } from '~/lib/utils/url_utility';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { IssuableAttributeType } from '../../constants';\nimport SidebarDropdownWidget from '../sidebar_dropdown_widget.vue';\nimport EscalationPoliciesEmptyState from './escalation_policies_empty_state.vue';\nimport EscalationPolicyCollapsedState from './escalation_policy_collapsed_state.vue';\n\nexport default {\n INDEX_PATH: '-/escalation_policies',\n components: {\n SidebarDropdownWidget,\n EscalationPolicyCollapsedState,\n GlLink,\n EscalationPoliciesEmptyState,\n },\n props: {\n projectPath: {\n required: true,\n type: String,\n },\n iid: {\n required: true,\n type: String,\n },\n escalationsPossible: {\n type: Boolean,\n required: false,\n default: true,\n },\n issueId: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n policiesPath() {\n return joinPaths(gon.relative_url_root || '/', this.projectPath, this.$options.INDEX_PATH);\n },\n },\n created() {\n this.issuableType = TYPE_ISSUE;\n this.issuableAttribute = IssuableAttributeType.EscalationPolicy;\n },\n};\n</script>\n\n<template>\n <sidebar-dropdown-widget\n v-if=\"escalationsPossible\"\n :attr-workspace-path=\"projectPath\"\n :workspace-path=\"projectPath\"\n :iid=\"iid\"\n :issuable-type=\"issuableType\"\n :issue-id=\"issueId\"\n :issuable-attribute=\"issuableAttribute\"\n >\n <template #value-collapsed=\"{ currentAttribute }\">\n <escalation-policy-collapsed-state :value=\"currentAttribute && currentAttribute.title\" />\n </template>\n\n <template #value=\"{ attributeTitle }\">\n <gl-link class=\"gl-font-bold !gl-text-default\" :href=\"policiesPath\">\n {{ attributeTitle }}\n </gl-link>\n </template>\n </sidebar-dropdown-widget>\n\n <escalation-policies-empty-state v-else />\n</template>\n","import { render, staticRenderFns } from \"./sidebar_escalation_policy.vue?vue&type=template&id=483fe81d\"\nimport script from \"./sidebar_escalation_policy.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_escalation_policy.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 (_vm.escalationsPossible)?_c('sidebar-dropdown-widget',{attrs:{\"attr-workspace-path\":_vm.projectPath,\"workspace-path\":_vm.projectPath,\"iid\":_vm.iid,\"issuable-type\":_vm.issuableType,\"issue-id\":_vm.issueId,\"issuable-attribute\":_vm.issuableAttribute},scopedSlots:_vm._u([{key:\"value-collapsed\",fn:function({ currentAttribute }){return [_c('escalation-policy-collapsed-state',{attrs:{\"value\":currentAttribute && currentAttribute.title}})]}},{key:\"value\",fn:function({ attributeTitle }){return [_c('gl-link',{staticClass:\"gl-font-bold !gl-text-default\",attrs:{\"href\":_vm.policiesPath}},[_vm._v(\"\\n \"+_vm._s(attributeTitle)+\"\\n \")])]}}],null,false,359306193)}):_c('escalation-policies-empty-state')\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport createDefaultClient from '~/lib/graphql';\nimport { parseBoolean } from '~/lib/utils/common_utils';\nimport SidebarDropdown from '~/sidebar/components/sidebar_dropdown.vue';\nimport * as CEMountSidebar from '~/sidebar/mount_sidebar';\nimport CveIdRequest from './components/cve_id_request/cve_id_request.vue';\nimport IterationDropdown from './components/iteration/iteration_dropdown.vue';\nimport SidebarIterationWidget from './components/iteration/sidebar_iteration_widget.vue';\nimport SidebarDropdownWidget from './components/sidebar_dropdown_widget.vue';\nimport HealthStatusDropdown from './components/health_status/health_status_dropdown.vue';\nimport SidebarHealthStatusWidget from './components/health_status/sidebar_health_status_widget.vue';\nimport SidebarWeightWidget from './components/weight/sidebar_weight_widget.vue';\nimport SidebarEscalationPolicy from './components/incidents/sidebar_escalation_policy.vue';\nimport {\n healthStatusForRestApi,\n IssuableAttributeType,\n noEpic,\n placeholderEpic,\n} from './constants';\n\nVue.use(VueApollo);\n\nconst mountSidebarWeightWidget = () => {\n const el = document.querySelector('.js-sidebar-weight-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { canEdit, projectPath, issueIid } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarWeightWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canEdit),\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(SidebarWeightWidget, {\n props: {\n fullPath: projectPath,\n iid: issueIid,\n issuableType: TYPE_ISSUE,\n },\n }),\n });\n};\n\nconst mountSidebarHealthStatusWidget = () => {\n const el = document.querySelector('.js-sidebar-health-status-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { iid, fullPath, issuableType, canEdit } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarHealthStatusWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canEdit),\n },\n render: (createElement) =>\n createElement(SidebarHealthStatusWidget, {\n props: {\n fullPath,\n iid,\n issuableType,\n },\n }),\n });\n};\n\nexport function mountHealthStatusDropdown() {\n const el = document.querySelector('.js-health-status-dropdown-root');\n const healthStatusFormInput = document.getElementById('issue_health_status_value');\n\n if (!el || !healthStatusFormInput) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'HealthStatusDropdownRoot',\n data() {\n return {\n healthStatus: undefined,\n };\n },\n methods: {\n handleChange(healthStatus) {\n this.healthStatus = healthStatus;\n healthStatusFormInput.setAttribute(\n 'value',\n healthStatusForRestApi[healthStatus || 'NO_STATUS'],\n );\n },\n },\n render(createElement) {\n return createElement(HealthStatusDropdown, {\n props: {\n healthStatus: this.healthStatus,\n },\n on: {\n change: this.handleChange.bind(this),\n },\n });\n },\n });\n}\n\nfunction mountSidebarCveIdRequest(store) {\n const el = document.querySelector('.js-sidebar-cve-id-request-root');\n\n if (!el) {\n return null;\n }\n\n const { iid, fullPath } = CEMountSidebar.getSidebarOptions();\n\n return new Vue({\n store,\n el,\n name: 'SidebarCveIdRequestRoot',\n provide: {\n iid: String(iid),\n fullPath,\n },\n render: (createElement) => createElement(CveIdRequest),\n });\n}\n\nfunction mountSidebarEpicWidget() {\n const el = document.querySelector('.js-sidebar-epic-widget-root');\n const workItemEpics = window.gon?.features?.workItemEpics;\n\n if (!el) {\n return null;\n }\n\n const { groupPath, canEdit, projectPath, issueIid, issueId } = el.dataset;\n return new Vue({\n el,\n name: 'SidebarEpicWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canEdit),\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(SidebarDropdownWidget, {\n props: {\n attrWorkspacePath: groupPath,\n workspacePath: projectPath,\n iid: issueIid,\n issueId,\n issuableType: TYPE_ISSUE,\n issuableAttribute: IssuableAttributeType.Epic,\n showWorkItemEpics: workItemEpics,\n },\n }),\n });\n}\n\nexport function mountEpicDropdown() {\n const el = document.querySelector('.js-epic-dropdown-root');\n const epicFormInput = document.getElementById('issue_epic_id');\n\n if (!el || !epicFormInput) {\n return null;\n }\n\n Vue.use(VueApollo);\n\n return new Vue({\n el,\n name: 'EpicDropdownRoot',\n apolloProvider: new VueApollo({\n defaultClient: createDefaultClient(),\n }),\n data() {\n return {\n epic: placeholderEpic,\n };\n },\n methods: {\n handleChange(epic) {\n this.epic = epic.id === null ? noEpic : epic;\n epicFormInput.setAttribute('value', getIdFromGraphQLId(this.epic.id));\n },\n },\n render(createElement) {\n return createElement(SidebarDropdown, {\n props: {\n attrWorkspacePath: el.dataset.groupPath,\n currentAttribute: this.epic,\n issuableAttribute: IssuableAttributeType.Epic,\n issuableType: TYPE_ISSUE,\n },\n on: {\n change: this.handleChange.bind(this),\n },\n });\n },\n });\n}\n\nfunction mountSidebarIterationWidget() {\n const el = document.querySelector('.js-sidebar-iteration-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { groupPath, canEdit, projectPath, issueIid, issueId } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarIterationWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canEdit),\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(SidebarIterationWidget, {\n props: {\n attrWorkspacePath: groupPath,\n workspacePath: projectPath,\n iid: issueIid,\n issuableType: TYPE_ISSUE,\n issueId,\n issuableAttribute: IssuableAttributeType.Iteration,\n },\n }),\n });\n}\n\nexport function mountIterationDropdown() {\n const el = document.querySelector('.js-iteration-dropdown-root');\n const iterationFormInput = document.getElementById('issue_iteration_id');\n\n if (!el || !iterationFormInput) {\n return null;\n }\n\n Vue.use(VueApollo);\n\n return new Vue({\n el,\n name: 'IterationDropdownRoot',\n apolloProvider: new VueApollo({\n defaultClient: createDefaultClient(),\n }),\n provide: {\n fullPath: el.dataset.fullPath,\n },\n methods: {\n getIdForIteration(iteration) {\n const noChangeIterationValue = '';\n const unSetIterationValue = '0';\n\n if (iteration === null) {\n return noChangeIterationValue;\n }\n if (iteration.id === null) {\n return unSetIterationValue;\n }\n\n return getIdFromGraphQLId(iteration.id);\n },\n handleIterationSelect(iteration) {\n iterationFormInput.setAttribute('value', this.getIdForIteration(iteration));\n },\n },\n render(createElement) {\n return createElement(IterationDropdown, {\n on: {\n onIterationSelect: this.handleIterationSelect.bind(this),\n },\n });\n },\n });\n}\n\nfunction mountSidebarEscalationPolicy() {\n const el = document.querySelector('.js-sidebar-escalation-policy-root');\n\n if (!el) {\n return null;\n }\n\n const { canEdit, projectPath, issueIid, hasEscalationPolicies, issueId } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarEscalationPolicyRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canEdit),\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(SidebarEscalationPolicy, {\n props: {\n projectPath,\n iid: issueIid,\n escalationsPossible: parseBoolean(hasEscalationPolicies),\n issueId,\n },\n }),\n });\n}\n\nexport const { getSidebarOptions } = CEMountSidebar;\n\nexport function mountSidebar(mediator, store) {\n CEMountSidebar.mountSidebar(mediator, store);\n mountSidebarWeightWidget();\n mountSidebarHealthStatusWidget();\n mountSidebarEpicWidget();\n mountSidebarIterationWidget();\n mountSidebarEscalationPolicy();\n mountSidebarCveIdRequest(store);\n}\n","import getSharedStateQuery from '../client/queries/shared_drawer_state.query.graphql';\n\nexport default {\n Mutation: {\n discardChanges(_, __, { cache }) {\n cache.updateQuery({ query: getSharedStateQuery }, ({ sharedData }) => ({\n sharedData: {\n ...sharedData,\n showDiscardChangesModal: false,\n formTouched: false,\n },\n }));\n },\n goFirstStep(_, { profileType, mode }, { cache }) {\n cache.updateQuery({ query: getSharedStateQuery }, ({ sharedData }) => ({\n sharedData: {\n ...sharedData,\n history: [{ profileType, mode }],\n },\n }));\n },\n goForward(_, { profileType, mode }, { cache }) {\n cache.updateQuery({ query: getSharedStateQuery }, ({ sharedData }) => ({\n sharedData: {\n ...sharedData,\n history: [...sharedData.history, { profileType, mode }],\n },\n }));\n },\n goBack(_, __, { cache }) {\n cache.updateQuery({ query: getSharedStateQuery }, ({ sharedData }) => ({\n sharedData: {\n ...sharedData,\n history: sharedData.history.slice(0, -1),\n },\n }));\n },\n resetHistory(_, __, { cache }) {\n cache.updateQuery({ query: getSharedStateQuery }, ({ sharedData }) => ({\n sharedData: {\n ...sharedData,\n history: [],\n },\n }));\n },\n toggleModal(_, { showDiscardChangesModal }, { cache }) {\n cache.updateQuery({ query: getSharedStateQuery }, ({ sharedData }) => ({\n sharedData: {\n ...sharedData,\n showDiscardChangesModal,\n },\n }));\n },\n setCachedPayload(_, { cachedPayload = { profileType: '', mode: '' } }, { cache }) {\n cache.updateQuery({ query: getSharedStateQuery }, ({ sharedData }) => ({\n sharedData: {\n ...sharedData,\n cachedPayload,\n },\n }));\n },\n setFormTouched(_, { formTouched }, { cache }) {\n cache.updateQuery({ query: getSharedStateQuery }, ({ sharedData }) => ({\n sharedData: {\n ...sharedData,\n formTouched,\n },\n }));\n },\n setResetAndClose(_, { resetAndClose }, { cache }) {\n cache.updateQuery({ query: getSharedStateQuery }, ({ sharedData }) => ({\n sharedData: {\n ...sharedData,\n resetAndClose,\n },\n }));\n },\n },\n};\n","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport createDefaultClient from '~/lib/graphql';\nimport resolvers from './resolvers/resolvers';\nimport typeDefs from './typedefs.graphql';\n\nVue.use(VueApollo);\n\nexport const typePolicies = {\n Query: {\n fields: {\n sharedData: {\n read(cachedData) {\n return (\n cachedData || {\n showDiscardChangesModal: false,\n formTouched: false,\n history: [],\n cachedPayload: {\n __typename: 'CachedPayload',\n profileType: '',\n mode: '',\n },\n resetAndClose: false,\n __typename: 'SharedData',\n }\n );\n },\n },\n },\n },\n};\n\nexport const defaultClient = createDefaultClient(resolvers, {\n cacheConfig: { typePolicies },\n typeDefs,\n});\n\nexport default new VueApollo({\n defaultClient,\n});\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"getStateSubscription\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestMergeStatusUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"detailedMergeStatus\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"commitCount\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeTrainPosition\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":342}};\n doc.loc.source = {\"body\":\"#import \\\"ee_else_ce/vue_merge_request_widget/queries/states/merge_train_position.fragment.graphql\\\"\\n\\nsubscription getStateSubscription($issuableId: IssuableID!) {\\n mergeRequestMergeStatusUpdated(issuableId: $issuableId) {\\n ... on MergeRequest {\\n id\\n detailedMergeStatus\\n commitCount\\n\\n ...MergeTrainPosition\\n }\\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/vue_merge_request_widget/queries/states/merge_train_position.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[\"getStateSubscription\"] = oneQuery(doc, \"getStateSubscription\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('timeline-entry-item',{staticClass:\"note note-wrapper note-comment\",class:{ ..._vm.classNameBindings, 'internal-note': _vm.note.internal },attrs:{\"id\":_vm.noteAnchorId,\"data-award-url\":_vm.note.toggle_award_path,\"data-note-id\":_vm.note.id,\"data-testid\":\"noteable-note-container\"}},[(_vm.showMultiLineComment)?_c('div',{staticClass:\"gl-border-b gl-border-section gl-px-5 gl-py-3 gl-text-subtle\",attrs:{\"data-testid\":\"multiline-comment\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.__('Comment on lines %{startLine} to %{endLine}')},scopedSlots:_vm._u([{key:\"startLine\",fn:function(){return [_c('span',{class:_vm.getLineClasses(_vm.startLineNumber)},[_vm._v(_vm._s(_vm.startLineNumber))])]},proxy:true},{key:\"endLine\",fn:function(){return [_c('span',{class:_vm.getLineClasses(_vm.endLineNumber)},[_vm._v(_vm._s(_vm.endLineNumber))])]},proxy:true}],null,false,1413361638)})],1):_vm._e(),_vm._v(\" \"),(_vm.isMRDiffView)?_c('div',{staticClass:\"timeline-avatar gl-float-left gl-pt-2\"},[_c('gl-avatar-link',{staticClass:\"js-user-link\",attrs:{\"href\":_vm.author.path,\"data-user-id\":_vm.authorId,\"data-username\":_vm.author.username}},[_c('gl-avatar',{attrs:{\"src\":_vm.author.avatar_url,\"entity-name\":_vm.author.username,\"alt\":_vm.author.name,\"size\":24}}),_vm._v(\" \"),_vm._t(\"avatar-badge\")],2)],1):_c('div',{staticClass:\"timeline-avatar gl-float-left\"},[_c('gl-avatar-link',{staticClass:\"js-user-link gl-relative\",attrs:{\"href\":_vm.author.path,\"data-user-id\":_vm.authorId,\"data-username\":_vm.author.username}},[_c('gl-avatar',{attrs:{\"src\":_vm.author.avatar_url,\"entity-name\":_vm.author.username,\"alt\":_vm.author.name,\"size\":32}}),_vm._v(\" \"),_vm._t(\"avatar-badge\")],2)],1),_vm._v(\" \"),_c('div',{staticClass:\"timeline-content\"},[_c('div',{staticClass:\"note-header\"},[_c('note-header',{attrs:{\"author\":_vm.author,\"created-at\":_vm.note.created_at,\"note-id\":_vm.note.id,\"is-internal-note\":_vm.note.internal,\"is-imported\":_vm.note.imported,\"noteable-type\":_vm.noteableType,\"email-participant\":_vm.note.external_author},scopedSlots:_vm._u([{key:\"note-header-info\",fn:function(){return [_vm._t(\"note-header-info\")]},proxy:true}],null,true)},[_vm._v(\" \"),(_vm.commit)?_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.actionText),expression:\"actionText\"}]}):(_vm.note.created_at)?_c('span',{staticClass:\"gl-hidden sm:gl-inline\"},[_vm._v(\"·\")]):_vm._e()]),_vm._v(\" \"),_c('note-actions',{attrs:{\"author\":_vm.author,\"author-id\":_vm.authorId,\"note-id\":_vm.note.id,\"note-url\":_vm.note.noteable_note_url,\"access-level\":_vm.note.human_access,\"is-contributor\":_vm.note.is_contributor,\"is-author\":_vm.note.is_noteable_author,\"project-name\":_vm.note.project_name,\"noteable-type\":_vm.note.noteable_type,\"show-reply\":_vm.showReplyButton,\"can-edit\":_vm.canEdit,\"can-award-emoji\":_vm.canAwardEmoji,\"can-delete\":_vm.canEdit,\"can-report-as-abuse\":_vm.canReportAsAbuse,\"can-resolve\":_vm.canResolve,\"resolvable\":_vm.note.resolvable || _vm.note.isDraft,\"is-resolved\":_vm.note.resolved || _vm.note.resolve_discussion,\"is-resolving\":_vm.isResolving,\"resolved-by\":_vm.note.resolved_by,\"is-draft\":_vm.note.isDraft,\"resolve-discussion\":_vm.note.isDraft && _vm.note.resolve_discussion,\"discussion-id\":_vm.discussionId,\"award-path\":_vm.note.toggle_award_path},on:{\"handleEdit\":_vm.editHandler,\"handleDelete\":_vm.deleteHandler,\"handleResolve\":_vm.resolveHandler,\"startReplying\":function($event){return _vm.$emit('startReplying')},\"updateAssignees\":_vm.assigneesUpdate}})],1),_vm._v(\" \"),_c('div',{staticClass:\"timeline-discussion-body\"},[_vm._t(\"discussion-resolved-text\"),_vm._v(\" \"),_vm._t(\"note-body\",function(){return [_c('note-body',{ref:\"noteBody\",attrs:{\"note\":_vm.note,\"can-edit\":_vm.canEdit,\"line\":_vm.line,\"file\":_vm.diffFile,\"is-editing\":_vm.isEditing,\"autosave-key\":_vm.autosaveKey,\"restore-from-autosave\":_vm.restoreFromAutosave,\"help-page-path\":_vm.helpPagePath},on:{\"handleFormUpdate\":_vm.formUpdateHandler,\"cancelForm\":_vm.formCancelHandler}})]}),_vm._v(\" \"),_c('div',{staticClass:\"timeline-discussion-body-footer\"},[_vm._t(\"after-note-body\")],2)],2)])])\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!./timeline_event_button.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!./timeline_event_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlButton } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n i18n: {\n buttonText: __('Add comment to incident timeline'),\n addError: __('Error promoting the note to timeline event: %{error}'),\n addGenericError: __('Something went wrong while promoting the note to timeline event.'),\n },\n components: {\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n noteId: {\n type: [String, Number],\n required: true,\n },\n isPromotionInProgress: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n methods: {\n handleButtonClick() {\n this.$emit('click-promote-comment-to-event', {\n noteId: this.noteId,\n addError: this.$options.i18n.addError,\n addGenericError: this.$options.i18n.addGenericError,\n });\n },\n },\n};\n</script>\n<template>\n <span v-gl-tooltip :title=\"$options.i18n.buttonText\">\n <gl-button\n category=\"tertiary\"\n icon=\"clock\"\n :aria-label=\"$options.i18n.buttonText\"\n :disabled=\"isPromotionInProgress\"\n @click=\"handleButtonClick\"\n />\n </span>\n</template>\n","import { render, staticRenderFns } from \"./timeline_event_button.vue?vue&type=template&id=64e4bc06\"\nimport script from \"./timeline_event_button.vue?vue&type=script&lang=js\"\nexport * from \"./timeline_event_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],attrs:{\"title\":_vm.$options.i18n.buttonText}},[_c('gl-button',{attrs:{\"category\":\"tertiary\",\"icon\":\"clock\",\"aria-label\":_vm.$options.i18n.buttonText,\"disabled\":_vm.isPromotionInProgress},on:{\"click\":_vm.handleButtonClick}})],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!./note_actions.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!./note_actions.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlTooltipDirective,\n GlButton,\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n GlDisclosureDropdownGroup,\n} from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport Api from '~/api';\nimport resolvedStatusMixin from '~/batch_comments/mixins/resolved_status';\nimport { createAlert } from '~/alert';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\nimport UserAccessRoleBadge from '~/vue_shared/components/user_access_role_badge.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { splitCamelCase } from '~/lib/utils/text_utility';\nimport AbuseCategorySelector from '~/abuse_reports/components/abuse_category_selector.vue';\nimport ReplyButton from './note_actions/reply_button.vue';\nimport TimelineEventButton from './note_actions/timeline_event_button.vue';\n\nexport default {\n i18n: {\n editCommentLabel: __('Edit comment'),\n deleteCommentLabel: __('Delete comment'),\n moreActionsLabel: __('More actions'),\n reportAbuse: __('Report abuse'),\n },\n name: 'NoteActions',\n components: {\n AbuseCategorySelector,\n EmojiPicker: () => import('~/emoji/components/picker.vue'),\n GlButton,\n GlDisclosureDropdown,\n GlDisclosureDropdownItem,\n GlDisclosureDropdownGroup,\n ReplyButton,\n TimelineEventButton,\n UserAccessRoleBadge,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [resolvedStatusMixin, glFeatureFlagsMixin()],\n props: {\n author: {\n type: Object,\n required: true,\n },\n authorId: {\n type: Number,\n required: true,\n },\n noteId: {\n type: [String, Number],\n required: true,\n },\n noteUrl: {\n type: String,\n required: false,\n default: '',\n },\n accessLevel: {\n type: String,\n required: false,\n default: '',\n },\n isAuthor: {\n type: Boolean,\n required: false,\n default: false,\n },\n isContributor: {\n type: Boolean,\n required: false,\n default: false,\n },\n noteableType: {\n type: String,\n required: false,\n default: '',\n },\n projectName: {\n type: String,\n required: false,\n default: '',\n },\n showReply: {\n type: Boolean,\n required: true,\n },\n canEdit: {\n type: Boolean,\n required: false,\n default: false,\n },\n canAwardEmoji: {\n type: Boolean,\n required: false,\n default: false,\n },\n canDelete: {\n type: Boolean,\n required: false,\n default: false,\n },\n canResolve: {\n type: Boolean,\n required: false,\n default: false,\n },\n resolvable: {\n type: Boolean,\n required: false,\n default: false,\n },\n isResolved: {\n type: Boolean,\n required: false,\n default: false,\n },\n isResolving: {\n type: Boolean,\n required: false,\n default: false,\n },\n resolvedBy: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n canReportAsAbuse: {\n type: Boolean,\n required: true,\n },\n // This can be undefined when `canAwardEmoji` is false\n awardPath: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n isReportAbuseDrawerOpen: false,\n };\n },\n computed: {\n ...mapState(['isPromoteCommentToTimelineEventInProgress']),\n ...mapGetters(['getUserDataByProp', 'getNoteableData', 'canUserAddIncidentTimelineEvents']),\n shouldShowActionsDropdown() {\n return this.currentUserId;\n },\n showDeleteAction() {\n return this.canDelete && !this.canReportAsAbuse && !this.noteUrl;\n },\n currentUserId() {\n return this.getUserDataByProp('id');\n },\n isUserAssigned() {\n return this.assignees && this.assignees.some(({ id }) => id === this.author.id);\n },\n displayAssignUserText() {\n return this.isUserAssigned\n ? __('Unassign from commenting user')\n : __('Assign to commenting user');\n },\n targetType() {\n return this.getNoteableData.targetType;\n },\n noteableDisplayName() {\n return splitCamelCase(this.noteableType).toLowerCase();\n },\n assignees() {\n return this.getNoteableData.assignees || [];\n },\n isIssue() {\n return this.targetType === TYPE_ISSUE;\n },\n canAssign() {\n return this.getNoteableData.current_user?.can_set_issue_metadata && this.isIssue;\n },\n displayAuthorBadgeText() {\n return sprintf(__('This user is the author of this %{noteable}.'), {\n noteable: this.noteableDisplayName,\n });\n },\n displayMemberBadgeText() {\n return sprintf(__('This user has the %{access} role in the %{name} project.'), {\n access: this.accessLevel.toLowerCase(),\n name: this.projectName,\n });\n },\n displayContributorBadgeText() {\n return sprintf(__('This user has previously committed to the %{name} project.'), {\n name: this.projectName,\n });\n },\n resolveIcon() {\n if (!this.isResolving) {\n return this.isResolved ? 'check-circle-filled' : 'check-circle';\n }\n return null;\n },\n },\n methods: {\n ...mapActions(['toggleAwardRequest', 'promoteCommentToTimelineEvent']),\n onEdit() {\n this.$emit('handleEdit');\n },\n onDelete() {\n this.$emit('handleDelete');\n },\n onResolve() {\n this.$emit('handleResolve');\n },\n onAbuse() {\n this.toggleReportAbuseDrawer(true);\n },\n onCopyUrl() {\n this.$toast.show(__('Link copied to clipboard.'));\n },\n handleAssigneeUpdate(assignees) {\n this.$emit('updateAssignees', assignees);\n },\n assignUser() {\n let { assignees } = this;\n const { project_id, iid } = this.getNoteableData;\n\n if (this.isUserAssigned) {\n assignees = assignees.filter((assignee) => assignee.id !== this.author.id);\n } else {\n assignees.push({ id: this.author.id });\n }\n\n if (this.targetType === TYPE_ISSUE) {\n Api.updateIssue(project_id, iid, {\n assignee_ids: assignees.map((assignee) => assignee.id),\n })\n .then(() => this.handleAssigneeUpdate(assignees))\n .catch(() =>\n createAlert({\n message: __('Something went wrong while updating assignees'),\n }),\n );\n }\n },\n setAwardEmoji(awardName) {\n this.toggleAwardRequest({\n endpoint: this.awardPath,\n noteId: this.noteId,\n awardName,\n });\n },\n toggleReportAbuseDrawer(isOpen) {\n this.isReportAbuseDrawerOpen = isOpen;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"note-actions\">\n <user-access-role-badge\n v-if=\"isAuthor\"\n v-gl-tooltip\n class=\"gl-mr-3 gl-hidden sm:gl-block\"\n :title=\"displayAuthorBadgeText\"\n >\n {{ __('Author') }}\n </user-access-role-badge>\n <user-access-role-badge\n v-if=\"accessLevel\"\n v-gl-tooltip\n class=\"gl-mr-3 gl-hidden sm:gl-block\"\n :title=\"displayMemberBadgeText\"\n >\n {{ accessLevel }}\n </user-access-role-badge>\n <user-access-role-badge\n v-else-if=\"isContributor\"\n v-gl-tooltip\n class=\"gl-mr-3 gl-hidden sm:gl-block\"\n :title=\"displayContributorBadgeText\"\n >\n {{ __('Contributor') }}\n </user-access-role-badge>\n <span class=\"note-actions__mobile-spacer\"></span>\n <gl-button\n v-if=\"canResolve\"\n ref=\"resolveButton\"\n v-gl-tooltip\n data-testid=\"resolve-line-button\"\n category=\"tertiary\"\n class=\"note-action-button\"\n :class=\"{ '!gl-text-success': isResolved }\"\n :title=\"resolveButtonTitle\"\n :aria-label=\"resolveButtonTitle\"\n :icon=\"resolveIcon\"\n :loading=\"isResolving\"\n @click=\"onResolve\"\n />\n <timeline-event-button\n v-if=\"canUserAddIncidentTimelineEvents\"\n :note-id=\"noteId\"\n :is-promotion-in-progress=\"isPromoteCommentToTimelineEventInProgress\"\n @click-promote-comment-to-event=\"promoteCommentToTimelineEvent\"\n />\n <emoji-picker\n v-if=\"canAwardEmoji\"\n toggle-class=\"add-reaction-button btn-default-tertiary\"\n data-testid=\"note-emoji-button\"\n @click=\"setAwardEmoji\"\n />\n <reply-button\n v-if=\"showReply\"\n ref=\"replyButton\"\n class=\"js-reply-button\"\n @startReplying=\"$emit('startReplying')\"\n />\n <gl-button\n v-if=\"canEdit\"\n v-gl-tooltip\n :title=\"$options.i18n.editCommentLabel\"\n :aria-label=\"$options.i18n.editCommentLabel\"\n icon=\"pencil\"\n category=\"tertiary\"\n class=\"note-action-button js-note-edit\"\n data-testid=\"note-edit-button\"\n @click=\"onEdit\"\n />\n <gl-button\n v-if=\"showDeleteAction\"\n v-gl-tooltip\n :title=\"$options.i18n.deleteCommentLabel\"\n :aria-label=\"$options.i18n.deleteCommentLabel\"\n icon=\"remove\"\n category=\"tertiary\"\n class=\"note-action-button js-note-delete\"\n @click=\"onDelete\"\n />\n <div v-else-if=\"shouldShowActionsDropdown\" class=\"more-actions dropdown\">\n <gl-disclosure-dropdown\n v-gl-tooltip\n :title=\"$options.i18n.moreActionsLabel\"\n :toggle-text=\"$options.i18n.moreActionsLabel\"\n text-sr-only\n icon=\"ellipsis_v\"\n category=\"tertiary\"\n placement=\"bottom-end\"\n class=\"note-action-button more-actions-toggle\"\n no-caret\n >\n <gl-disclosure-dropdown-item\n v-if=\"noteUrl\"\n class=\"js-btn-copy-note-link\"\n :data-clipboard-text=\"noteUrl\"\n @action=\"onCopyUrl\"\n >\n <template #list-item>\n {{ __('Copy link') }}\n </template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-item\n v-if=\"canAssign\"\n data-testid=\"assign-user\"\n @action=\"assignUser\"\n >\n <template #list-item>\n {{ displayAssignUserText }}\n </template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-group v-if=\"canReportAsAbuse || canEdit\" bordered>\n <gl-disclosure-dropdown-item\n v-if=\"canReportAsAbuse\"\n data-testid=\"report-abuse-button\"\n @action=\"onAbuse\"\n >\n <template #list-item>\n {{ $options.i18n.reportAbuse }}\n </template>\n </gl-disclosure-dropdown-item>\n <gl-disclosure-dropdown-item v-if=\"canEdit\" class=\"js-note-delete\" @action=\"onDelete\">\n <template #list-item>\n <span class=\"gl-text-danger\">{{ __('Delete comment') }}</span>\n </template>\n </gl-disclosure-dropdown-item>\n </gl-disclosure-dropdown-group>\n </gl-disclosure-dropdown>\n </div>\n <!-- IMPORTANT: show this component lazily because it causes layout thrashing -->\n <!-- https://gitlab.com/gitlab-org/gitlab/-/issues/331172#note_1269378396 -->\n <abuse-category-selector\n v-if=\"canReportAsAbuse && isReportAbuseDrawerOpen\"\n :reported-user-id=\"authorId\"\n :reported-from-url=\"noteUrl\"\n :show-drawer=\"isReportAbuseDrawerOpen\"\n @close-drawer=\"toggleReportAbuseDrawer(false)\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_actions.vue?vue&type=template&id=876917c8\"\nimport script from \"./note_actions.vue?vue&type=script&lang=js\"\nexport * from \"./note_actions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"note-actions\"},[(_vm.isAuthor)?_c('user-access-role-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-mr-3 gl-hidden sm:gl-block\",attrs:{\"title\":_vm.displayAuthorBadgeText}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Author'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.accessLevel)?_c('user-access-role-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-mr-3 gl-hidden sm:gl-block\",attrs:{\"title\":_vm.displayMemberBadgeText}},[_vm._v(\"\\n \"+_vm._s(_vm.accessLevel)+\"\\n \")]):(_vm.isContributor)?_c('user-access-role-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-mr-3 gl-hidden sm:gl-block\",attrs:{\"title\":_vm.displayContributorBadgeText}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Contributor'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('span',{staticClass:\"note-actions__mobile-spacer\"}),_vm._v(\" \"),(_vm.canResolve)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],ref:\"resolveButton\",staticClass:\"note-action-button\",class:{ '!gl-text-success': _vm.isResolved },attrs:{\"data-testid\":\"resolve-line-button\",\"category\":\"tertiary\",\"title\":_vm.resolveButtonTitle,\"aria-label\":_vm.resolveButtonTitle,\"icon\":_vm.resolveIcon,\"loading\":_vm.isResolving},on:{\"click\":_vm.onResolve}}):_vm._e(),_vm._v(\" \"),(_vm.canUserAddIncidentTimelineEvents)?_c('timeline-event-button',{attrs:{\"note-id\":_vm.noteId,\"is-promotion-in-progress\":_vm.isPromoteCommentToTimelineEventInProgress},on:{\"click-promote-comment-to-event\":_vm.promoteCommentToTimelineEvent}}):_vm._e(),_vm._v(\" \"),(_vm.canAwardEmoji)?_c('emoji-picker',{attrs:{\"toggle-class\":\"add-reaction-button btn-default-tertiary\",\"data-testid\":\"note-emoji-button\"},on:{\"click\":_vm.setAwardEmoji}}):_vm._e(),_vm._v(\" \"),(_vm.showReply)?_c('reply-button',{ref:\"replyButton\",staticClass:\"js-reply-button\",on:{\"startReplying\":function($event){return _vm.$emit('startReplying')}}}):_vm._e(),_vm._v(\" \"),(_vm.canEdit)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"note-action-button js-note-edit\",attrs:{\"title\":_vm.$options.i18n.editCommentLabel,\"aria-label\":_vm.$options.i18n.editCommentLabel,\"icon\":\"pencil\",\"category\":\"tertiary\",\"data-testid\":\"note-edit-button\"},on:{\"click\":_vm.onEdit}}):_vm._e(),_vm._v(\" \"),(_vm.showDeleteAction)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"note-action-button js-note-delete\",attrs:{\"title\":_vm.$options.i18n.deleteCommentLabel,\"aria-label\":_vm.$options.i18n.deleteCommentLabel,\"icon\":\"remove\",\"category\":\"tertiary\"},on:{\"click\":_vm.onDelete}}):(_vm.shouldShowActionsDropdown)?_c('div',{staticClass:\"more-actions dropdown\"},[_c('gl-disclosure-dropdown',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"note-action-button more-actions-toggle\",attrs:{\"title\":_vm.$options.i18n.moreActionsLabel,\"toggle-text\":_vm.$options.i18n.moreActionsLabel,\"text-sr-only\":\"\",\"icon\":\"ellipsis_v\",\"category\":\"tertiary\",\"placement\":\"bottom-end\",\"no-caret\":\"\"}},[(_vm.noteUrl)?_c('gl-disclosure-dropdown-item',{staticClass:\"js-btn-copy-note-link\",attrs:{\"data-clipboard-text\":_vm.noteUrl},on:{\"action\":_vm.onCopyUrl},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.__('Copy link'))+\"\\n \")]},proxy:true}],null,false,618784014)}):_vm._e(),_vm._v(\" \"),(_vm.canAssign)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"assign-user\"},on:{\"action\":_vm.assignUser},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.displayAssignUserText)+\"\\n \")]},proxy:true}],null,false,3812251101)}):_vm._e(),_vm._v(\" \"),(_vm.canReportAsAbuse || _vm.canEdit)?_c('gl-disclosure-dropdown-group',{attrs:{\"bordered\":\"\"}},[(_vm.canReportAsAbuse)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"report-abuse-button\"},on:{\"action\":_vm.onAbuse},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.reportAbuse)+\"\\n \")]},proxy:true}],null,false,3009725790)}):_vm._e(),_vm._v(\" \"),(_vm.canEdit)?_c('gl-disclosure-dropdown-item',{staticClass:\"js-note-delete\",on:{\"action\":_vm.onDelete},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('span',{staticClass:\"gl-text-danger\"},[_vm._v(_vm._s(_vm.__('Delete comment')))])]},proxy:true}],null,false,1412744113)}):_vm._e()],1):_vm._e()],1)],1):_vm._e(),_vm._v(\" \"),(_vm.canReportAsAbuse && _vm.isReportAbuseDrawerOpen)?_c('abuse-category-selector',{attrs:{\"reported-user-id\":_vm.authorId,\"reported-from-url\":_vm.noteUrl,\"show-drawer\":_vm.isReportAbuseDrawerOpen},on:{\"close-drawer\":function($event){return _vm.toggleReportAbuseDrawer(false)}}}):_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!./note_attachment.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!./note_attachment.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\n\nexport default {\n name: 'NoteAttachment',\n components: {\n GlIcon,\n },\n props: {\n attachment: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"note-attachment\">\n <a\n v-if=\"attachment.image\"\n ref=\"attachmentImage\"\n :href=\"attachment.url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <img :src=\"attachment.url\" class=\"note-image-attach col-lg-4\" />\n </a>\n <div class=\"attachment\">\n <a\n v-if=\"attachment.url\"\n ref=\"attachmentUrl\"\n :href=\"attachment.url\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n <gl-icon name=\"paperclip\" /> {{ attachment.filename }}\n </a>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_attachment.vue?vue&type=template&id=ff0e6db4\"\nimport script from \"./note_attachment.vue?vue&type=script&lang=js\"\nexport * from \"./note_attachment.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('div',{staticClass:\"note-attachment\"},[(_vm.attachment.image)?_c('a',{ref:\"attachmentImage\",attrs:{\"href\":_vm.attachment.url,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_c('img',{staticClass:\"note-image-attach col-lg-4\",attrs:{\"src\":_vm.attachment.url}})]):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"attachment\"},[(_vm.attachment.url)?_c('a',{ref:\"attachmentUrl\",attrs:{\"href\":_vm.attachment.url,\"target\":\"_blank\",\"rel\":\"noopener noreferrer\"}},[_c('gl-icon',{attrs:{\"name\":\"paperclip\"}}),_vm._v(\" \"+_vm._s(_vm.attachment.filename)+\"\\n \")],1):_vm._e()])])\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!./note_awards_list.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!./note_awards_list.vue?vue&type=script&lang=js\"","<script>\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters } from 'vuex';\nimport { createAlert } from '~/alert';\nimport { __ } from '~/locale';\nimport AwardsList from '~/vue_shared/components/awards_list.vue';\n\nexport default {\n components: {\n AwardsList,\n },\n props: {\n awards: {\n type: Array,\n required: true,\n },\n toggleAwardPath: {\n type: String,\n required: true,\n },\n noteAuthorId: {\n type: Number,\n required: true,\n },\n noteId: {\n type: String,\n required: true,\n },\n canAwardEmoji: {\n type: Boolean,\n required: true,\n },\n },\n computed: {\n ...mapGetters(['getUserData']),\n isAuthoredByMe() {\n return this.noteAuthorId === this.getUserData.id;\n },\n },\n methods: {\n ...mapActions(['toggleAwardRequest']),\n handleAward(awardName) {\n const data = {\n endpoint: this.toggleAwardPath,\n noteId: this.noteId,\n awardName,\n };\n\n this.toggleAwardRequest(data).catch(() =>\n createAlert({\n message: __('Something went wrong on our end.'),\n }),\n );\n },\n },\n};\n</script>\n\n<template>\n <div class=\"note-awards\">\n <awards-list\n :awards=\"awards\"\n :can-award-emoji=\"canAwardEmoji\"\n :current-user-id=\"getUserData.id\"\n @award=\"handleAward($event)\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_awards_list.vue?vue&type=template&id=29bdaae6\"\nimport script from \"./note_awards_list.vue?vue&type=script&lang=js\"\nexport * from \"./note_awards_list.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('div',{staticClass:\"note-awards\"},[_c('awards-list',{attrs:{\"awards\":_vm.awards,\"can-award-emoji\":_vm.canAwardEmoji,\"current-user-id\":_vm.getUserData.id},on:{\"award\":function($event){return _vm.handleAward($event)}}})],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!./note_body.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!./note_body.vue?vue&type=script&lang=js\"","<script>\nimport { escape } from 'lodash';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { __ } from '~/locale';\nimport Suggestions from '~/vue_shared/components/markdown/suggestions.vue';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport NoteAttachment from './note_attachment.vue';\nimport NoteAwardsList from './note_awards_list.vue';\nimport NoteEditedText from './note_edited_text.vue';\nimport NoteForm from './note_form.vue';\n\nexport default {\n components: {\n NoteEditedText,\n NoteAwardsList,\n NoteAttachment,\n NoteForm,\n Suggestions,\n DuoCodeReviewFeedback: () =>\n import('ee_component/notes/components/duo_code_review_feedback.vue'),\n },\n directives: {\n SafeHtml,\n },\n props: {\n note: {\n type: Object,\n required: true,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n file: {\n type: Object,\n required: false,\n default: null,\n },\n canEdit: {\n type: Boolean,\n required: true,\n },\n isEditing: {\n type: Boolean,\n required: false,\n default: false,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n autosaveKey: {\n type: String,\n required: false,\n default: '',\n },\n restoreFromAutosave: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n ...mapGetters(['getDiscussion', 'suggestionsCount', 'getSuggestionsFilePaths']),\n ...mapGetters('diffs', ['suggestionCommitMessage']),\n ...mapState({\n batchSuggestionsInfo: (state) => state.notes.batchSuggestionsInfo,\n failedToLoadMetadata: (state) => state.page.failedToLoadMetadata,\n }),\n discussion() {\n if (!this.note.isDraft) return {};\n\n return this.getDiscussion(this.note.discussion_id);\n },\n noteBody() {\n return this.note.note;\n },\n saveButtonTitle() {\n return this.note.internal ? __('Save internal note') : __('Save comment');\n },\n hasSuggestion() {\n return this.note.suggestions && this.note.suggestions.length;\n },\n lineType() {\n return this.line ? this.line.type : null;\n },\n commitMessage() {\n // Please see this issue comment for why these\n // are hard-coded to 1:\n // https://gitlab.com/gitlab-org/gitlab/-/issues/291027#note_468308022\n const suggestionsCount = this.batchSuggestionsInfo.length || 1;\n const batchFilePaths = this.getSuggestionsFilePaths();\n const filePaths = batchFilePaths.length ? batchFilePaths : [this.file.file_path];\n const filesCount = filePaths.length;\n // Can be potentially replaced by calculated co-authors of a particular suggestion or batched suggestion\n const coAuthoredByTrailer = __('Co-authored-by: ...');\n const suggestion = this.suggestionCommitMessage({\n file_paths: filePaths.join(', '),\n suggestions_count: suggestionsCount,\n files_count: filesCount,\n co_authored_by: coAuthoredByTrailer,\n });\n\n return escape(suggestion);\n },\n },\n mounted() {\n this.renderGFM();\n },\n updated() {\n this.renderGFM();\n },\n methods: {\n ...mapActions([\n 'submitSuggestion',\n 'submitSuggestionBatch',\n 'addSuggestionInfoToBatch',\n 'removeSuggestionInfoFromBatch',\n ]),\n renderGFM() {\n renderGFM(this.$refs['note-body']);\n },\n // eslint-disable-next-line max-params\n handleFormUpdate(noteText, parentElement, callback, resolveDiscussion) {\n this.$emit('handleFormUpdate', { noteText, parentElement, callback, resolveDiscussion });\n },\n formCancelHandler(shouldConfirm, isDirty) {\n this.$emit('cancelForm', { shouldConfirm, isDirty });\n },\n applySuggestion({ suggestionId, flashContainer, callback = () => {}, message }) {\n const { discussion_id: discussionId, id: noteId } = this.note;\n\n return this.submitSuggestion({\n discussionId,\n noteId,\n suggestionId,\n flashContainer,\n message,\n }).then(callback);\n },\n applySuggestionBatch({ message, flashContainer }) {\n return this.submitSuggestionBatch({ message, flashContainer });\n },\n addSuggestionToBatch(suggestionId) {\n const { discussion_id: discussionId, id: noteId } = this.note;\n\n this.addSuggestionInfoToBatch({ suggestionId, discussionId, noteId });\n },\n removeSuggestionFromBatch(suggestionId) {\n this.removeSuggestionInfoFromBatch(suggestionId);\n },\n },\n safeHtmlConfig: {\n ADD_TAGS: ['use', 'gl-emoji', 'copy-code'],\n },\n};\n</script>\n\n<template>\n <div\n ref=\"note-body\"\n :class=\"{\n 'js-task-list-container': canEdit,\n }\"\n class=\"note-body\"\n >\n <suggestions\n v-if=\"hasSuggestion && !isEditing\"\n :suggestions=\"note.suggestions\"\n :suggestions-count=\"suggestionsCount\"\n :batch-suggestions-info=\"batchSuggestionsInfo\"\n :note-html=\"note.note_html\"\n :line-type=\"lineType\"\n :help-page-path=\"helpPagePath\"\n :default-commit-message=\"commitMessage\"\n :failed-to-load-metadata=\"failedToLoadMetadata\"\n @apply=\"applySuggestion\"\n @applyBatch=\"applySuggestionBatch\"\n @addToBatch=\"addSuggestionToBatch\"\n @removeFromBatch=\"removeSuggestionFromBatch\"\n />\n <div v-else v-safe-html:[$options.safeHtmlConfig]=\"note.note_html\" class=\"note-text md\"></div>\n <duo-code-review-feedback\n v-if=\"note.author.user_type === 'duo_code_review_bot' && note.type !== 'DiffNote'\"\n class=\"gl-mt-3\"\n data-testid=\"code-review-feedback\"\n />\n <note-form\n v-if=\"isEditing\"\n ref=\"noteForm\"\n :note-body=\"noteBody\"\n :note-id=\"note.id\"\n :line=\"line\"\n :note=\"note\"\n :diff-file=\"file\"\n :save-button-title=\"saveButtonTitle\"\n :help-page-path=\"helpPagePath\"\n :discussion=\"discussion\"\n :resolve-discussion=\"note.resolve_discussion\"\n :autosave-key=\"autosaveKey\"\n :restore-from-autosave=\"restoreFromAutosave\"\n @handleFormUpdate=\"handleFormUpdate\"\n @cancelForm=\"formCancelHandler\"\n />\n <!-- eslint-disable vue/no-mutating-props -->\n <textarea\n v-if=\"canEdit\"\n v-model=\"note.note\"\n :data-update-url=\"note.path\"\n class=\"hidden js-task-list-field\"\n dir=\"auto\"\n ></textarea>\n <!-- eslint-enable vue/no-mutating-props -->\n <note-edited-text\n v-if=\"note.last_edited_at\"\n :edited-at=\"note.last_edited_at\"\n :edited-by=\"note.last_edited_by\"\n :action-text=\"__('Edited')\"\n class=\"note_edited_ago\"\n />\n <note-awards-list\n v-if=\"note.award_emoji && note.award_emoji.length\"\n :note-id=\"note.id\"\n :note-author-id=\"note.author.id\"\n :awards=\"note.award_emoji\"\n :toggle-award-path=\"note.toggle_award_path\"\n :can-award-emoji=\"note.current_user.can_award_emoji\"\n />\n <note-attachment v-if=\"note.attachment\" :attachment=\"note.attachment\" />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_body.vue?vue&type=template&id=40f5e1ee\"\nimport script from \"./note_body.vue?vue&type=script&lang=js\"\nexport * from \"./note_body.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('div',{ref:\"note-body\",staticClass:\"note-body\",class:{\n 'js-task-list-container': _vm.canEdit,\n }},[(_vm.hasSuggestion && !_vm.isEditing)?_c('suggestions',{attrs:{\"suggestions\":_vm.note.suggestions,\"suggestions-count\":_vm.suggestionsCount,\"batch-suggestions-info\":_vm.batchSuggestionsInfo,\"note-html\":_vm.note.note_html,\"line-type\":_vm.lineType,\"help-page-path\":_vm.helpPagePath,\"default-commit-message\":_vm.commitMessage,\"failed-to-load-metadata\":_vm.failedToLoadMetadata},on:{\"apply\":_vm.applySuggestion,\"applyBatch\":_vm.applySuggestionBatch,\"addToBatch\":_vm.addSuggestionToBatch,\"removeFromBatch\":_vm.removeSuggestionFromBatch}}):_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.note.note_html),expression:\"note.note_html\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"note-text md\"}),_vm._v(\" \"),(_vm.note.author.user_type === 'duo_code_review_bot' && _vm.note.type !== 'DiffNote')?_c('duo-code-review-feedback',{staticClass:\"gl-mt-3\",attrs:{\"data-testid\":\"code-review-feedback\"}}):_vm._e(),_vm._v(\" \"),(_vm.isEditing)?_c('note-form',{ref:\"noteForm\",attrs:{\"note-body\":_vm.noteBody,\"note-id\":_vm.note.id,\"line\":_vm.line,\"note\":_vm.note,\"diff-file\":_vm.file,\"save-button-title\":_vm.saveButtonTitle,\"help-page-path\":_vm.helpPagePath,\"discussion\":_vm.discussion,\"resolve-discussion\":_vm.note.resolve_discussion,\"autosave-key\":_vm.autosaveKey,\"restore-from-autosave\":_vm.restoreFromAutosave},on:{\"handleFormUpdate\":_vm.handleFormUpdate,\"cancelForm\":_vm.formCancelHandler}}):_vm._e(),_vm._v(\" \"),(_vm.canEdit)?_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.note.note),expression:\"note.note\"}],staticClass:\"hidden js-task-list-field\",attrs:{\"data-update-url\":_vm.note.path,\"dir\":\"auto\"},domProps:{\"value\":(_vm.note.note)},on:{\"input\":function($event){if($event.target.composing)return;_vm.$set(_vm.note, \"note\", $event.target.value)}}}):_vm._e(),_vm._v(\" \"),(_vm.note.last_edited_at)?_c('note-edited-text',{staticClass:\"note_edited_ago\",attrs:{\"edited-at\":_vm.note.last_edited_at,\"edited-by\":_vm.note.last_edited_by,\"action-text\":_vm.__('Edited')}}):_vm._e(),_vm._v(\" \"),(_vm.note.award_emoji && _vm.note.award_emoji.length)?_c('note-awards-list',{attrs:{\"note-id\":_vm.note.id,\"note-author-id\":_vm.note.author.id,\"awards\":_vm.note.award_emoji,\"toggle-award-path\":_vm.note.toggle_award_path,\"can-award-emoji\":_vm.note.current_user.can_award_emoji}}):_vm._e(),_vm._v(\" \"),(_vm.note.attachment)?_c('note-attachment',{attrs:{\"attachment\":_vm.note.attachment}}):_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!./noteable_note.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!./noteable_note.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf, GlAvatarLink, GlAvatar } from '@gitlab/ui';\nimport { escape } from 'lodash';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions } from 'vuex';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport { INLINE_DIFF_LINES_KEY } from '~/diffs/constants';\nimport { createAlert } from '~/alert';\nimport { HTTP_STATUS_GONE } from '~/lib/utils/http_status';\nimport { ignoreWhilePending } from '~/lib/utils/ignore_while_pending';\nimport { truncateSha } from '~/lib/utils/text_utility';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\nimport { __, s__, sprintf } from '~/locale';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport { detectAndConfirmSensitiveTokens } from '~/lib/utils/secret_detection';\nimport eventHub from '../event_hub';\nimport noteable from '../mixins/noteable';\nimport resolvable from '../mixins/resolvable';\nimport { renderMarkdown, updateNoteErrorMessage } from '../utils';\nimport {\n getStartLineNumber,\n getEndLineNumber,\n getLineClasses,\n commentLineOptions,\n} from './multiline_comment_utils';\nimport NoteActions from './note_actions.vue';\nimport NoteBody from './note_body.vue';\nimport NoteHeader from './note_header.vue';\n\nexport default {\n name: 'NoteableNote',\n components: {\n GlSprintf,\n NoteHeader,\n NoteActions,\n NoteBody,\n TimelineEntryItem,\n GlAvatarLink,\n GlAvatar,\n },\n directives: {\n SafeHtml,\n },\n mixins: [noteable, resolvable],\n inject: {\n reportAbusePath: {\n default: '',\n },\n },\n props: {\n note: {\n type: Object,\n required: true,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n discussionFile: {\n type: Object,\n required: false,\n default: null,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n commit: {\n type: Object,\n required: false,\n default: () => null,\n },\n showReplyButton: {\n type: Boolean,\n required: false,\n default: false,\n },\n diffLines: {\n type: Array,\n required: false,\n default: null,\n },\n discussionRoot: {\n type: Boolean,\n required: false,\n default: false,\n },\n discussionResolvePath: {\n type: String,\n required: false,\n default: '',\n },\n isOverviewTab: {\n type: Boolean,\n required: false,\n default: false,\n },\n shouldScrollToNote: {\n type: Boolean,\n required: false,\n default: true,\n },\n discussion: {\n type: Object,\n required: false,\n default: null,\n },\n autosaveKey: {\n type: String,\n required: false,\n default: '',\n },\n restoreFromAutosave: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n isEditingLocal: false,\n isDeleting: false,\n isRequesting: false,\n isResolving: false,\n commentLineStart: {},\n resolveAsThread: true,\n };\n },\n computed: {\n ...mapGetters('diffs', ['getDiffFileByHash']),\n ...mapGetters(['targetNoteHash', 'getNoteableData', 'getUserData', 'commentsDisabled']),\n isEditing: {\n get() {\n return this.note.isEditing ?? this.isEditingLocal;\n },\n set(value) {\n this.isEditingLocal = value;\n if (value) {\n this.$emit('handleEdit');\n } else {\n this.$emit('cancelForm');\n }\n },\n },\n author() {\n return this.note.author;\n },\n authorId() {\n return getIdFromGraphQLId(this.author.id);\n },\n commentType() {\n return this.note.internal ? __('internal note') : __('comment');\n },\n classNameBindings() {\n return {\n [`note-row-${this.note.id}`]: true,\n 'is-editing': this.isEditing && !this.isRequesting,\n 'is-requesting being-posted': this.isRequesting,\n 'disabled-content': this.isDeleting,\n target: this.isTarget,\n 'is-editable': this.canEdit,\n };\n },\n canAwardEmoji() {\n return this.note.current_user?.can_award_emoji ?? false;\n },\n canEdit() {\n return this.note.current_user?.can_edit ?? false;\n },\n canReportAsAbuse() {\n return Boolean(this.reportAbusePath) && this.authorId !== this.getUserData.id;\n },\n noteAnchorId() {\n return `note_${this.note.id}`;\n },\n isTarget() {\n return this.targetNoteHash === this.noteAnchorId;\n },\n discussionId() {\n if (this.discussion) {\n return this.discussion.id;\n }\n return '';\n },\n actionText() {\n if (!this.commit) {\n return '';\n }\n\n // We need to do this to ensure we have the correct sentence order\n // when translating this as the sentence order may change from one\n // language to the next. See:\n // https://gitlab.com/gitlab-org/gitlab-foss/merge_requests/24427#note_133713771\n const { id, url } = this.commit;\n const commitLink = `<a class=\"commit-sha monospace\" href=\"${escape(url)}\">${truncateSha(\n id,\n )}</a>`;\n return sprintf(s__('MergeRequests|commented on commit %{commitLink}'), { commitLink }, false);\n },\n isDraft() {\n return this.note.isDraft;\n },\n canResolve() {\n if (!this.discussionRoot) return false;\n if (!this.note.resolvable) return false;\n\n return this.note.current_user?.can_resolve_discussion;\n },\n lineRange() {\n return this.note.position?.line_range;\n },\n startLineNumber() {\n return getStartLineNumber(this.lineRange);\n },\n endLineNumber() {\n return getEndLineNumber(this.lineRange);\n },\n showMultiLineComment() {\n if (\n !this.discussionRoot ||\n this.startLineNumber.length === 0 ||\n this.endLineNumber.length === 0\n )\n return false;\n\n return this.line && this.startLineNumber !== this.endLineNumber;\n },\n commentLineOptions() {\n const lines = this.diffFile[INLINE_DIFF_LINES_KEY].length;\n return commentLineOptions(lines, this.commentLineStart, this.line.line_code);\n },\n diffFile() {\n let fileResolvedFromAvailableSource;\n\n if (this.commentLineStart.line_code) {\n const lineCode = this.commentLineStart.line_code.split('_')[0];\n fileResolvedFromAvailableSource = this.getDiffFileByHash(lineCode);\n }\n\n if (!fileResolvedFromAvailableSource && this.discussionFile) {\n fileResolvedFromAvailableSource = this.discussionFile;\n }\n\n return fileResolvedFromAvailableSource || null;\n },\n isMRDiffView() {\n const isFileComment = this.note.position?.position_type === 'file';\n return !this.isOverviewTab && (this.line || isFileComment);\n },\n },\n created() {\n const line = this.note.position?.line_range?.start || this.line;\n\n this.commentLineStart = line\n ? {\n line_code: line.line_code,\n type: line.type,\n old_line: line.old_line,\n new_line: line.new_line,\n }\n : {};\n\n eventHub.$on('enterEditMode', ({ noteId }) => {\n if (noteId === this.note.id) {\n this.isEditing = true;\n this.setSelectedCommentPositionHover();\n this.$el.scrollIntoView();\n }\n });\n },\n\n mounted() {\n if (this.isTarget && this.shouldScrollToNote) {\n this.$el.scrollIntoView({ duration: 0 });\n }\n },\n\n methods: {\n ...mapActions([\n 'deleteNote',\n 'removeNote',\n 'updateNote',\n 'toggleResolveNote',\n 'updateAssignees',\n 'setSelectedCommentPositionHover',\n ]),\n editHandler() {\n this.isEditing = true;\n this.setSelectedCommentPositionHover();\n },\n async deleteHandler() {\n let { commentType } = this;\n\n if (this.note.isDraft) {\n // Draft internal notes (i.e. MR review comments) are not supported.\n commentType = __('pending comment');\n }\n\n const msg = sprintf(__('Are you sure you want to delete this %{commentType}?'), {\n commentType,\n });\n const confirmed = await confirmAction(msg, {\n primaryBtnVariant: 'danger',\n primaryBtnText: this.note.internal ? __('Delete internal note') : __('Delete comment'),\n });\n\n if (confirmed) {\n this.isDeleting = true;\n this.$emit('handleDeleteNote', this.note);\n\n if (this.note.isDraft) return;\n\n this.deleteNote(this.note)\n .then(() => {\n this.isDeleting = false;\n })\n .catch(() => {\n createAlert({\n message: __('Something went wrong while deleting your note. Please try again.'),\n });\n this.isDeleting = false;\n });\n }\n },\n updateSuccess() {\n this.isEditingLocal = false;\n this.isRequesting = false;\n this.oldContent = null;\n renderGFM(this.$refs.noteBody.$el);\n this.$emit('updateSuccess');\n },\n async formUpdateHandler({ noteText, callback, resolveDiscussion }) {\n this.$emit('handleUpdateNote', {\n note: this.note,\n noteText,\n resolveDiscussion,\n flashContainer: this.$el,\n callback: () => this.updateSuccess(),\n errorCallback: () => callback(),\n });\n\n if (this.isDraft) return;\n\n const confirmSubmit = await detectAndConfirmSensitiveTokens({ content: noteText });\n\n if (!confirmSubmit) {\n callback();\n return;\n }\n\n const data = {\n endpoint: this.note.path,\n note: {\n target_type: this.getNoteableData.targetType,\n target_id: this.note.noteable_id,\n note: { note: noteText },\n },\n };\n\n this.isRequesting = true;\n this.oldContent = this.note.note_html;\n // eslint-disable-next-line vue/no-mutating-props\n this.note.note_html = renderMarkdown(noteText);\n\n this.updateNote(data)\n .then(() => {\n this.updateSuccess();\n callback();\n })\n .catch((e) => {\n if (e.status === HTTP_STATUS_GONE) {\n this.removeNote(this.note);\n this.updateSuccess();\n callback();\n } else {\n this.isRequesting = false;\n this.isEditing = true;\n this.setSelectedCommentPositionHover();\n this.$nextTick(() => {\n this.handleUpdateError(e); // The 'e' parameter is being used in JH, don't remove it\n this.recoverNoteContent();\n callback();\n });\n }\n });\n },\n handleUpdateError(e) {\n createAlert({\n message: updateNoteErrorMessage(e),\n parent: this.$el,\n });\n },\n formCancelHandler: ignoreWhilePending(async function formCancelHandler({\n shouldConfirm,\n isDirty,\n }) {\n if (shouldConfirm && isDirty) {\n const msg = sprintf(__('Are you sure you want to cancel editing this %{commentType}?'), {\n commentType: this.commentType,\n });\n const confirmed = await confirmAction(msg, {\n primaryBtnText: __('Cancel editing'),\n primaryBtnVariant: 'danger',\n secondaryBtnVariant: 'default',\n secondaryBtnText: __('Continue editing'),\n hideCancel: true,\n });\n if (!confirmed) return;\n }\n this.recoverNoteContent();\n this.isEditing = false;\n }),\n recoverNoteContent() {\n if (this.oldContent) {\n // eslint-disable-next-line vue/no-mutating-props\n this.note.note_html = this.oldContent;\n }\n },\n getLineClasses(lineNumber) {\n return getLineClasses(lineNumber);\n },\n assigneesUpdate(assignees) {\n this.updateAssignees(assignees);\n },\n },\n};\n</script>\n\n<template>\n <timeline-entry-item\n :id=\"noteAnchorId\"\n :class=\"{ ...classNameBindings, 'internal-note': note.internal }\"\n :data-award-url=\"note.toggle_award_path\"\n :data-note-id=\"note.id\"\n class=\"note note-wrapper note-comment\"\n data-testid=\"noteable-note-container\"\n >\n <div\n v-if=\"showMultiLineComment\"\n data-testid=\"multiline-comment\"\n class=\"gl-border-b gl-border-section gl-px-5 gl-py-3 gl-text-subtle\"\n >\n <gl-sprintf :message=\"__('Comment on lines %{startLine} to %{endLine}')\">\n <template #startLine>\n <span :class=\"getLineClasses(startLineNumber)\">{{ startLineNumber }}</span>\n </template>\n <template #endLine>\n <span :class=\"getLineClasses(endLineNumber)\">{{ endLineNumber }}</span>\n </template>\n </gl-sprintf>\n </div>\n\n <div v-if=\"isMRDiffView\" class=\"timeline-avatar gl-float-left gl-pt-2\">\n <gl-avatar-link\n :href=\"author.path\"\n :data-user-id=\"authorId\"\n :data-username=\"author.username\"\n class=\"js-user-link\"\n >\n <gl-avatar\n :src=\"author.avatar_url\"\n :entity-name=\"author.username\"\n :alt=\"author.name\"\n :size=\"24\"\n />\n\n <slot name=\"avatar-badge\"></slot>\n </gl-avatar-link>\n </div>\n\n <div v-else class=\"timeline-avatar gl-float-left\">\n <gl-avatar-link\n :href=\"author.path\"\n :data-user-id=\"authorId\"\n :data-username=\"author.username\"\n class=\"js-user-link gl-relative\"\n >\n <gl-avatar\n :src=\"author.avatar_url\"\n :entity-name=\"author.username\"\n :alt=\"author.name\"\n :size=\"32\"\n />\n\n <slot name=\"avatar-badge\"></slot>\n </gl-avatar-link>\n </div>\n\n <div class=\"timeline-content\">\n <div class=\"note-header\">\n <note-header\n :author=\"author\"\n :created-at=\"note.created_at\"\n :note-id=\"note.id\"\n :is-internal-note=\"note.internal\"\n :is-imported=\"note.imported\"\n :noteable-type=\"noteableType\"\n :email-participant=\"note.external_author\"\n >\n <template #note-header-info>\n <slot name=\"note-header-info\"></slot>\n </template>\n <span v-if=\"commit\" v-safe-html=\"actionText\"></span>\n <span v-else-if=\"note.created_at\" class=\"gl-hidden sm:gl-inline\">·</span>\n </note-header>\n <note-actions\n :author=\"author\"\n :author-id=\"authorId\"\n :note-id=\"note.id\"\n :note-url=\"note.noteable_note_url\"\n :access-level=\"note.human_access\"\n :is-contributor=\"note.is_contributor\"\n :is-author=\"note.is_noteable_author\"\n :project-name=\"note.project_name\"\n :noteable-type=\"note.noteable_type\"\n :show-reply=\"showReplyButton\"\n :can-edit=\"canEdit\"\n :can-award-emoji=\"canAwardEmoji\"\n :can-delete=\"canEdit\"\n :can-report-as-abuse=\"canReportAsAbuse\"\n :can-resolve=\"canResolve\"\n :resolvable=\"note.resolvable || note.isDraft\"\n :is-resolved=\"note.resolved || note.resolve_discussion\"\n :is-resolving=\"isResolving\"\n :resolved-by=\"note.resolved_by\"\n :is-draft=\"note.isDraft\"\n :resolve-discussion=\"note.isDraft && note.resolve_discussion\"\n :discussion-id=\"discussionId\"\n :award-path=\"note.toggle_award_path\"\n @handleEdit=\"editHandler\"\n @handleDelete=\"deleteHandler\"\n @handleResolve=\"resolveHandler\"\n @startReplying=\"$emit('startReplying')\"\n @updateAssignees=\"assigneesUpdate\"\n />\n </div>\n <div class=\"timeline-discussion-body\">\n <slot name=\"discussion-resolved-text\"></slot>\n <slot name=\"note-body\">\n <note-body\n ref=\"noteBody\"\n :note=\"note\"\n :can-edit=\"canEdit\"\n :line=\"line\"\n :file=\"diffFile\"\n :is-editing=\"isEditing\"\n :autosave-key=\"autosaveKey\"\n :restore-from-autosave=\"restoreFromAutosave\"\n :help-page-path=\"helpPagePath\"\n @handleFormUpdate=\"formUpdateHandler\"\n @cancelForm=\"formCancelHandler\"\n />\n </slot>\n <div class=\"timeline-discussion-body-footer\">\n <slot name=\"after-note-body\"></slot>\n </div>\n </div>\n </div>\n </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./noteable_note.vue?vue&type=template&id=793c0ad5\"\nimport script from \"./noteable_note.vue?vue&type=script&lang=js\"\nexport * from \"./noteable_note.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\":\"getFile\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filePath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ref\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"repository\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"blobs\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"paths\"},\"value\":{\"kind\":\"ListValue\",\"values\":[{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"filePath\"}}]}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"ref\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"ref\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":227}};\n doc.loc.source = {\"body\":\"query getFile($fullPath: ID!, $filePath: String!, $ref: String) {\\n project(fullPath: $fullPath) {\\n id\\n repository {\\n blobs(paths: [$filePath], ref: $ref) {\\n nodes {\\n id\\n }\\n }\\n }\\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[\"getFile\"] = oneQuery(doc, \"getFile\");\n \n","/**\n * Input/Textarea Autofocus Directive for Vue\n */\nexport default {\n /**\n * Set focus when element is rendered, but\n * is not visible, using IntersectionObserver\n *\n * @param {Element} el Target element\n */\n inserted(el) {\n if ('IntersectionObserver' in window) {\n // Element visibility is dynamic, so we attach observer\n el.visibilityObserver = new IntersectionObserver((entries) => {\n entries.forEach((entry) => {\n // Combining `intersectionRatio > 0` and\n // element's `offsetParent` presence will\n // deteremine if element is truely visible\n if (entry.intersectionRatio > 0 && entry.target.offsetParent) {\n entry.target.focus();\n }\n });\n });\n\n // Bind the observer.\n el.visibilityObserver.observe(el, { root: document.documentElement });\n }\n },\n /**\n * Detach observer on unbind hook.\n *\n * @param {Element} el Target element\n */\n unbind(el) {\n if (el.visibilityObserver) {\n el.visibilityObserver.disconnect();\n }\n },\n};\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-flex gl-items-center\"},[_c('span',[_vm._v(_vm._s(_vm.__('Any eligible user')))]),_vm._v(\" \"),_c('span',{staticClass:\"gl-ml-2 gl-inline-flex\",attrs:{\"id\":_vm.popoverContainerId}},[_c('help-icon',{staticClass:\"author-link\",attrs:{\"id\":_vm.popoverId,\"tabindex\":\"0\",\"aria-label\":_vm.__('help')}}),_vm._v(\" \"),_c('gl-popover',{attrs:{\"target\":_vm.popoverId,\"container\":_vm.popoverContainerId,\"placement\":\"top\"},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(_vm._s(_vm.__('Who can approve?')))]},proxy:true}])},[_vm._v(\" \"),_c('ul',{staticClass:\"gl-pl-5\"},[_c('li',[_vm._v(\"\\n \"+_vm._s(_vm.__('Any member with at least Developer permissions on the project.'))+\"\\n \")]),_vm._v(\" \"),_c('li',[_vm._v(_vm._s(_vm.__('Members listed as CODEOWNERS of affected files.')))]),_vm._v(\" \"),_c('li',[_vm._v(\"\\n \"+_vm._s(_vm.__(\"Users or groups set as approvers in the project's or merge request's settings.\"))+\"\\n \")])]),_vm._v(\" \"),_c('gl-link',{staticClass:\"text-1\",attrs:{\"href\":_vm.eligibleApproversDocsPath,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.__('More information')))])],1)],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!./empty_rule_approvers.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!./empty_rule_approvers.vue?vue&type=script&lang=js\"","<script>\nimport { GlPopover, GlLink } from '@gitlab/ui';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\n\nexport default {\n components: {\n GlPopover,\n GlLink,\n HelpIcon,\n },\n props: {\n eligibleApproversDocsPath: {\n type: String,\n required: false,\n default: '',\n },\n popoverId: {\n type: String,\n required: false,\n default: 'pop-approver',\n },\n popoverContainerId: {\n type: String,\n required: false,\n default: 'popovercontainer',\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-flex gl-items-center\">\n <span>{{ __('Any eligible user') }}</span>\n <span :id=\"popoverContainerId\" class=\"gl-ml-2 gl-inline-flex\">\n <help-icon :id=\"popoverId\" tabindex=\"0\" :aria-label=\"__('help')\" class=\"author-link\" />\n <gl-popover :target=\"popoverId\" :container=\"popoverContainerId\" placement=\"top\">\n <template #title>{{ __('Who can approve?') }}</template>\n <ul class=\"gl-pl-5\">\n <li>\n {{ __('Any member with at least Developer permissions on the project.') }}\n </li>\n <li>{{ __('Members listed as CODEOWNERS of affected files.') }}</li>\n <li>\n {{\n __(\"Users or groups set as approvers in the project's or merge request's settings.\")\n }}\n </li>\n </ul>\n <gl-link :href=\"eligibleApproversDocsPath\" class=\"text-1\" target=\"_blank\">{{\n __('More information')\n }}</gl-link>\n </gl-popover>\n </span>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./empty_rule_approvers.vue?vue&type=template&id=00f0f20a\"\nimport script from \"./empty_rule_approvers.vue?vue&type=script&lang=js\"\nexport * from \"./empty_rule_approvers.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","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","import { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_HEADER } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { isTag } from '../../utils/dom';\nimport { omit } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n tag: makeProp(PROP_TYPE_STRING, 'header'),\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_DROPDOWN_HEADER);\n\n// --- Main component ---\n\n// @vue/component\nconst BDropdownHeader = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_HEADER,\n functional: true,\n props,\n render(h, _ref) {\n let {\n props,\n data,\n children\n } = _ref;\n const {\n tag,\n variant\n } = props;\n return h('li', mergeData(omit(data, ['attrs']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(tag, {\n staticClass: 'dropdown-header',\n class: {\n [`text-${variant}`]: variant\n },\n attrs: {\n ...(data.attrs || {}),\n id: props.id || null,\n role: isTag(tag, 'header') ? null : 'heading'\n },\n ref: 'header'\n }, children)]);\n }\n});\n\nexport { BDropdownHeader, props };\n","import { BDropdownHeader } from '../../../vendor/bootstrap-vue/src/components/dropdown/dropdown-header';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlDropdownHeader',\n components: {\n BDropdownHeader\n },\n inheritAttrs: false\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-dropdown-header',_vm._g(_vm._b({staticClass:\"gl-dropdown-section-header\"},'b-dropdown-header',_vm.$attrs,false),_vm.$listeners),[_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 { extend } from '../../vue';\nimport { NAME_TBODY } from '../../constants/components';\nimport { PROP_TYPE_OBJECT } from '../../constants/props';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n tbodyTransitionHandlers: makeProp(PROP_TYPE_OBJECT),\n tbodyTransitionProps: makeProp(PROP_TYPE_OBJECT)\n}, NAME_TBODY);\n\n// --- Main component ---\n\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\nconst BTbody = /*#__PURE__*/extend({\n name: NAME_TBODY,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide() {\n return {\n getBvTableRowGroup: () => this\n };\n },\n inject: {\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n getBvTable: {\n default: /* istanbul ignore next */() => () => ({})\n }\n },\n inheritAttrs: false,\n props,\n computed: {\n bvTable() {\n return this.getBvTable();\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n isTbody() {\n return true;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n isDark() {\n return this.bvTable.dark;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n isStacked() {\n return this.bvTable.isStacked;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n isResponsive() {\n return this.bvTable.isResponsive;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n // Sticky headers are only supported in thead\n isStickyHeader() {\n return false;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader() {\n return !this.isStacked && this.bvTable.stickyHeader;\n },\n // Sniffed by `<b-tr>` / `<b-td>` / `<b-th>`\n tableVariant() {\n return this.bvTable.tableVariant;\n },\n isTransitionGroup() {\n return this.tbodyTransitionProps || this.tbodyTransitionHandlers;\n },\n tbodyAttrs() {\n return {\n role: 'rowgroup',\n ...this.bvAttrs\n };\n },\n tbodyProps() {\n const {\n tbodyTransitionProps\n } = this;\n return tbodyTransitionProps ? {\n ...tbodyTransitionProps,\n tag: 'tbody'\n } : {};\n }\n },\n render(h) {\n const data = {\n props: this.tbodyProps,\n attrs: this.tbodyAttrs\n };\n if (this.isTransitionGroup) {\n // We use native listeners if a transition group for any delegated events\n data.on = this.tbodyTransitionHandlers || {};\n data.nativeOn = this.bvListeners;\n } else {\n // Otherwise we place any listeners on the tbody element\n data.on = this.bvListeners;\n }\n return h(this.isTransitionGroup ? 'transition-group' : 'tbody', data, this.normalizeSlot());\n }\n});\n\nexport { BTbody, props };\n","import { extend, REF_FOR_KEY } from '../../../vue';\nimport { EVENT_NAME_ROW_HOVERED, EVENT_NAME_ROW_UNHOVERED, EVENT_NAME_ROW_CLICKED } from '../../../constants/events';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_OBJECT_FUNCTION, PROP_TYPE_FUNCTION } from '../../../constants/props';\nimport { SLOT_NAME_ROW_DETAILS } from '../../../constants/slots';\nimport { useParentMixin } from '../../../mixins/use-parent';\nimport { get } from '../../../utils/get';\nimport { isFunction, isString, isUndefinedOrNull } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { toString } from '../../../utils/string';\nimport { BTr } from '../tr';\nimport { BTd } from '../td';\nimport { BTh } from '../th';\nimport { FIELD_KEY_SHOW_DETAILS, FIELD_KEY_CELL_VARIANT, FIELD_KEY_ROW_VARIANT } from './constants';\n\n// --- Props ---\n\nconst props = {\n detailsTdClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tbodyTrAttr: makeProp(PROP_TYPE_OBJECT_FUNCTION),\n tbodyTrClass: makeProp([...PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_FUNCTION])\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst tbodyRowMixin = extend({\n mixins: [useParentMixin],\n props,\n methods: {\n // Methods for computing classes, attributes and styles for table cells\n getTdValues(item, key, tdValue, defaultValue) {\n const {\n bvParent\n } = this;\n if (tdValue) {\n const value = get(item, key, '');\n if (isFunction(tdValue)) {\n return tdValue(value, key, item);\n } else if (isString(tdValue) && isFunction(bvParent[tdValue])) {\n return bvParent[tdValue](value, key, item);\n }\n return tdValue;\n }\n return defaultValue;\n },\n getThValues(item, key, thValue, type, defaultValue) {\n const {\n bvParent\n } = this;\n if (thValue) {\n const value = get(item, key, '');\n if (isFunction(thValue)) {\n return thValue(value, key, item, type);\n } else if (isString(thValue) && isFunction(bvParent[thValue])) {\n return bvParent[thValue](value, key, item, type);\n }\n return thValue;\n }\n return defaultValue;\n },\n // Method to get the value for a field\n getFormattedValue(item, field) {\n const {\n key\n } = field;\n const formatter = this.getFieldFormatter(key);\n let value = get(item, key, null);\n if (isFunction(formatter)) {\n value = formatter(value, key, item);\n }\n return isUndefinedOrNull(value) ? '' : value;\n },\n // Factory function methods\n toggleDetailsFactory(hasDetailsSlot, item) {\n // Returns a function to toggle a row's details slot\n return () => {\n if (hasDetailsSlot) {\n this.$set(item, FIELD_KEY_SHOW_DETAILS, !item[FIELD_KEY_SHOW_DETAILS]);\n }\n };\n },\n // Row event handlers\n rowHovered(event) {\n // `mouseenter` handler (non-bubbling)\n // `this.tbodyRowEventStopped` from tbody mixin\n if (!this.tbodyRowEventStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_HOVERED, event);\n }\n },\n rowUnhovered(event) {\n // `mouseleave` handler (non-bubbling)\n // `this.tbodyRowEventStopped` from tbody mixin\n if (!this.tbodyRowEventStopped(event)) {\n // `this.emitTbodyRowEvent` from tbody mixin\n this.emitTbodyRowEvent(EVENT_NAME_ROW_UNHOVERED, event);\n }\n },\n // Renders a TD or TH for a row's field\n renderTbodyRowCell(field, colIndex, item, rowIndex) {\n const {\n isStacked\n } = this;\n const {\n key,\n label,\n isRowHeader\n } = field;\n const h = this.$createElement;\n const hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n const formatted = this.getFormattedValue(item, field);\n const stickyColumn = !isStacked && (this.isResponsive || this.stickyHeader) && field.stickyColumn;\n // We only uses the helper components for sticky columns to\n // improve performance of BTable/BTableLite by reducing the\n // total number of vue instances created during render\n const cellTag = stickyColumn ? isRowHeader ? BTh : BTd : isRowHeader ? 'th' : 'td';\n const cellVariant = item[FIELD_KEY_CELL_VARIANT] && item[FIELD_KEY_CELL_VARIANT][key] ? item[FIELD_KEY_CELL_VARIANT][key] : field.variant || null;\n const data = {\n // For the Vue key, we concatenate the column index and\n // field key (as field keys could be duplicated)\n // TODO: Although we do prevent duplicate field keys...\n // So we could change this to: `row-${rowIndex}-cell-${key}`\n class: [field.class ? field.class : '', this.getTdValues(item, key, field.tdClass, '')],\n props: {},\n attrs: {\n 'aria-colindex': String(colIndex + 1),\n ...(isRowHeader ? this.getThValues(item, key, field.thAttr, 'row', {}) : this.getTdValues(item, key, field.tdAttr, {}))\n },\n key: `row-${rowIndex}-cell-${colIndex}-${key}`\n };\n if (stickyColumn) {\n // We are using the helper BTd or BTh\n data.props = {\n stackedHeading: isStacked ? label : null,\n stickyColumn: true,\n variant: cellVariant\n };\n } else {\n // Using native TD or TH element, so we need to\n // add in the attributes and variant class\n data.attrs['data-label'] = isStacked && !isUndefinedOrNull(label) ? toString(label) : null;\n data.attrs.role = isRowHeader ? 'rowheader' : 'cell';\n data.attrs.scope = isRowHeader ? 'row' : null;\n // Add in the variant class\n if (cellVariant) {\n data.class.push(`${this.dark ? 'bg' : 'table'}-${cellVariant}`);\n }\n }\n const slotScope = {\n item,\n index: rowIndex,\n field,\n unformatted: get(item, key, ''),\n value: formatted,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item),\n detailsShowing: Boolean(item[FIELD_KEY_SHOW_DETAILS])\n };\n // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n if (safeVueInstance(this).supportsSelectableRows) {\n slotScope.rowSelected = this.isRowSelected(rowIndex);\n slotScope.selectRow = () => this.selectRow(rowIndex);\n slotScope.unselectRow = () => this.unselectRow(rowIndex);\n }\n\n // The new `v-slot` syntax doesn't like a slot name starting with\n // a square bracket and if using in-document HTML templates, the\n // v-slot attributes are lower-cased by the browser.\n // Switched to round bracket syntax to prevent confusion with\n // dynamic slot name syntax.\n // We look for slots in this order: `cell(${key})`, `cell(${key.toLowerCase()})`, 'cell()'\n // Slot names are now cached by mixin tbody in `this.$_bodyFieldSlotNameCache`\n // Will be `null` if no slot (or fallback slot) exists\n const slotName = this.$_bodyFieldSlotNameCache[key];\n let $childNodes = slotName ? this.normalizeSlot(slotName, slotScope) : toString(formatted);\n if (this.isStacked) {\n // We wrap in a DIV to ensure rendered as a single cell when visually stacked!\n $childNodes = [h('div', [$childNodes])];\n }\n\n // Render either a td or th cell\n return h(cellTag, data, [$childNodes]);\n },\n // Renders an item's row (or rows if details supported)\n renderTbodyRow(item, rowIndex) {\n const {\n computedFields: fields,\n striped,\n primaryKey,\n currentPage,\n perPage,\n tbodyTrClass,\n tbodyTrAttr,\n hasSelectableRowClick\n } = safeVueInstance(this);\n const h = this.$createElement;\n const hasDetailsSlot = this.hasNormalizedSlot(SLOT_NAME_ROW_DETAILS);\n const rowShowDetails = item[FIELD_KEY_SHOW_DETAILS] && hasDetailsSlot;\n const hasRowClickHandler = this.$listeners[EVENT_NAME_ROW_CLICKED] || hasSelectableRowClick;\n\n // We can return more than one TR if rowDetails enabled\n const $rows = [];\n\n // Details ID needed for `aria-details` when details showing\n // We set it to `null` when not showing so that attribute\n // does not appear on the element\n const detailsId = rowShowDetails ? this.safeId(`_details_${rowIndex}_`) : null;\n\n // For each item data field in row\n const $tds = fields.map((field, colIndex) => {\n return this.renderTbodyRowCell(field, colIndex, item, rowIndex);\n });\n\n // Calculate the row number in the dataset (indexed from 1)\n let ariaRowIndex = null;\n if (currentPage && perPage && perPage > 0) {\n ariaRowIndex = String((currentPage - 1) * perPage + rowIndex + 1);\n }\n\n // Create a unique :key to help ensure that sub components are re-rendered rather than\n // re-used, which can cause issues. If a primary key is not provided we use the rendered\n // rows index within the tbody.\n // See: https://github.com/bootstrap-vue/bootstrap-vue/issues/2410\n const primaryKeyValue = toString(get(item, primaryKey)) || null;\n const rowKey = primaryKeyValue || toString(rowIndex);\n\n // If primary key is provided, use it to generate a unique ID on each tbody > tr\n // In the format of '{tableId}__row_{primaryKeyValue}'\n const rowId = primaryKeyValue ? this.safeId(`_row_${primaryKeyValue}`) : null;\n\n // Selectable classes and attributes\n const selectableClasses = safeVueInstance(this).selectableRowClasses ? this.selectableRowClasses(rowIndex) : {};\n const selectableAttrs = safeVueInstance(this).selectableRowAttrs ? this.selectableRowAttrs(rowIndex) : {};\n\n // Additional classes and attributes\n const userTrClasses = isFunction(tbodyTrClass) ? tbodyTrClass(item, 'row') : tbodyTrClass;\n const userTrAttrs = isFunction(tbodyTrAttr) ? /* istanbul ignore next */tbodyTrAttr(item, 'row') : tbodyTrAttr;\n\n // Add the item row\n $rows.push(h(BTr, {\n class: [userTrClasses, selectableClasses, rowShowDetails ? 'b-table-has-details' : ''],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: {\n id: rowId,\n ...userTrAttrs,\n // Users cannot override the following attributes\n tabindex: hasRowClickHandler ? '0' : null,\n 'data-pk': primaryKeyValue || null,\n 'aria-details': detailsId,\n 'aria-owns': detailsId,\n 'aria-rowindex': ariaRowIndex,\n ...selectableAttrs\n },\n on: {\n // Note: These events are not A11Y friendly!\n mouseenter: this.rowHovered,\n mouseleave: this.rowUnhovered\n },\n key: `__b-table-row-${rowKey}__`,\n ref: 'item-rows',\n [REF_FOR_KEY]: true\n }, $tds));\n\n // Row Details slot\n if (rowShowDetails) {\n const detailsScope = {\n item,\n index: rowIndex,\n fields,\n toggleDetails: this.toggleDetailsFactory(hasDetailsSlot, item)\n };\n // If table supports selectable mode, then add in the following scope\n // this.supportsSelectableRows will be undefined if mixin isn't loaded\n if (safeVueInstance(this).supportsSelectableRows) {\n detailsScope.rowSelected = this.isRowSelected(rowIndex);\n detailsScope.selectRow = () => this.selectRow(rowIndex);\n detailsScope.unselectRow = () => this.unselectRow(rowIndex);\n }\n\n // Render the details slot in a TD\n const $details = h(BTd, {\n props: {\n colspan: fields.length\n },\n class: this.detailsTdClass\n }, [this.normalizeSlot(SLOT_NAME_ROW_DETAILS, detailsScope)]);\n\n // Add a hidden row to keep table row striping consistent when details showing\n // Only added if the table is striped\n if (striped) {\n $rows.push(\n // We don't use `BTr` here as we don't need the extra functionality\n h('tr', {\n staticClass: 'd-none',\n attrs: {\n 'aria-hidden': 'true',\n role: 'presentation'\n },\n key: `__b-table-details-stripe__${rowKey}`\n }));\n }\n\n // Add the actual details row\n const userDetailsTrClasses = isFunction(this.tbodyTrClass) ? /* istanbul ignore next */this.tbodyTrClass(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrClass;\n const userDetailsTrAttrs = isFunction(this.tbodyTrAttr) ? /* istanbul ignore next */this.tbodyTrAttr(item, SLOT_NAME_ROW_DETAILS) : this.tbodyTrAttr;\n $rows.push(h(BTr, {\n staticClass: 'b-table-details',\n class: [userDetailsTrClasses],\n props: {\n variant: item[FIELD_KEY_ROW_VARIANT] || null\n },\n attrs: {\n ...userDetailsTrAttrs,\n // Users cannot override the following attributes\n id: detailsId,\n tabindex: '-1'\n },\n key: `__b-table-details__${rowKey}`\n }, [$details]));\n } else if (hasDetailsSlot) {\n // Only add the placeholder if a the table has a row-details slot defined (but not shown)\n $rows.push(h());\n if (striped) {\n // Add extra placeholder if table is striped\n $rows.push(h());\n }\n }\n\n // Return the row(s)\n return $rows;\n }\n }\n});\n\nexport { props, tbodyRowMixin };\n","import { extend } from '../../../vue';\nimport { EVENT_NAME_ROW_CLICKED, EVENT_NAME_ROW_MIDDLE_CLICKED, EVENT_NAME_ROW_CONTEXTMENU, EVENT_NAME_ROW_DBLCLICKED } from '../../../constants/events';\nimport { CODE_ENTER, CODE_SPACE, CODE_UP, CODE_DOWN, CODE_HOME, CODE_END } from '../../../constants/key-codes';\nimport { PROP_TYPE_ARRAY_OBJECT_STRING } from '../../../constants/props';\nimport { from, arrayIncludes } from '../../../utils/array';\nimport { isElement, closest, isActiveElement, attemptFocus } from '../../../utils/dom';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { stopEvent } from '../../../utils/events';\nimport { sortKeys } from '../../../utils/object';\nimport { makeProp, pluckProps } from '../../../utils/props';\nimport { props as props$1, BTbody } from '../tbody';\nimport { filterEvent } from './filter-event';\nimport { textSelectionActive } from './text-selection-active';\nimport { props as props$2, tbodyRowMixin } from './mixin-tbody-row';\n\n// --- Helper methods ---\n\nconst getCellSlotName = value => `cell(${value || ''})`;\n\n// --- Props ---\n\nconst props = sortKeys({\n ...props$1,\n ...props$2,\n tbodyClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n});\n\n// --- Mixin ---\n\n// @vue/component\nconst tbodyMixin = extend({\n mixins: [tbodyRowMixin],\n props,\n beforeDestroy() {\n this.$_bodyFieldSlotNameCache = null;\n },\n methods: {\n // Returns all the item TR elements (excludes detail and spacer rows)\n // `this.$refs['item-rows']` is an array of item TR components/elements\n // Rows should all be `<b-tr>` components, but we map to TR elements\n // Also note that `this.$refs['item-rows']` may not always be in document order\n getTbodyTrs() {\n const {\n $refs\n } = this;\n const tbody = $refs.tbody ? $refs.tbody.$el || $refs.tbody : null;\n const trs = ($refs['item-rows'] || []).map(tr => tr.$el || tr);\n return tbody && tbody.children && tbody.children.length > 0 && trs && trs.length > 0 ? from(tbody.children).filter(tr => arrayIncludes(trs, tr)) : /* istanbul ignore next */[];\n },\n // Returns index of a particular TBODY item TR\n // We set `true` on closest to include self in result\n getTbodyTrIndex(el) {\n /* istanbul ignore next: should not normally happen */\n if (!isElement(el)) {\n return -1;\n }\n const tr = el.tagName === 'TR' ? el : closest('tr', el, true);\n return tr ? this.getTbodyTrs().indexOf(tr) : -1;\n },\n // Emits a row event, with the item object, row index and original event\n emitTbodyRowEvent(type, event) {\n if (type && this.hasListener(type) && event && event.target) {\n const rowIndex = this.getTbodyTrIndex(event.target);\n if (rowIndex > -1) {\n // The array of TRs correlate to the `computedItems` array\n const item = this.computedItems[rowIndex];\n this.$emit(type, item, rowIndex, event);\n }\n }\n },\n tbodyRowEventStopped(event) {\n return this.stopIfBusy && this.stopIfBusy(event);\n },\n // Delegated row event handlers\n onTbodyRowKeydown(event) {\n // Keyboard navigation and row click emulation\n const {\n target,\n keyCode\n } = event;\n if (this.tbodyRowEventStopped(event) || target.tagName !== 'TR' || !isActiveElement(target) || target.tabIndex !== 0) {\n // Early exit if not an item row TR\n return;\n }\n if (arrayIncludes([CODE_ENTER, CODE_SPACE], keyCode)) {\n // Emulated click for keyboard users, transfer to click handler\n stopEvent(event);\n this.onTBodyRowClicked(event);\n } else if (arrayIncludes([CODE_UP, CODE_DOWN, CODE_HOME, CODE_END], keyCode)) {\n // Keyboard navigation\n const rowIndex = this.getTbodyTrIndex(target);\n if (rowIndex > -1) {\n stopEvent(event);\n const trs = this.getTbodyTrs();\n const shift = event.shiftKey;\n if (keyCode === CODE_HOME || shift && keyCode === CODE_UP) {\n // Focus first row\n attemptFocus(trs[0]);\n } else if (keyCode === CODE_END || shift && keyCode === CODE_DOWN) {\n // Focus last row\n attemptFocus(trs[trs.length - 1]);\n } else if (keyCode === CODE_UP && rowIndex > 0) {\n // Focus previous row\n attemptFocus(trs[rowIndex - 1]);\n } else if (keyCode === CODE_DOWN && rowIndex < trs.length - 1) {\n // Focus next row\n attemptFocus(trs[rowIndex + 1]);\n }\n }\n }\n },\n onTBodyRowClicked(event) {\n const {\n $refs\n } = this;\n const tbody = $refs.tbody ? $refs.tbody.$el || $refs.tbody : null;\n // Don't emit event when the table is busy, the user clicked\n // on a non-disabled control or is selecting text\n if (this.tbodyRowEventStopped(event) || filterEvent(event) || textSelectionActive(tbody || this.$el)) {\n return;\n }\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CLICKED, event);\n },\n onTbodyRowMiddleMouseRowClicked(event) {\n if (!this.tbodyRowEventStopped(event) && event.which === 2) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_MIDDLE_CLICKED, event);\n }\n },\n onTbodyRowContextmenu(event) {\n if (!this.tbodyRowEventStopped(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_CONTEXTMENU, event);\n }\n },\n onTbodyRowDblClicked(event) {\n if (!this.tbodyRowEventStopped(event) && !filterEvent(event)) {\n this.emitTbodyRowEvent(EVENT_NAME_ROW_DBLCLICKED, event);\n }\n },\n // Render the tbody element and children\n // Note:\n // Row hover handlers are handled by the tbody-row mixin\n // As mouseenter/mouseleave events do not bubble\n renderTbody() {\n const {\n computedItems: items,\n renderBusy,\n renderTopRow,\n renderEmpty,\n renderBottomRow,\n hasSelectableRowClick\n } = safeVueInstance(this);\n const h = this.$createElement;\n const hasRowClickHandler = this.hasListener(EVENT_NAME_ROW_CLICKED) || hasSelectableRowClick;\n\n // Prepare the tbody rows\n const $rows = [];\n\n // Add the item data rows or the busy slot\n const $busy = renderBusy ? renderBusy() : null;\n if ($busy) {\n // If table is busy and a busy slot, then return only the busy \"row\" indicator\n $rows.push($busy);\n } else {\n // Table isn't busy, or we don't have a busy slot\n\n // Create a slot cache for improved performance when looking up cell slot names\n // Values will be keyed by the field's `key` and will store the slot's name\n // Slots could be dynamic (i.e. `v-if`), so we must compute on each render\n // Used by tbody-row mixin render helper\n const cache = {};\n let defaultSlotName = getCellSlotName();\n defaultSlotName = this.hasNormalizedSlot(defaultSlotName) ? defaultSlotName : null;\n this.computedFields.forEach(field => {\n const {\n key\n } = field;\n const slotName = getCellSlotName(key);\n const lowercaseSlotName = getCellSlotName(key.toLowerCase());\n cache[key] = this.hasNormalizedSlot(slotName) ? slotName : this.hasNormalizedSlot(lowercaseSlotName) ? /* istanbul ignore next */lowercaseSlotName : defaultSlotName;\n });\n // Created as a non-reactive property so to not trigger component updates\n // Must be a fresh object each render\n this.$_bodyFieldSlotNameCache = cache;\n\n // Add static top row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n $rows.push(renderTopRow ? renderTopRow() : h());\n\n // Render the rows\n items.forEach((item, rowIndex) => {\n // Render the individual item row (rows if details slot)\n $rows.push(this.renderTbodyRow(item, rowIndex));\n });\n\n // Empty items / empty filtered row slot (only shows if `items.length < 1`)\n $rows.push(renderEmpty ? renderEmpty() : h());\n\n // Static bottom row slot (hidden in visibly stacked mode\n // as we can't control `data-label` attr)\n $rows.push(renderBottomRow ? renderBottomRow() : h());\n }\n\n // Note: these events will only emit if a listener is registered\n const handlers = {\n auxclick: this.onTbodyRowMiddleMouseRowClicked,\n // TODO:\n // Perhaps we do want to automatically prevent the\n // default context menu from showing if there is a\n // `row-contextmenu` listener registered\n contextmenu: this.onTbodyRowContextmenu,\n // The following event(s) is not considered A11Y friendly\n dblclick: this.onTbodyRowDblClicked\n // Hover events (`mouseenter`/`mouseleave`) are handled by `tbody-row` mixin\n };\n // Add in click/keydown listeners if needed\n if (hasRowClickHandler) {\n handlers.click = this.onTBodyRowClicked;\n handlers.keydown = this.onTbodyRowKeydown;\n }\n\n // Assemble rows into the tbody\n const $tbody = h(BTbody, {\n class: this.tbodyClass || null,\n props: pluckProps(props$1, this.$props),\n // BTbody transfers all native event listeners to the root element\n // TODO: Only set the handlers if the table is not busy\n on: handlers,\n ref: 'tbody'\n }, $rows);\n\n // Return the assembled tbody\n return $tbody;\n }\n }\n});\n\nexport { props, tbodyMixin };\n","function n(n){for(var r=arguments.length,t=Array(r>1?r-1:0),e=1;e<r;e++)t[e-1]=arguments[e];if(\"production\"!==process.env.NODE_ENV){var i=Y[n],o=i?\"function\"==typeof i?i.apply(null,t):i:\"unknown error nr: \"+n;throw Error(\"[Immer] \"+o)}throw Error(\"[Immer] minified error nr: \"+n+(t.length?\" \"+t.map((function(n){return\"'\"+n+\"'\"})).join(\",\"):\"\")+\". Find the full error at: https://bit.ly/3cXEKWf\")}function r(n){return!!n&&!!n[Q]}function t(n){return!!n&&(function(n){if(!n||\"object\"!=typeof n)return!1;var r=Object.getPrototypeOf(n);if(null===r)return!0;var t=Object.hasOwnProperty.call(r,\"constructor\")&&r.constructor;return t===Object||\"function\"==typeof t&&Function.toString.call(t)===Z}(n)||Array.isArray(n)||!!n[L]||!!n.constructor[L]||s(n)||v(n))}function e(t){return r(t)||n(23,t),t[Q].t}function i(n,r,t){void 0===t&&(t=!1),0===o(n)?(t?Object.keys:nn)(n).forEach((function(e){t&&\"symbol\"==typeof e||r(e,n[e],n)})):n.forEach((function(t,e){return r(e,t,n)}))}function o(n){var r=n[Q];return r?r.i>3?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;e<t.length;e++){var i=t[e],o=r[i];!1===o.writable&&(o.writable=!0,o.configurable=!0),(o.get||o.set)&&(r[i]={configurable:!0,writable:!0,enumerable:o.enumerable,value:n[i]})}return Object.create(Object.getPrototypeOf(n),r)}function d(n,e){return void 0===e&&(e=!1),y(n)||r(n)||!t(n)?n:(o(n)>1&&(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;e<r.length;e++)if(!r.hasOwnProperty(e))return!0;return!1}function f(r){r.O&&n(3,JSON.stringify(p(r)))}var s={};m(\"ES5\",{J:function(n,r){var e=Array.isArray(n),i=function(n,r){if(n){for(var e=Array(r.length),i=0;i<r.length;i++)Object.defineProperty(e,\"\"+i,t(i,!0));return e}var o=rn(r);delete o[Q];for(var u=nn(o),a=0;a<u.length;a++){var f=u[a];o[f]=t(f,n||!!o[f].enumerable)}return Object.create(Object.getPrototypeOf(r),o)}(e,n),o={i:e?5:4,A:r?r.A:_(),P:!1,I:!1,D:{},l:r,t:n,k:i,o:null,O:!1,C:!1};return Object.defineProperty(i,Q,{value:o,writable:!0}),i},S:function(n,t,o){o?r(t)&&t[Q].A===n&&e(n.p):(n.u&&function n(r){if(r&&\"object\"==typeof r){var t=r[Q];if(t){var e=t.t,o=t.k,f=t.D,c=t.i;if(4===c)i(o,(function(r){r!==Q&&(void 0!==e[r]||u(e,r)?f[r]||n(o[r]):(f[r]=!0,k(t)))})),i(e,(function(n){void 0!==o[n]||u(o,n)||(f[n]=!1,k(t))}));else if(5===c){if(a(t)&&(k(t),f.length=!0),o.length<e.length)for(var s=o.length;s<e.length;s++)f[s]=!1;else for(var v=e.length;v<o.length;v++)f[v]=!0;for(var p=Math.min(o.length,e.length),l=0;l<p;l++)o.hasOwnProperty(l)||(f[l]=!0),void 0===f[l]&&n(o[l])}}}}(n.p[0]),e(n.p))},K:function(n){return 4===n.i?o(n):a(n)}})}function T(){function e(n){if(!t(n))return n;if(Array.isArray(n))return n.map(e);if(s(n))return new Map(Array.from(n.entries()).map((function(n){return[n[0],e(n[1])]})));if(v(n))return new Set(Array.from(n).map(e));var r=Object.create(Object.getPrototypeOf(n));for(var i in n)r[i]=e(n[i]);return u(n,L)&&(r[L]=n[L]),r}function f(n){return r(n)?e(n):n}var c=\"add\";m(\"Patches\",{$:function(r,t){return t.forEach((function(t){for(var i=t.path,u=t.op,f=r,s=0;s<i.length-1;s++){var v=o(f),p=\"\"+i[s];0!==v&&1!==v||\"__proto__\"!==p&&\"constructor\"!==p||n(24),\"function\"==typeof f&&\"prototype\"===p&&n(24),\"object\"!=typeof(f=a(f,p))&&n(15,i.join(\"/\"))}var l=o(f),d=e(t.value),h=i[i.length-1];switch(u){case\"replace\":switch(l){case 2:return f.set(h,d);case 3:n(16);default:return f[h]=d}case c:switch(l){case 1:return\"-\"===h?f.push(d):f.splice(h,0,d);case 2:return f.set(h,d);case 3:return f.add(d);default:return f[h]=d}case\"remove\":switch(l){case 1:return f.splice(h,1);case 2:return f.delete(h);case 3:return f.delete(t.value);default:return delete f[h]}default:n(17,u)}})),r},R:function(n,r,t,e){switch(n.i){case 0:case 4:case 2:return function(n,r,t,e){var o=n.t,s=n.o;i(n.D,(function(n,i){var v=a(o,n),p=a(s,n),l=i?u(o,n)?\"replace\":c:\"remove\";if(v!==p||\"replace\"!==l){var d=r.concat(n);t.push(\"remove\"===l?{op:l,path:d}:{op:l,path:d,value:p}),e.push(l===c?{op:\"remove\",path:d}:\"remove\"===l?{op:c,path:d,value:f(v)}:{op:\"replace\",path:d,value:f(v)})}}))}(n,r,t,e);case 5:case 1:return function(n,r,t,e){var i=n.t,o=n.D,u=n.o;if(u.length<i.length){var a=[u,i];i=a[0],u=a[1];var s=[e,t];t=s[0],e=s[1]}for(var v=0;v<i.length;v++)if(o[v]&&u[v]!==i[v]){var p=r.concat([v]);t.push({op:\"replace\",path:p,value:f(u[v])}),e.push({op:\"replace\",path:p,value:f(i[v])})}for(var l=i.length;l<u.length;l++){var d=r.concat([l]);t.push({op:c,path:d,value:f(u[l])})}i.length<u.length&&e.push({op:\"replace\",path:r.concat([\"length\"]),value:i.length})}(n,r,t,e);case 3:return function(n,r,t,e){var i=n.t,o=n.o,u=0;i.forEach((function(n){if(!o.has(n)){var i=r.concat([u]);t.push({op:\"remove\",path:i,value:n}),e.unshift({op:c,path:i,value:n})}u++})),u=0,o.forEach((function(n){if(!i.has(n)){var o=r.concat([u]);t.push({op:c,path:o,value:n}),e.unshift({op:\"remove\",path:o,value:n})}u++}))}(n,r,t,e)}},M:function(n,r,t,e){t.push({op:\"replace\",path:[],value:r===H?void 0:r}),e.push({op:\"replace\",path:[],value:n})}})}function C(){function r(n,r){function t(){this.constructor=n}a(n,r),n.prototype=(t.prototype=r.prototype,new t)}function e(n){n.o||(n.D=new Map,n.o=new Map(n.t))}function o(n){n.o||(n.o=new Set,n.t.forEach((function(r){if(t(r)){var e=R(n.A.h,r,n);n.p.set(r,e),n.o.add(e)}else n.o.add(r)})))}function u(r){r.O&&n(3,JSON.stringify(p(r)))}var a=function(n,r){return(a=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,r){n.__proto__=r}||function(n,r){for(var t in r)r.hasOwnProperty(t)&&(n[t]=r[t])})(n,r)},f=function(){function n(n,r){return this[Q]={i:2,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,D:void 0,t:n,k:this,C:!1,O:!1},this}r(n,Map);var o=n.prototype;return Object.defineProperty(o,\"size\",{get:function(){return p(this[Q]).size}}),o.has=function(n){return p(this[Q]).has(n)},o.set=function(n,r){var t=this[Q];return u(t),p(t).has(n)&&p(t).get(n)===r||(e(t),k(t),t.D.set(n,!0),t.o.set(n,r),t.D.set(n,!0)),this},o.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),e(r),k(r),r.t.has(n)?r.D.set(n,!1):r.D.delete(n),r.o.delete(n),!0},o.clear=function(){var n=this[Q];u(n),p(n).size&&(e(n),k(n),n.D=new Map,i(n.t,(function(r){n.D.set(r,!1)})),n.o.clear())},o.forEach=function(n,r){var t=this;p(this[Q]).forEach((function(e,i){n.call(r,t.get(i),i,t)}))},o.get=function(n){var r=this[Q];u(r);var i=p(r).get(n);if(r.I||!t(i))return i;if(i!==r.t.get(n))return i;var o=R(r.A.h,i,r);return e(r),r.o.set(n,o),o},o.keys=function(){return p(this[Q]).keys()},o.values=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.values()},n.next=function(){var n=t.next();return n.done?n:{done:!1,value:r.get(n.value)}},n},o.entries=function(){var n,r=this,t=this.keys();return(n={})[V]=function(){return r.entries()},n.next=function(){var n=t.next();if(n.done)return n;var e=r.get(n.value);return{done:!1,value:[n.value,e]}},n},o[V]=function(){return this.entries()},n}(),c=function(){function n(n,r){return this[Q]={i:3,l:r,A:r?r.A:_(),P:!1,I:!1,o:void 0,t:n,k:this,p:new Map,O:!1,C:!1},this}r(n,Set);var t=n.prototype;return Object.defineProperty(t,\"size\",{get:function(){return p(this[Q]).size}}),t.has=function(n){var r=this[Q];return u(r),r.o?!!r.o.has(n)||!(!r.p.has(n)||!r.o.has(r.p.get(n))):r.t.has(n)},t.add=function(n){var r=this[Q];return u(r),this.has(n)||(o(r),k(r),r.o.add(n)),this},t.delete=function(n){if(!this.has(n))return!1;var r=this[Q];return u(r),o(r),k(r),r.o.delete(n)||!!r.p.has(n)&&r.o.delete(r.p.get(n))},t.clear=function(){var n=this[Q];u(n),p(n).size&&(o(n),k(n),n.o.clear())},t.values=function(){var n=this[Q];return u(n),o(n),n.o.values()},t.entries=function(){var n=this[Q];return u(n),o(n),n.o.entries()},t.keys=function(){return this.values()},t[V]=function(){return this.values()},t.forEach=function(n,r){for(var t=this.values(),e=t.next();!e.done;)n.call(r,e.value,e.value,this),e=t.next()},n}();m(\"MapSet\",{N:function(n,r){return new f(n,r)},T:function(n,r){return new c(n,r)}})}function J(){N(),C(),T()}function K(n){return n}function $(n){return n}var G,U,W=\"undefined\"!=typeof Symbol&&\"symbol\"==typeof Symbol(\"x\"),X=\"undefined\"!=typeof Map,q=\"undefined\"!=typeof Set,B=\"undefined\"!=typeof Proxy&&void 0!==Proxy.revocable&&\"undefined\"!=typeof Reflect,H=W?Symbol.for(\"immer-nothing\"):((G={})[\"immer-nothing\"]=!0,G),L=W?Symbol.for(\"immer-draftable\"):\"__$immer_draftable\",Q=W?Symbol.for(\"immer-state\"):\"__$immer_state\",V=\"undefined\"!=typeof Symbol&&Symbol.iterator||\"@@iterator\",Y={0:\"Illegal state\",1:\"Immer drafts cannot have computed properties\",2:\"This object has been frozen and should not be mutated\",3:function(n){return\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \"+n},4:\"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",5:\"Immer forbids circular references\",6:\"The first or second argument to `produce` must be a function\",7:\"The third argument to `produce` must be a function or undefined\",8:\"First argument to `createDraft` must be a plain object, an array, or an immerable object\",9:\"First argument to `finishDraft` must be a draft returned by `createDraft`\",10:\"The given draft is already finalized\",11:\"Object.defineProperty() cannot be used on an Immer draft\",12:\"Object.setPrototypeOf() cannot be used on an Immer draft\",13:\"Immer only supports deleting array indices\",14:\"Immer only supports setting array indices and the 'length' property\",15:function(n){return\"Cannot apply patch, path doesn't resolve: \"+n},16:'Sets cannot have \"replace\" patches.',17:function(n){return\"Unsupported patch operation: \"+n},18:function(n){return\"The plugin for '\"+n+\"' has not been loaded into Immer. To enable the plugin, import and call `enable\"+n+\"()` when initializing your application.\"},20:\"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",21:function(n){return\"produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '\"+n+\"'\"},22:function(n){return\"'current' expects a draft, got: \"+n},23:function(n){return\"'original' expects a draft, got: \"+n},24:\"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"},Z=\"\"+Object.prototype.constructor,nn=\"undefined\"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?function(n){return Object.getOwnPropertyNames(n).concat(Object.getOwnPropertySymbols(n))}:Object.getOwnPropertyNames,rn=Object.getOwnPropertyDescriptors||function(n){var r={};return nn(n).forEach((function(t){r[t]=Object.getOwnPropertyDescriptor(n,t)})),r},tn={},en={get:function(n,r){if(r===Q)return n;var e=p(n);if(!u(e,r))return function(n,r,t){var e,i=I(r,t);return i?\"value\"in i?i.value:null===(e=i.get)||void 0===e?void 0:e.call(n.k):void 0}(n,e,r);var i=e[r];return n.I||!t(i)?i:i===z(n.t,r)?(E(n),n.o[r]=R(n.A.h,i,n)):i},has:function(n,r){return r in p(n)},ownKeys:function(n){return Reflect.ownKeys(p(n))},set:function(n,r,t){var e=I(p(n),r);if(null==e?void 0:e.set)return e.set.call(n.k,t),!0;if(!n.P){var i=z(p(n),r),o=null==i?void 0:i[Q];if(o&&o.t===t)return n.o[r]=t,n.D[r]=!1,!0;if(c(t,i)&&(void 0!==t||u(n.t,r)))return!0;E(n),k(n)}return n.o[r]===t&&\"number\"!=typeof t&&(void 0!==t||r in n.o)||(n.o[r]=t,n.D[r]=!0,!0)},deleteProperty:function(n,r){return void 0!==z(n.t,r)||r in n.t?(n.D[r]=!1,E(n),k(n)):delete n.D[r],n.o&&delete n.o[r],!0},getOwnPropertyDescriptor:function(n,r){var t=p(n),e=Reflect.getOwnPropertyDescriptor(t,r);return e?{writable:!0,configurable:1!==n.i||\"length\"!==r,enumerable:e.enumerable,value:t[r]}:e},defineProperty:function(){n(11)},getPrototypeOf:function(n){return Object.getPrototypeOf(n.t)},setPrototypeOf:function(){n(12)}},on={};i(en,(function(n,r){on[n]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}})),on.deleteProperty=function(r,t){return\"production\"!==process.env.NODE_ENV&&isNaN(parseInt(t))&&n(13),on.set.call(this,r,t,void 0)},on.set=function(r,t,e){return\"production\"!==process.env.NODE_ENV&&\"length\"!==t&&isNaN(parseInt(t))&&n(14),en.set.call(this,r[0],t,e,r[0])};var un=function(){function e(r){var e=this;this.g=B,this.F=!0,this.produce=function(r,i,o){if(\"function\"==typeof r&&\"function\"!=typeof i){var u=i;i=r;var a=e;return function(n){var r=this;void 0===n&&(n=u);for(var t=arguments.length,e=Array(t>1?t-1:0),o=1;o<t;o++)e[o-1]=arguments[o];return a.produce(n,(function(n){var t;return(t=i).call.apply(t,[r,n].concat(e))}))}}var f;if(\"function\"!=typeof i&&n(6),void 0!==o&&\"function\"!=typeof o&&n(7),t(r)){var c=w(e),s=R(e,r,void 0),v=!0;try{f=i(s),v=!1}finally{v?O(c):g(c)}return\"undefined\"!=typeof Promise&&f instanceof Promise?f.then((function(n){return j(c,o),P(n,c)}),(function(n){throw O(c),n})):(j(c,o),P(f,c))}if(!r||\"object\"!=typeof r){if(void 0===(f=i(r))&&(f=r),f===H&&(f=void 0),e.F&&d(f,!0),o){var p=[],l=[];b(\"Patches\").M(r,f,p,l),o(p,l)}return f}n(21,r)},this.produceWithPatches=function(n,r){if(\"function\"==typeof n)return function(r){for(var t=arguments.length,i=Array(t>1?t-1:0),o=1;o<t;o++)i[o-1]=arguments[o];return e.produceWithPatches(r,(function(r){return n.apply(void 0,[r].concat(i))}))};var t,i,o=e.produce(n,r,(function(n,r){t=n,i=r}));return\"undefined\"!=typeof Promise&&o instanceof Promise?o.then((function(n){return[n,t,i]})):[o,t,i]},\"boolean\"==typeof(null==r?void 0:r.useProxies)&&this.setUseProxies(r.useProxies),\"boolean\"==typeof(null==r?void 0:r.autoFreeze)&&this.setAutoFreeze(r.autoFreeze)}var i=e.prototype;return i.createDraft=function(e){t(e)||n(8),r(e)&&(e=D(e));var i=w(this),o=R(this,e,void 0);return o[Q].C=!0,g(i),o},i.finishDraft=function(r,t){var e=r&&r[Q];\"production\"!==process.env.NODE_ENV&&(e&&e.C||n(9),e.I&&n(10));var i=e.A;return j(i,t),P(void 0,i)},i.setAutoFreeze=function(n){this.F=n},i.setUseProxies=function(r){r&&!B&&n(20),this.g=r},i.applyPatches=function(n,t){var e;for(e=t.length-1;e>=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\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueWeight\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":168}};\n doc.loc.source = {\"body\":\"query issueWeight($fullPath: ID!, $iid: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n weight\\n }\\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[\"issueWeight\"] = oneQuery(doc, \"issueWeight\");\n \n","<script>\nimport { normalizeChildren } from '~/lib/utils/vue3compat/normalize_children';\n/**\n * Wrapper for discussion notes replies section.\n *\n * This is a functional component using the render method because in some cases\n * the wrapper is not needed and we want to simply render along the children.\n */\nexport default {\n functional: true,\n props: {\n isDiffDiscussion: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n render(h, { props, children }) {\n if (props.isDiffDiscussion) {\n return h(\n 'li',\n {\n class:\n 'discussion-collapsible gl-border-solid gl-border-default gl-border-1 gl-rounded-base gl-border-t-0',\n },\n [h('ul', { class: 'notes' }, children)],\n );\n }\n\n return normalizeChildren(children);\n },\n};\n</script>\n","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!./discussion_notes_replies_wrapper.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!./discussion_notes_replies_wrapper.vue?vue&type=script&lang=js\"","export function normalizeChildren(children) {\n if (typeof children !== 'object' || Array.isArray(children)) {\n return children;\n }\n\n if (typeof children.default === 'function') {\n return children.default();\n }\n\n return children;\n}\n","var render, staticRenderFns\nimport script from \"./discussion_notes_replies_wrapper.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_notes_replies_wrapper.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('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.signedOutText),expression:\"signedOutText\"}],staticClass:\"gl-grow gl-text-center gl-text-subtle\"})\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!./note_signed_out_widget.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!./note_signed_out_widget.vue?vue&type=script&lang=js\"","<script>\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n directives: {\n SafeHtml,\n },\n computed: {\n ...mapGetters(['getNotesDataByProp']),\n registerLink() {\n return this.getNotesDataByProp('registerPath');\n },\n signInLink() {\n return this.getNotesDataByProp('newSessionPath');\n },\n signedOutText() {\n return sprintf(\n __(\n 'Please %{startTagRegister}register%{endRegisterTag} or %{startTagSignIn}sign in%{endSignInTag} to reply',\n ),\n {\n startTagRegister: `<a href=\"${this.registerLink}\">`,\n startTagSignIn: `<a href=\"${this.signInLink}\">`,\n endRegisterTag: '</a>',\n endSignInTag: '</a>',\n },\n false,\n );\n },\n },\n};\n</script>\n\n<template>\n <div v-safe-html=\"signedOutText\" class=\"gl-grow gl-text-center gl-text-subtle\"></div>\n</template>\n","import { render, staticRenderFns } from \"./note_signed_out_widget.vue?vue&type=template&id=222a8910\"\nimport script from \"./note_signed_out_widget.vue?vue&type=script&lang=js\"\nexport * from \"./note_signed_out_widget.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('timeline-entry-item',{staticClass:\"note note-wrapper\"},[_c('div',{staticClass:\"gl-float-left -gl-mt-1 gl-ml-2 gl-flex gl-h-6 gl-w-6 gl-items-center gl-justify-center gl-rounded-full gl-bg-gray-50 gl-text-subtle\"}),_vm._v(\" \"),_c('div',{staticClass:\"timeline-content\"},[_c('div',{staticClass:\"note-header\"}),_vm._v(\" \"),_c('div',{staticClass:\"note-body gl-mt-4\"},[_c('gl-skeleton-loader')],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!./skeleton_note.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!./skeleton_note.vue?vue&type=script&lang=js\"","<script>\nimport { GlSkeletonLoader } from '@gitlab/ui';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\n\nexport default {\n name: 'SkeletonNote',\n components: {\n GlSkeletonLoader,\n TimelineEntryItem,\n },\n};\n</script>\n\n<template>\n <timeline-entry-item class=\"note note-wrapper\">\n <div\n class=\"gl-float-left -gl-mt-1 gl-ml-2 gl-flex gl-h-6 gl-w-6 gl-items-center gl-justify-center gl-rounded-full gl-bg-gray-50 gl-text-subtle\"\n ></div>\n <div class=\"timeline-content\">\n <div class=\"note-header\"></div>\n <div class=\"note-body gl-mt-4\"><gl-skeleton-loader /></div>\n </div>\n </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./skeleton_note.vue?vue&type=template&id=f4940880\"\nimport script from \"./skeleton_note.vue?vue&type=script&lang=js\"\nexport * from \"./skeleton_note.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const EVENT_ISSUABLE_VUE_APP_CHANGE = 'issuable_vue_app:change';\n","import * as constants from '../constants';\n\nexport default {\n computed: {\n noteableType() {\n const note = this.discussion ? this.discussion.notes[0] : this.note;\n return constants.NOTEABLE_TYPE_MAPPING[note.noteable_type];\n },\n },\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n\")])\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!./iteration_title.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!./iteration_title.vue?vue&type=script&lang=js\"","<script>\nexport default {\n name: 'IterationTitle',\n props: {\n title: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-text-subtle\">\n {{ title }}\n </div>\n</template>\n","import { render, staticRenderFns } from \"./iteration_title.vue?vue&type=template&id=be345eea\"\nimport script from \"./iteration_title.vue?vue&type=script&lang=js\"\nexport * from \"./iteration_title.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","'use strict';\n\n/*eslint-disable max-len*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Type = require('./type');\n\n\nfunction compileList(schema, name, result) {\n var exclude = [];\n\n schema.include.forEach(function (includedSchema) {\n result = compileList(includedSchema, name, result);\n });\n\n schema[name].forEach(function (currentType) {\n result.forEach(function (previousType, previousIndex) {\n if (previousType.tag === currentType.tag && previousType.kind === currentType.kind) {\n exclude.push(previousIndex);\n }\n });\n\n result.push(currentType);\n });\n\n return result.filter(function (type, index) {\n return exclude.indexOf(index) === -1;\n });\n}\n\n\nfunction compileMap(/* lists... */) {\n var result = {\n scalar: {},\n sequence: {},\n mapping: {},\n fallback: {}\n }, index, length;\n\n function collectType(type) {\n result[type.kind][type.tag] = result['fallback'][type.tag] = type;\n }\n\n for (index = 0, length = arguments.length; index < length; index += 1) {\n arguments[index].forEach(collectType);\n }\n return result;\n}\n\n\nfunction Schema(definition) {\n this.include = definition.include || [];\n this.implicit = definition.implicit || [];\n this.explicit = definition.explicit || [];\n\n this.implicit.forEach(function (type) {\n if (type.loadKind && type.loadKind !== 'scalar') {\n throw new YAMLException('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.');\n }\n });\n\n this.compiledImplicit = compileList(this, 'implicit', []);\n this.compiledExplicit = compileList(this, 'explicit', []);\n this.compiledTypeMap = compileMap(this.compiledImplicit, this.compiledExplicit);\n}\n\n\nSchema.DEFAULT = null;\n\n\nSchema.create = function createSchema() {\n var schemas, types;\n\n switch (arguments.length) {\n case 1:\n schemas = Schema.DEFAULT;\n types = arguments[0];\n break;\n\n case 2:\n schemas = arguments[0];\n types = arguments[1];\n break;\n\n default:\n throw new YAMLException('Wrong number of arguments for Schema.create function');\n }\n\n schemas = common.toArray(schemas);\n types = common.toArray(types);\n\n if (!schemas.every(function (schema) { return schema instanceof Schema; })) {\n throw new YAMLException('Specified list of super schemas (or a single Schema object) contains a non-Schema object.');\n }\n\n if (!types.every(function (type) { return type instanceof Type; })) {\n throw new YAMLException('Specified list of YAML types (or a single Type object) contains a non-Type object.');\n }\n\n return new Schema({\n include: schemas,\n explicit: types\n });\n};\n\n\nmodule.exports = Schema;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-text-sm\",class:_vm.className},[(_vm.editedBy)?_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.actionWithAuthor},scopedSlots:_vm._u([{key:\"actionText\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.actionText)+\"\\n \")]},proxy:true},{key:\"actionDetail\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.actionDetailText)+\"\\n \")]},proxy:true},{key:\"timeago\",fn:function(){return [_c('time-ago-tooltip',{attrs:{\"time\":_vm.editedAt,\"tooltip-placement\":\"bottom\"}})]},proxy:true},{key:\"author\",fn:function(){return [_c('gl-link',{staticClass:\"js-user-link author-link hover:gl-underline\",attrs:{\"href\":_vm.editedBy.path,\"data-user-id\":_vm.editedBy.id}},[_vm._v(\"\\n \"+_vm._s(_vm.editedBy.name)+\"\\n \")])]},proxy:true}],null,false,3012119528)}):_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.actionWithoutAuthor},scopedSlots:_vm._u([{key:\"actionText\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.actionText)+\"\\n \")]},proxy:true},{key:\"actionDetail\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.actionDetailText)+\"\\n \")]},proxy:true},{key:\"timeago\",fn:function(){return [_c('time-ago-tooltip',{attrs:{\"time\":_vm.editedAt,\"tooltip-placement\":\"bottom\"}})]},proxy:true}])})],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!./note_edited_text.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!./note_edited_text.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf, GlLink } from '@gitlab/ui';\nimport TimeAgoTooltip from '~/vue_shared/components/time_ago_tooltip.vue';\nimport { EDITED_TEXT } from '../i18n';\n\nexport default {\n name: 'EditedNoteText',\n components: {\n GlSprintf,\n GlLink,\n TimeAgoTooltip,\n },\n props: {\n actionText: {\n type: String,\n required: true,\n },\n actionDetailText: {\n type: String,\n required: false,\n default: '',\n },\n editedAt: {\n type: String,\n required: false,\n default: null,\n },\n editedBy: {\n type: Object,\n required: false,\n default: null,\n },\n className: {\n type: String,\n required: false,\n default: 'edited-text',\n },\n },\n i18n: EDITED_TEXT,\n};\n</script>\n\n<template>\n <div :class=\"className\" class=\"gl-text-sm\">\n <gl-sprintf v-if=\"editedBy\" :message=\"$options.i18n.actionWithAuthor\">\n <template #actionText>\n {{ actionText }}\n </template>\n <template #actionDetail>\n {{ actionDetailText }}\n </template>\n <template #timeago>\n <time-ago-tooltip :time=\"editedAt\" tooltip-placement=\"bottom\" />\n </template>\n <template #author>\n <gl-link\n :href=\"editedBy.path\"\n :data-user-id=\"editedBy.id\"\n class=\"js-user-link author-link hover:gl-underline\"\n >\n {{ editedBy.name }}\n </gl-link>\n </template>\n </gl-sprintf>\n <gl-sprintf v-else :message=\"$options.i18n.actionWithoutAuthor\">\n <template #actionText>\n {{ actionText }}\n </template>\n <template #actionDetail>\n {{ actionDetailText }}\n </template>\n <template #timeago>\n <time-ago-tooltip :time=\"editedAt\" tooltip-placement=\"bottom\" />\n </template>\n </gl-sprintf>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./note_edited_text.vue?vue&type=template&id=705c5bc8\"\nimport script from \"./note_edited_text.vue?vue&type=script&lang=js\"\nexport * from \"./note_edited_text.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","'use strict';\n\nvar common = require('../common');\nvar Type = require('../type');\n\nfunction isHexCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) ||\n ((0x41/* A */ <= c) && (c <= 0x46/* F */)) ||\n ((0x61/* a */ <= c) && (c <= 0x66/* f */));\n}\n\nfunction isOctCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */));\n}\n\nfunction isDecCode(c) {\n return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */));\n}\n\nfunction resolveYamlInteger(data) {\n if (data === null) return false;\n\n var max = data.length,\n index = 0,\n hasDigits = false,\n ch;\n\n if (!max) return false;\n\n ch = data[index];\n\n // sign\n if (ch === '-' || ch === '+') {\n ch = data[++index];\n }\n\n if (ch === '0') {\n // 0\n if (index + 1 === max) return true;\n ch = data[++index];\n\n // base 2, base 8, base 16\n\n if (ch === 'b') {\n // base 2\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch !== '0' && ch !== '1') return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n\n if (ch === 'x') {\n // base 16\n index++;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isHexCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 8\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (!isOctCode(data.charCodeAt(index))) return false;\n hasDigits = true;\n }\n return hasDigits && ch !== '_';\n }\n\n // base 10 (except 0) or base 60\n\n // value should not start with `_`;\n if (ch === '_') return false;\n\n for (; index < max; index++) {\n ch = data[index];\n if (ch === '_') continue;\n if (ch === ':') break;\n if (!isDecCode(data.charCodeAt(index))) {\n return false;\n }\n hasDigits = true;\n }\n\n // Should have digits and should not end with `_`\n if (!hasDigits || ch === '_') return false;\n\n // if !base60 - done;\n if (ch !== ':') return true;\n\n // base60 almost not used, no needs to optimize\n return /^(:[0-5]?[0-9])+$/.test(data.slice(index));\n}\n\nfunction constructYamlInteger(data) {\n var value = data, sign = 1, ch, base, digits = [];\n\n if (value.indexOf('_') !== -1) {\n value = value.replace(/_/g, '');\n }\n\n ch = value[0];\n\n if (ch === '-' || ch === '+') {\n if (ch === '-') sign = -1;\n value = value.slice(1);\n ch = value[0];\n }\n\n if (value === '0') return 0;\n\n if (ch === '0') {\n if (value[1] === 'b') return sign * parseInt(value.slice(2), 2);\n if (value[1] === 'x') return sign * parseInt(value, 16);\n return sign * parseInt(value, 8);\n }\n\n if (value.indexOf(':') !== -1) {\n value.split(':').forEach(function (v) {\n digits.unshift(parseInt(v, 10));\n });\n\n value = 0;\n base = 1;\n\n digits.forEach(function (d) {\n value += (d * base);\n base *= 60;\n });\n\n return sign * value;\n\n }\n\n return sign * parseInt(value, 10);\n}\n\nfunction isInteger(object) {\n return (Object.prototype.toString.call(object)) === '[object Number]' &&\n (object % 1 === 0 && !common.isNegativeZero(object));\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:int', {\n kind: 'scalar',\n resolve: resolveYamlInteger,\n construct: constructYamlInteger,\n predicate: isInteger,\n represent: {\n binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); },\n octal: function (obj) { return obj >= 0 ? '0' + obj.toString(8) : '-0' + obj.toString(8).slice(1); },\n decimal: function (obj) { return obj.toString(10); },\n /* eslint-disable max-len */\n hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); }\n },\n defaultStyle: 'decimal',\n styleAliases: {\n binary: [ 2, 'bin' ],\n octal: [ 8, 'oct' ],\n decimal: [ 10, 'dec' ],\n hexadecimal: [ 16, 'hex' ]\n }\n});\n","import GlClearIconButton from '../../../shared_components/clear_icon_button/clear_icon_button';\nimport GlIcon from '../../icon/icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlListboxSearchInput',\n components: {\n GlClearIconButton,\n GlIcon\n },\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n /**\n * If provided, used as value of search input\n */\n value: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Search input placeholder text and aria-label\n */\n placeholder: {\n type: String,\n required: false,\n default: 'Search'\n }\n },\n computed: {\n hasValue() {\n return Boolean(this.value.length);\n },\n inputListeners() {\n return {\n ...this.$listeners,\n input: event => {\n this.$emit('input', event.target.value);\n }\n };\n }\n },\n methods: {\n clearInput() {\n this.$emit('input', '');\n this.focusInput();\n },\n focusInput() {\n this.$refs.input.focus();\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('div',{staticClass:\"gl-listbox-search\"},[_c('gl-icon',{staticClass:\"gl-listbox-search-icon\",attrs:{\"name\":\"search-sm\",\"size\":12}}),_vm._v(\" \"),_c('input',_vm._g({ref:\"input\",staticClass:\"gl-listbox-search-input\",attrs:{\"type\":\"search\",\"aria-label\":_vm.placeholder,\"placeholder\":_vm.placeholder},domProps:{\"value\":_vm.value}},_vm.inputListeners)),_vm._v(\" \"),(_vm.hasValue)?_c('gl-clear-icon-button',{staticClass:\"gl-listbox-search-clear-button\",on:{\"click\":function($event){$event.stopPropagation();return _vm.clearInput.apply(null, arguments)}}}):_vm._e()],1)};\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 uniqueId from 'lodash/uniqueId';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlListboxGroup',\n props: {\n name: {\n type: String,\n required: true\n },\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n created() {\n this.nameId = uniqueId('gl-listbox-group-');\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('ul',{staticClass:\"gl-mb-0 gl-pl-0\",attrs:{\"role\":\"group\",\"aria-labelledby\":_vm.nameId}},[_c('li',{staticClass:\"gl-pb-2 gl-pl-4 gl-pt-3 gl-text-sm gl-font-bold gl-text-strong\",class:{ 'gl-sr-only': _vm.textSrOnly },attrs:{\"id\":_vm.nameId,\"role\":\"presentation\"}},[_vm._t(\"group-label\",function(){return [_vm._v(_vm._s(_vm.name))]})],2),_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 clamp from 'lodash/clamp';\nimport uniqueId from 'lodash/uniqueId';\nimport isNil from 'lodash/isNil';\nimport { stopEvent } from '../../../../utils/utils';\nimport { GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, POSITION_ABSOLUTE, POSITION_FIXED, GL_DROPDOWN_CONTENTS_CLASS, HOME, END, ARROW_UP, ARROW_DOWN } from '../constants';\nimport { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements } from '../../../../utils/constants';\nimport GlButton from '../../button/button';\nimport GlLoadingIcon from '../../loading_icon/loading_icon';\nimport GlIntersectionObserver from '../../../utilities/intersection_observer/intersection_observer';\nimport GlSearchBoxByType from '../../search_box_by_type/search_box_by_type';\nimport GlBaseDropdown from '../base_dropdown/base_dropdown';\nimport { translatePlural } from '../../../../utils/i18n';\nimport GlListboxItem from './listbox_item';\nimport GlListboxSearchInput from './listbox_search_input';\nimport GlListboxGroup from './listbox_group';\nimport { itemsValidator, isOption, flattenedOptions } from './utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst ITEM_SELECTOR = '[role=\"option\"]';\nconst HEADER_ITEMS_BORDER_CLASSES = ['gl-border-b-1', 'gl-border-b-solid', 'gl-border-b-dropdown'];\nconst GROUP_TOP_BORDER_CLASSES = ['gl-border-t', 'gl-border-t-dropdown', 'gl-pt-1', 'gl-mt-2'];\nconst SEARCH_INPUT_SELECTOR = '.gl-listbox-search-input';\nvar script = {\n name: 'GlCollapsibleListbox',\n HEADER_ITEMS_BORDER_CLASSES,\n events: {\n GL_DROPDOWN_SHOWN,\n GL_DROPDOWN_HIDDEN\n },\n components: {\n GlBaseDropdown,\n GlListboxItem,\n GlListboxGroup,\n GlButton,\n GlSearchBoxByType,\n GlListboxSearchInput,\n GlLoadingIcon,\n GlIntersectionObserver\n },\n model: {\n prop: 'selected',\n event: 'select'\n },\n props: {\n /**\n * Items to display in the dropdown\n */\n items: {\n type: Array,\n required: false,\n default: () => [],\n validator: itemsValidator\n },\n /**\n * Array of selected items values for multi-select and selected item value for single-select\n */\n selected: {\n type: [Array, String, Number],\n required: false,\n default: () => []\n },\n /**\n * Allow multi-selection\n */\n multiple: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Toggle button text\n */\n toggleText: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Toggle text to be read by screen readers only\n */\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n },\n /** The header text */\n headerText: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Styling option - dropdown's toggle category\n */\n category: {\n type: String,\n required: false,\n default: buttonCategoryOptions.primary,\n validator: value => value in buttonCategoryOptions\n },\n /**\n * Styling option - dropdown's toggle variant\n */\n variant: {\n type: String,\n required: false,\n default: dropdownVariantOptions.default,\n validator: value => value in dropdownVariantOptions\n },\n /**\n * The size of the dropdown toggle\n */\n size: {\n type: String,\n required: false,\n default: 'medium',\n validator: value => value in buttonSizeOptions\n },\n /**\n * Icon name that will be rendered in the toggle button\n */\n icon: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Set to \"true\" to disable the dropdown\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Set to \"true\" when dropdown content (items) is loading\n * It will render a small loader in the dropdown toggle and make it disabled\n */\n loading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Additional CSS classes to customize toggle appearance\n */\n toggleClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n /**\n * Set to \"true\" to hide the caret\n */\n noCaret: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Align listbox menu with respect to the toggle button\n */\n placement: {\n type: String,\n required: false,\n default: 'bottom-start',\n validator: value => Object.keys(dropdownPlacements).includes(value)\n },\n /**\n * Center selected item checkmark\n */\n isCheckCentered: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * The `aria-labelledby` attribute value for the toggle button\n * Provide the string of ids seperated by space\n */\n toggleAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The `aria-labelledby` attribute value for the list of options\n * Provide the string of ids seperated by space\n */\n listAriaLabelledBy: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Enable search\n */\n searchable: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Set to \"true\" when items search is in progress.\n * It will display loading icon below the search input\n */\n searching: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Enables infinite scroll.\n * When set to `true`, the `@bottom-reached` event will be fired when\n * the bottom of the listbox is scrolled to.\n * Does not support groups.\n */\n infiniteScroll: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * This prop is used for infinite scroll.\n * It represents the total number of items that exist,\n * even if they have not yet been loaded.\n * Do not set this prop if the total number of items is unknown.\n */\n totalItems: {\n type: Number,\n required: false,\n default: null\n },\n /**\n * This prop is used for infinite scroll.\n * Set to `true` when more items are being loaded.\n */\n infiniteScrollLoading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Message to be displayed when filtering produced no results\n */\n noResultsText: {\n type: String,\n required: false,\n default: 'No results found'\n },\n /**\n * Search input placeholder text and aria-label\n */\n searchPlaceholder: {\n type: String,\n required: false,\n default: 'Search'\n },\n /**\n * The reset button's label, to be rendered in the header. If this is omitted, the button is not\n * rendered.\n * The reset button requires a header to be set, so this prop should be used in conjunction with\n * headerText.\n */\n resetButtonLabel: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * The select all button's label, to be rendered in the header. If this is omitted, the button is not\n * rendered.\n * The select all button requires a header to be set, so this prop should be used in conjunction with\n * headerText.\n */\n showSelectAllButtonLabel: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * Render the toggle button as a block element\n */\n block: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Custom offset to be applied to Floating UI's offset middleware.\n * https://floating-ui.com/docs/offset\n */\n dropdownOffset: {\n type: [Number, Object],\n required: false,\n default: undefined\n },\n /**\n * Lets the dropdown extend to match its content's width, up to a maximum width\n * defined by the `$gl-new-dropdown-max-width` variable.\n */\n fluidWidth: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Strategy to be applied by computePosition. If the dropdown's container is too short for it to\n * fit in, setting this to fixed will let it position itself above its container.\n * https://floating-ui.com/docs/computePosition#strategy\n */\n positioningStrategy: {\n type: String,\n required: false,\n default: POSITION_ABSOLUTE,\n validator: strategy => [POSITION_ABSOLUTE, POSITION_FIXED].includes(strategy)\n },\n /**\n * Opens dropdown on render\n */\n startOpened: {\n type: Boolean,\n required: false,\n default: false\n },\n srOnlyResultsLabel: {\n type: Function,\n required: false,\n default: translatePlural('GlCollapsibleListbox.srOnlyResultsLabel', '%d result', '%d results')\n }\n },\n data() {\n return {\n selectedValues: [],\n toggleId: uniqueId('dropdown-toggle-btn-'),\n listboxId: uniqueId('listbox-'),\n nextFocusedItemIndex: null,\n searchStr: '',\n topBoundaryVisible: true,\n bottomBoundaryVisible: true\n };\n },\n computed: {\n listboxTag() {\n if (!this.hasItems || isOption(this.items[0])) return 'ul';\n return 'div';\n },\n listboxClasses() {\n return {\n 'top-scrim-visible': !this.topBoundaryVisible,\n 'bottom-scrim-visible': !this.bottomBoundaryVisible,\n [GL_DROPDOWN_CONTENTS_CLASS]: true\n };\n },\n itemTag() {\n return this.listboxTag === 'ul' ? 'li' : 'div';\n },\n flattenedOptions() {\n return flattenedOptions(this.items);\n },\n hasItems() {\n return this.items.length > 0;\n },\n listboxToggleText() {\n if (!this.toggleText) {\n if (!this.multiple && this.selectedValues.length) {\n var _this$flattenedOption;\n return (_this$flattenedOption = this.flattenedOptions.find(_ref => {\n let {\n value\n } = _ref;\n return value === this.selectedValues[0];\n })) === null || _this$flattenedOption === void 0 ? void 0 : _this$flattenedOption.text;\n }\n return '';\n }\n return this.toggleText;\n },\n selectedIndices() {\n return this.selectedValues.map(selected => this.flattenedOptions.findIndex(_ref2 => {\n let {\n value\n } = _ref2;\n return value === selected;\n })).sort();\n },\n showList() {\n return this.flattenedOptions.length && !this.searching;\n },\n showNoResultsText() {\n return !this.flattenedOptions.length && !this.searching;\n },\n announceSRSearchResults() {\n return this.searchable && !this.showNoResultsText;\n },\n headerId() {\n return this.headerText && uniqueId('listbox-header-');\n },\n showResetButton() {\n if (!this.resetButtonLabel) {\n return false;\n }\n\n /**\n * if dropdown has no items\n * reset all should be hidden\n */\n if (!this.hasItems) {\n return false;\n }\n\n // hide if no selection\n if (!this.selected || this.selected.length === 0) {\n return false;\n }\n\n // only show reset button if show all button is not there\n return !this.showSelectAllButton;\n },\n showSelectAllButton() {\n if (!this.showSelectAllButtonLabel) {\n return false;\n }\n if (!this.multiple) {\n return false;\n }\n\n /**\n * if dropdown has no items\n * select all should be hidden\n */\n if (!this.hasItems) {\n return false;\n }\n return this.selected.length !== this.flattenedOptions.length;\n },\n showIntersectionObserver() {\n return this.infiniteScroll && !this.infiniteScrollLoading && !this.loading && !this.searching;\n },\n hasCustomToggle() {\n return Boolean(this.$scopedSlots.toggle);\n },\n hasSelection() {\n return Boolean(this.selectedValues.length);\n },\n toggleButtonClasses() {\n const toggleClasses = [this.toggleClass];\n if (!this.hasSelection) {\n toggleClasses.push('!gl-text-subtle');\n }\n return toggleClasses;\n },\n hasHeader() {\n return this.headerText || this.searchable;\n },\n hasFooter() {\n return Boolean(this.$scopedSlots.footer);\n }\n },\n watch: {\n selected: {\n immediate: true,\n handler(newSelected) {\n if (Array.isArray(newSelected)) {\n if (process.env.NODE_ENV !== 'production' && !this.multiple && newSelected.length) {\n throw new Error('To allow multi-selection, please, set \"multiple\" property to \"true\"');\n }\n this.selectedValues = [...newSelected];\n } else {\n this.selectedValues = isNil(newSelected) ? [] : [newSelected];\n }\n }\n },\n items: {\n handler() {\n this.$nextTick(() => {\n /* Every time the list of items changes (on search),\n * the observed elements are recreated, thus we need to start obesrving them again */\n this.observeScroll();\n });\n }\n },\n ...(process.env.NODE_ENV !== 'production' ? {\n resetButtonLabel: {\n immediate: true,\n handler(newResetButtonLabel) {\n if (newResetButtonLabel && !this.headerText) {\n throw new Error('The reset button cannot be rendered without a header. Either provide a header via the headerText prop, or do not provide the resetButtonLabel prop.');\n }\n }\n },\n showSelectAllButtonLabel: {\n immediate: true,\n handler(showSelectAllButtonLabel) {\n if (showSelectAllButtonLabel && !this.headerText) {\n throw new Error('The select all button cannot be rendered without a header. Either provide a header via the headerText prop, or do not provide the showSelectAllButtonLabel prop.');\n }\n }\n },\n infiniteScroll: {\n immediate: true,\n handler(newValue) {\n if (newValue && this.items.some(item => !isOption(item))) {\n throw new Error('Infinite scroll does not support groups. Please set the \"infiniteScroll\" prop to \"false\"');\n }\n }\n }\n } : {})\n },\n mounted() {\n if (this.startOpened) {\n this.open();\n }\n this.observeScroll();\n },\n beforeDestroy() {\n var _this$scrollObserver;\n (_this$scrollObserver = this.scrollObserver) === null || _this$scrollObserver === void 0 ? void 0 : _this$scrollObserver.disconnect();\n },\n methods: {\n open() {\n this.$refs.baseDropdown.open();\n },\n close() {\n this.$refs.baseDropdown.close();\n },\n groupClasses(index) {\n return index === 0 ? null : GROUP_TOP_BORDER_CLASSES;\n },\n onShow() {\n if (this.searchable) {\n this.focusSearchInput();\n } else {\n var _this$selectedIndices;\n this.focusItem((_this$selectedIndices = this.selectedIndices[0]) !== null && _this$selectedIndices !== void 0 ? _this$selectedIndices : 0, this.getFocusableListItemElements());\n }\n /**\n * Emitted when dropdown is shown\n *\n * @event shown\n */\n this.$emit(GL_DROPDOWN_SHOWN);\n },\n onHide() {\n /**\n * Emitted when dropdown is hidden\n *\n * @event hidden\n */\n this.$emit(GL_DROPDOWN_HIDDEN);\n this.nextFocusedItemIndex = null;\n },\n onKeydown(event) {\n const {\n code,\n target\n } = event;\n const elements = this.getFocusableListItemElements();\n if (elements.length < 1) return;\n let stop = true;\n const isSearchInput = target.matches(SEARCH_INPUT_SELECTOR);\n if (code === HOME) {\n if (isSearchInput) {\n return;\n }\n this.focusItem(0, elements);\n } else if (code === END) {\n if (isSearchInput) {\n return;\n }\n this.focusItem(elements.length - 1, elements);\n } else if (code === ARROW_UP) {\n if (isSearchInput) {\n return;\n }\n if (this.searchable && elements.indexOf(target) === 0) {\n this.focusSearchInput();\n } else {\n this.focusNextItem(event, elements, -1);\n }\n } else if (code === ARROW_DOWN) {\n if (isSearchInput) {\n this.focusItem(0, elements);\n } else {\n this.focusNextItem(event, elements, 1);\n }\n } else {\n stop = false;\n }\n if (stop) {\n stopEvent(event);\n }\n },\n getFocusableListItemElements() {\n var _this$$refs$list;\n const items = (_this$$refs$list = this.$refs.list) === null || _this$$refs$list === void 0 ? void 0 : _this$$refs$list.querySelectorAll(ITEM_SELECTOR);\n return Array.from(items || []);\n },\n focusNextItem(event, elements, offset) {\n const {\n target\n } = event;\n const currentIndex = elements.indexOf(target);\n const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);\n this.focusItem(nextIndex, elements);\n },\n focusItem(index, elements) {\n var _elements$index;\n this.nextFocusedItemIndex = index;\n (_elements$index = elements[index]) === null || _elements$index === void 0 ? void 0 : _elements$index.focus();\n },\n focusSearchInput() {\n this.$refs.searchBox.focusInput();\n },\n onSelect(item, isSelected) {\n if (this.multiple) {\n this.onMultiSelect(item.value, isSelected);\n } else {\n this.onSingleSelect(item.value, isSelected);\n }\n },\n isSelected(item) {\n return this.selectedValues.some(value => value === item.value);\n },\n isFocused(item) {\n return this.nextFocusedItemIndex === this.flattenedOptions.indexOf(item);\n },\n onSingleSelect(value, isSelected) {\n if (isSelected) {\n /**\n * Emitted when selection is changed\n *\n * @event select\n */\n this.$emit('select', value);\n }\n this.closeAndFocus();\n },\n onMultiSelect(value, isSelected) {\n if (isSelected) {\n this.$emit('select', [...this.selectedValues, value]);\n } else {\n this.$emit('select', this.selectedValues.filter(selectedValue => selectedValue !== value));\n }\n },\n search(searchTerm) {\n /**\n * Emitted when the search query string is changed\n *\n * @event search\n * @type {string}\n */\n this.$emit('search', searchTerm);\n },\n onResetButtonClicked() {\n /**\n * Emitted when the reset button is clicked\n *\n * @event reset\n */\n this.$emit('reset');\n },\n onSelectAllButtonClicked() {\n /**\n * Emitted when the select all button is clicked\n *\n * @event select-all\n */\n this.$emit('select-all');\n },\n closeAndFocus() {\n this.$refs.baseDropdown.closeAndFocus();\n },\n onIntersectionObserverAppear() {\n /**\n * Emitted when bottom of listbox has been scrolled to.\n * Used for infinite scroll.\n *\n * @event bottom-reached\n */\n this.$emit('bottom-reached');\n },\n listboxItemMoreItemsAriaAttributes(index) {\n if (this.totalItems === null) {\n return {};\n }\n return {\n 'aria-setsize': this.totalItems,\n 'aria-posinset': index + 1\n };\n },\n observeScroll() {\n var _this$scrollObserver2;\n const root = this.$refs.list;\n const options = {\n rootMargin: '8px',\n root,\n threshold: 1.0\n };\n (_this$scrollObserver2 = this.scrollObserver) === null || _this$scrollObserver2 === void 0 ? void 0 : _this$scrollObserver2.disconnect();\n const observer = new IntersectionObserver(entries => {\n entries.forEach(entry => {\n var _entry$target;\n this[(_entry$target = entry.target) === null || _entry$target === void 0 ? void 0 : _entry$target.$__visibilityProp] = entry.isIntersecting;\n });\n }, options);\n const topBoundary = this.$refs['top-boundary'];\n const bottomBoundary = this.$refs['bottom-boundary'];\n if (topBoundary) {\n topBoundary.$__visibilityProp = 'topBoundaryVisible';\n observer.observe(topBoundary);\n }\n if (bottomBoundary) {\n bottomBoundary.$__visibilityProp = 'bottomBoundaryVisible';\n observer.observe(bottomBoundary);\n }\n this.scrollObserver = observer;\n },\n isOption\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('gl-base-dropdown',{ref:\"baseDropdown\",attrs:{\"aria-haspopup\":\"listbox\",\"aria-labelledby\":_vm.toggleAriaLabelledBy,\"block\":_vm.block,\"toggle-id\":_vm.toggleId,\"toggle-text\":_vm.listboxToggleText,\"toggle-class\":_vm.toggleButtonClasses,\"text-sr-only\":_vm.textSrOnly,\"category\":_vm.category,\"variant\":_vm.variant,\"size\":_vm.size,\"icon\":_vm.icon,\"disabled\":_vm.disabled,\"loading\":_vm.loading,\"no-caret\":_vm.noCaret,\"placement\":_vm.placement,\"offset\":_vm.dropdownOffset,\"fluid-width\":_vm.fluidWidth,\"positioning-strategy\":_vm.positioningStrategy},on:_vm._d({},[_vm.$options.events.GL_DROPDOWN_SHOWN,_vm.onShow,_vm.$options.events.GL_DROPDOWN_HIDDEN,_vm.onHide]),scopedSlots:_vm._u([(_vm.hasCustomToggle)?{key:\"toggle\",fn:function(){return [_vm._t(\"toggle\")]},proxy:true}:null],null,true)},[_vm._v(\" \"),(_vm.headerText)?_c('div',{staticClass:\"gl-flex gl-min-h-8 gl-items-center !gl-p-4\",class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('div',{staticClass:\"gl-grow gl-pr-2 gl-text-sm gl-font-bold gl-text-strong\",attrs:{\"id\":_vm.headerId,\"data-testid\":\"listbox-header-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.headerText)+\"\\n \")]),_vm._v(\" \"),(_vm.showResetButton)?_c('gl-button',{staticClass:\"!gl-m-0 !gl-w-auto gl-max-w-1/2 gl-flex-shrink-0 gl-text-ellipsis !gl-px-2 !gl-text-sm focus:!gl-shadow-inner-2-blue-400\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"data-testid\":\"listbox-reset-button\"},on:{\"click\":_vm.onResetButtonClicked}},[_vm._v(\"\\n \"+_vm._s(_vm.resetButtonLabel)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showSelectAllButton)?_c('gl-button',{staticClass:\"!gl-m-0 !gl-w-auto gl-max-w-1/2 gl-flex-shrink-0 gl-text-ellipsis !gl-px-2 !gl-text-sm focus:!gl-shadow-inner-2-blue-400\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"data-testid\":\"listbox-select-all-button\"},on:{\"click\":_vm.onSelectAllButtonClicked}},[_vm._v(\"\\n \"+_vm._s(_vm.showSelectAllButtonLabel)+\"\\n \")]):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.searchable)?_c('div',{class:_vm.$options.HEADER_ITEMS_BORDER_CLASSES},[_c('gl-listbox-search-input',{ref:\"searchBox\",class:{ 'gl-listbox-topmost': !_vm.headerText },attrs:{\"data-testid\":\"listbox-search-input\",\"placeholder\":_vm.searchPlaceholder},on:{\"input\":_vm.search,\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }$event.preventDefault();},_vm.onKeydown]},model:{value:(_vm.searchStr),callback:function ($$v) {_vm.searchStr=$$v;},expression:\"searchStr\"}}),_vm._v(\" \"),(_vm.searching)?_c('gl-loading-icon',{staticClass:\"gl-my-3\",attrs:{\"data-testid\":\"listbox-search-loader\",\"size\":\"md\"}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.showList)?_c(_vm.listboxTag,{ref:\"list\",tag:\"component\",staticClass:\"gl-new-dropdown-contents gl-new-dropdown-contents-with-scrim-overlay\",class:_vm.listboxClasses,attrs:{\"id\":_vm.listboxId,\"aria-labelledby\":_vm.listAriaLabelledBy || _vm.headerId || _vm.toggleId,\"role\":\"listbox\",\"tabindex\":\"0\"},on:{\"keydown\":_vm.onKeydown}},[_c(_vm.itemTag,{tag:\"component\",staticClass:\"top-scrim-wrapper\",attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"top-scrim\"}},[_c('div',{staticClass:\"top-scrim\",class:{ 'top-scrim-light': !_vm.hasHeader, 'top-scrim-dark': _vm.hasHeader }})]),_vm._v(\" \"),_c(_vm.itemTag,{ref:\"top-boundary\",tag:\"component\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_vm._l((_vm.items),function(item,index){return [(_vm.isOption(item))?[_c('gl-listbox-item',_vm._b({key:item.value,attrs:{\"data-testid\":(\"listbox-item-\" + (item.value)),\"is-selected\":_vm.isSelected(item),\"is-focused\":_vm.isFocused(item),\"is-check-centered\":_vm.isCheckCentered},on:{\"select\":function($event){return _vm.onSelect(item, $event)}}},'gl-listbox-item',_vm.listboxItemMoreItemsAriaAttributes(index),false),[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n \"+_vm._s(item.text)+\"\\n \")]},{\"item\":item})],2)]:[_c('gl-listbox-group',{key:item.text,class:_vm.groupClasses(index),attrs:{\"name\":item.text,\"text-sr-only\":item.textSrOnly},scopedSlots:_vm._u([(_vm.$scopedSlots['group-label'])?{key:\"group-label\",fn:function(){return [_vm._t(\"group-label\",null,{\"group\":item})]},proxy:true}:null],null,true)},[_vm._v(\" \"),_vm._l((item.options),function(option){return _c('gl-listbox-item',{key:option.value,attrs:{\"data-testid\":(\"listbox-item-\" + (option.value)),\"is-selected\":_vm.isSelected(option),\"is-focused\":_vm.isFocused(option),\"is-check-centered\":_vm.isCheckCentered},on:{\"select\":function($event){return _vm.onSelect(option, $event)}}},[_vm._t(\"list-item\",function(){return [_vm._v(\"\\n \"+_vm._s(option.text)+\"\\n \")]},{\"item\":option})],2)})],2)]]}),_vm._v(\" \"),(_vm.infiniteScrollLoading)?_c(_vm.itemTag,{tag:\"component\"},[_c('gl-loading-icon',{staticClass:\"gl-my-3\",attrs:{\"data-testid\":\"listbox-infinite-scroll-loader\",\"size\":\"md\"}})],1):_vm._e(),_vm._v(\" \"),(_vm.showIntersectionObserver)?_c('gl-intersection-observer',{on:{\"appear\":_vm.onIntersectionObserverAppear}}):_vm._e(),_vm._v(\" \"),_c(_vm.itemTag,{ref:\"bottom-boundary\",tag:\"component\",attrs:{\"aria-hidden\":\"true\"}}),_vm._v(\" \"),_c(_vm.itemTag,{tag:\"component\",staticClass:\"bottom-scrim-wrapper\",attrs:{\"aria-hidden\":\"true\",\"data-testid\":\"bottom-scrim\"}},[_c('div',{staticClass:\"bottom-scrim\",class:{ '!gl-rounded-none': _vm.hasFooter }})])],2):_vm._e(),_vm._v(\" \"),(_vm.announceSRSearchResults)?_c('span',{staticClass:\"gl-sr-only\",attrs:{\"data-testid\":\"listbox-number-of-results\",\"aria-live\":\"assertive\"}},[_vm._t(\"search-summary-sr-only\",function(){return [_vm._v(\"\\n \"+_vm._s(_vm.srOnlyResultsLabel(_vm.flattenedOptions.length))+\"\\n \")]})],2):(_vm.showNoResultsText)?_c('div',{staticClass:\"gl-py-3 gl-pl-7 gl-pr-5 gl-text-base gl-text-subtle\",attrs:{\"aria-live\":\"assertive\",\"data-testid\":\"listbox-no-results-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.noResultsText)+\"\\n \")]):_vm._e(),_vm._v(\" \"),_vm._t(\"footer\")],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__;\nexport { ITEM_SELECTOR, SEARCH_INPUT_SELECTOR };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.shouldShow),expression:\"shouldShow\"}],attrs:{\"id\":\"notes\"}},[_c('sidebar-subscription',{attrs:{\"iid\":_vm.noteableData.iid,\"noteable-data\":_vm.noteableData}}),_vm._v(\" \"),_c('notes-activity-header',{attrs:{\"notes-filters\":_vm.notesFilters,\"notes-filter-value\":_vm.notesFilterValue,\"ai-loading\":_vm.aiLoading},on:{\"set-ai-loading\":_vm.setAiLoading}}),_vm._v(\" \"),(_vm.aiLoading !== null)?_c('ai-summary',{attrs:{\"ai-loading\":_vm.aiLoading},on:{\"set-ai-loading\":_vm.setAiLoading}}):_vm._e(),_vm._v(\" \"),_c('ordered-layout',{attrs:{\"slot-keys\":_vm.slotKeys},scopedSlots:_vm._u([{key:\"form\",fn:function(){return [(!(_vm.commentsDisabled || _vm.timelineEnabled))?_c('comment-form',{ref:\"commentForm\",staticClass:\"js-comment-form\",attrs:{\"noteable-type\":_vm.noteableType}}):_vm._e()]},proxy:true},{key:\"comments\",fn:function(){return [_c('ul',{staticClass:\"notes main-notes-list timeline\",attrs:{\"id\":\"notes-list\"}},[_vm._l((_vm.allDiscussions),function(discussion){return [(discussion.isSkeletonNote)?_c('skeleton-loading-container',{key:discussion.id,staticClass:\"note-skeleton\"}):(discussion.isPreviewNote)?_c('timeline-entry-item',{key:discussion.id,staticClass:\"target note note-wrapper note-comment\"},[_c('note-preview',{attrs:{\"note-id\":_vm.previewNoteId}})],1):(discussion.isDraft)?_c('timeline-entry-item',{key:discussion.id},[_c('draft-note',{attrs:{\"draft\":discussion}})],1):(discussion.isPlaceholderNote)?[(discussion.placeholderType === _vm.$options.systemNote)?_c('placeholder-system-note',{key:discussion.id,attrs:{\"note\":discussion.notes[0]}}):_c('placeholder-note',{key:discussion.id,attrs:{\"note\":discussion.notes[0]}})]:(_vm.discussionIsIndividualNoteAndNotConverted(discussion))?[(discussion.notes[0].system)?_c('system-note',{key:discussion.id,attrs:{\"note\":discussion.notes[0]}}):_c('noteable-note',{key:discussion.id,attrs:{\"note\":discussion.notes[0],\"show-reply-button\":_vm.canReply},on:{\"startReplying\":function($event){return _vm.startReplying(discussion.id)}}})]:_c('noteable-discussion',{key:discussion.id,ref:\"discussions\",refInFor:true,staticClass:\"js-noteable-discussion\",attrs:{\"discussion\":discussion,\"render-diff-file\":true,\"is-overview-tab\":\"\",\"help-page-path\":_vm.helpPagePath}})]}),_vm._v(\" \"),(_vm.commentsDisabled)?_c('discussion-filter-note'):_vm._e()],2)]},proxy:true}])})],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!./note_preview.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!./note_preview.vue?vue&type=script&lang=js\"","<script>\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_NOTE } from '~/graphql_shared/constants';\nimport * as Sentry from '~/sentry/sentry_browser_wrapper';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport timeagoMixin from '~/vue_shared/mixins/timeago';\nimport noteQuery from '../graphql/note.query.graphql';\nimport NoteEditedText from './note_edited_text.vue';\nimport NoteableNote from './noteable_note.vue';\n\nexport default {\n components: {\n NoteEditedText,\n NoteableNote,\n },\n directives: {\n SafeHtml,\n },\n mixins: [timeagoMixin],\n props: {\n noteId: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n note: null,\n hidden: false,\n };\n },\n computed: {\n showNote() {\n return this.note && !this.hidden && !this.isSyntheticNote;\n },\n showEdited() {\n return this.note && this.note.created_at !== this.note.last_edited_at;\n },\n isSyntheticNote() {\n return Boolean(this.noteId?.match(/([a-f0-9]{40})/));\n },\n noteHtml() {\n return this.note?.body_html;\n },\n },\n watch: {\n async noteHtml() {\n try {\n await this.$nextTick();\n renderGFM(this.$refs.noteBody);\n } catch {\n this.fallback();\n }\n },\n },\n mounted() {\n if (this.isSyntheticNote) {\n this.fallback();\n }\n },\n methods: {\n fallback() {\n this.hidden = true;\n },\n },\n apollo: {\n note: {\n skip() {\n return !this.noteId || this.isSyntheticNote;\n },\n query: noteQuery,\n variables() {\n return {\n id: convertToGraphQLId(TYPENAME_NOTE, this.noteId),\n };\n },\n update(data) {\n if (!data?.note) return null;\n return {\n ...data.note,\n author: {\n ...data.note.author,\n id: getIdFromGraphQLId(data.note.author.id),\n },\n last_edited_by: {\n ...data.note.last_edited_by,\n id: getIdFromGraphQLId(data.note.last_edited_by?.id),\n },\n id: getIdFromGraphQLId(data.note.id),\n };\n },\n result(result) {\n if (result?.errors?.length > 0) {\n Sentry.captureException(result.errors[0].message);\n this.fallback();\n }\n\n if (!result?.data?.note) {\n this.fallback();\n }\n },\n error(error) {\n Sentry.captureException(error);\n this.fallback();\n },\n },\n },\n};\n</script>\n\n<template>\n <noteable-note\n v-if=\"showNote\"\n :id=\"`note_${noteId}`\"\n :note=\"note\"\n :show-reply-button=\"false\"\n should-scroll-to-note\n >\n <template #note-body>\n <div ref=\"noteBody\" class=\"note-body\">\n <div v-safe-html:[$options.safeHtmlConfig]=\"noteHtml\" class=\"note-text md\"></div>\n <note-edited-text\n v-if=\"showEdited\"\n :edited-at=\"note.last_edited_at\"\n :edited-by=\"note.last_edited_by\"\n :action-text=\"__('Edited')\"\n class=\"note_edited_ago\"\n />\n </div>\n </template>\n </noteable-note>\n</template>\n","import { render, staticRenderFns } from \"./note_preview.vue?vue&type=template&id=72acd864\"\nimport script from \"./note_preview.vue?vue&type=script&lang=js\"\nexport * from \"./note_preview.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 (_vm.showNote)?_c('noteable-note',{attrs:{\"id\":`note_${_vm.noteId}`,\"note\":_vm.note,\"show-reply-button\":false,\"should-scroll-to-note\":\"\"},scopedSlots:_vm._u([{key:\"note-body\",fn:function(){return [_c('div',{ref:\"noteBody\",staticClass:\"note-body\"},[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html:[$options.safeHtmlConfig]\",value:(_vm.noteHtml),expression:\"noteHtml\",arg:_vm.$options.safeHtmlConfig}],staticClass:\"note-text md\"}),_vm._v(\" \"),(_vm.showEdited)?_c('note-edited-text',{staticClass:\"note_edited_ago\",attrs:{\"edited-at\":_vm.note.last_edited_at,\"edited-by\":_vm.note.last_edited_by,\"action-text\":_vm.__('Edited')}}):_vm._e()],1)]},proxy:true}],null,false,1616355029)}):_vm._e()\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!./comment_form.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!./comment_form.vue?vue&type=script&lang=js\"","<script>\nimport { GlAlert, GlButton, GlFormCheckbox, GlTooltipDirective } from '@gitlab/ui';\nimport $ from 'jquery';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters, mapState } from 'vuex';\nimport { createAlert } from '~/alert';\nimport { STATUS_CLOSED, STATUS_MERGED, STATUS_OPEN, STATUS_REOPENED } from '~/issues/constants';\nimport { detectAndConfirmSensitiveTokens } from '~/lib/utils/secret_detection';\nimport {\n capitalizeFirstCharacter,\n convertToCamelCase,\n slugifyWithUnderscore,\n} from '~/lib/utils/text_utility';\nimport { sprintf } from '~/locale';\nimport { InternalEvents } from '~/tracking';\nimport { badgeState } from '~/merge_requests/components/merge_request_header.vue';\nimport MarkdownEditor from '~/vue_shared/components/markdown/markdown_editor.vue';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport { trackSavedUsingEditor } from '~/vue_shared/components/markdown/tracking';\nimport glAbilitiesMixin from '~/vue_shared/mixins/gl_abilities_mixin';\nimport { fetchUserCounts } from '~/super_sidebar/user_counts_fetch';\n\nimport * as constants from '../constants';\nimport eventHub from '../event_hub';\nimport { COMMENT_FORM } from '../i18n';\nimport { createNoteErrorMessages, isSlashCommand } from '../utils';\n\nimport issuableStateMixin from '../mixins/issuable_state';\nimport CommentFieldLayout from './comment_field_layout.vue';\nimport CommentTypeDropdown from './comment_type_dropdown.vue';\nimport DiscussionLockedWidget from './discussion_locked_widget.vue';\nimport NoteSignedOutWidget from './note_signed_out_widget.vue';\n\nexport default {\n name: 'CommentForm',\n i18n: COMMENT_FORM,\n components: {\n NoteSignedOutWidget,\n DiscussionLockedWidget,\n MarkdownEditor,\n GlAlert,\n GlButton,\n TimelineEntryItem,\n HelpIcon,\n CommentFieldLayout,\n CommentTypeDropdown,\n GlFormCheckbox,\n CommentTemperature: () =>\n import(\n /* webpackChunkName: 'comment_temperature' */ 'ee_component/ai/components/comment_temperature.vue'\n ),\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [issuableStateMixin, InternalEvents.mixin(), glAbilitiesMixin()],\n props: {\n noteableType: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n note: '',\n noteType: constants.COMMENT,\n errors: [],\n noteIsInternal: false,\n isSubmitting: false,\n isMeasuringCommentTemperature: false,\n formFieldProps: {\n 'aria-label': this.$options.i18n.comment,\n placeholder: this.$options.i18n.bodyPlaceholder,\n id: 'note-body',\n name: 'note[note]',\n class: 'js-note-text note-textarea js-gfm-input markdown-area',\n 'data-testid': 'comment-field',\n },\n };\n },\n computed: {\n ...mapGetters([\n 'getCurrentUserLastNote',\n 'getUserData',\n 'getNoteableData',\n 'getNoteableDataByProp',\n 'getNotesData',\n 'openState',\n 'hasDrafts',\n ]),\n ...mapState(['isToggleStateButtonLoading']),\n autocompleteDataSources() {\n return gl.GfmAutoComplete?.dataSources;\n },\n noteableDisplayName() {\n const displayNameMap = {\n [constants.ISSUE_NOTEABLE_TYPE]: this.$options.i18n.issue,\n [constants.EPIC_NOTEABLE_TYPE]: this.$options.i18n.epic,\n [constants.MERGE_REQUEST_NOTEABLE_TYPE]: this.$options.i18n.mergeRequest,\n };\n\n const noteableTypeKey =\n constants.NOTEABLE_TYPE_MAPPING[this.noteableType] || constants.ISSUE_NOTEABLE_TYPE;\n return displayNameMap[noteableTypeKey];\n },\n isLoggedIn() {\n return this.getUserData.id;\n },\n commentButtonTitle() {\n const { comment, internalComment, startThread, startInternalThread } = this.$options.i18n;\n if (this.noteIsInternal) {\n return this.noteType === constants.COMMENT ? internalComment : startInternalThread;\n }\n return this.noteType === constants.COMMENT ? comment : startThread;\n },\n discussionsRequireResolution() {\n return this.getNoteableData.noteableType === constants.MERGE_REQUEST_NOTEABLE_TYPE;\n },\n isOpen() {\n return this.openState === STATUS_OPEN || this.openState === STATUS_REOPENED;\n },\n canCreateNote() {\n return this.getNoteableData.current_user.can_create_note;\n },\n canSetInternalNote() {\n return this.getNoteableData.current_user.can_create_confidential_note;\n },\n issueActionButtonTitle() {\n const openOrClose = this.isOpen ? 'close' : 'reopen';\n\n if (this.note.length) {\n return sprintf(this.$options.i18n.actionButton.withNote[openOrClose], {\n actionText: this.commentButtonTitle,\n noteable: this.noteableDisplayName,\n });\n }\n\n return sprintf(this.$options.i18n.actionButton.withoutNote[openOrClose], {\n noteable: this.noteableDisplayName,\n });\n },\n actionButtonClassNames() {\n return {\n 'btn-reopen': !this.isOpen,\n 'btn-close': this.isOpen,\n 'js-note-target-close': this.isOpen,\n 'js-note-target-reopen': !this.isOpen,\n };\n },\n markdownDocsPath() {\n return this.getNotesData.markdownDocsPath;\n },\n markdownPreviewPath() {\n return this.getNoteableData.preview_note_path;\n },\n author() {\n return this.getUserData;\n },\n canToggleIssueState() {\n return (\n this.getNoteableData.current_user.can_update &&\n this.openState !== STATUS_MERGED &&\n !this.closedAndLocked\n );\n },\n closedAndLocked() {\n return !this.isOpen && this.isLocked(this.getNoteableData);\n },\n endpoint() {\n return this.getNoteableData.create_note_path;\n },\n draftEndpoint() {\n return this.getNotesData.draftsPath;\n },\n isIssue() {\n return constants.NOTEABLE_TYPE_MAPPING[this.noteableType] === constants.ISSUE_NOTEABLE_TYPE;\n },\n isEpic() {\n return constants.NOTEABLE_TYPE_MAPPING[this.noteableType] === constants.EPIC_NOTEABLE_TYPE;\n },\n isMergeRequest() {\n return (\n constants.NOTEABLE_TYPE_MAPPING[this.noteableType] === constants.MERGE_REQUEST_NOTEABLE_TYPE\n );\n },\n trackingLabel() {\n return slugifyWithUnderscore(`${this.commentButtonTitle} button`);\n },\n disableSubmitButton() {\n return this.note.length === 0 || this.isSubmitting;\n },\n autosaveKey() {\n if (this.isLoggedIn) {\n const noteableType = capitalizeFirstCharacter(convertToCamelCase(this.noteableType));\n return `${this.$options.i18n.note}/${noteableType}/${this.getNoteableData.id}`;\n }\n\n return null;\n },\n shouldDisableField() {\n return this.isSubmitting && !this.isMeasuringCommentTemperature;\n },\n shouldMeasureNoteTemperature() {\n return !isSlashCommand(this.note) && this.glAbilities.measureCommentTemperature;\n },\n },\n watch: {\n noteIsInternal(val) {\n this.formFieldProps.placeholder = val\n ? this.$options.i18n.bodyPlaceholderInternal\n : this.$options.i18n.bodyPlaceholder;\n },\n },\n mounted() {\n // jQuery is needed here because it is a custom event being dispatched with jQuery.\n $(document).on('issuable:change', (e, isClosed) => {\n this.toggleIssueLocalState(isClosed ? STATUS_CLOSED : STATUS_REOPENED);\n });\n },\n methods: {\n ...mapActions([\n 'saveNote',\n 'removePlaceholderNotes',\n 'closeIssuable',\n 'reopenIssuable',\n 'toggleIssueLocalState',\n ]),\n handleSaveError({ data, status }) {\n this.errors = createNoteErrorMessages(data, status);\n },\n handleSaveDraft() {\n this.handleSave({ isDraft: true });\n },\n async handleSave({\n withIssueAction = false,\n isDraft = false,\n shouldMeasureTemperature = true,\n } = {}) {\n this.errors = [];\n\n if (this.note.length) {\n const noteData = {\n endpoint: isDraft ? this.draftEndpoint : this.endpoint,\n flashContainer: this.$el,\n data: {\n note: {\n noteable_type: this.noteableType,\n noteable_id: this.getNoteableData.id,\n internal: this.noteIsInternal,\n note: this.note,\n },\n merge_request_diff_head_sha: this.getNoteableData.diff_head_sha,\n },\n isDraft,\n };\n\n if (this.noteType === constants.DISCUSSION || isDraft) {\n noteData.data.note.type = constants.DISCUSSION_NOTE;\n }\n\n const confirmSubmit = await detectAndConfirmSensitiveTokens({ content: this.note });\n if (!confirmSubmit) {\n return;\n }\n\n this.isSubmitting = true;\n\n if (this.shouldMeasureNoteTemperature && shouldMeasureTemperature) {\n this.saveNoteParams = { isDraft, withIssueAction };\n this.isMeasuringCommentTemperature = true;\n this.$refs.commentTemperature.measureCommentTemperature();\n return;\n }\n\n if (!this.shouldMeasureTemperature) {\n this.isMeasuringCommentTemperature = false;\n }\n\n this.note = ''; // Empty textarea while being requested. Repopulate in catch\n if (isDraft) {\n eventHub.$emit('noteFormAddToReview', { name: 'noteFormAddToReview' });\n }\n\n trackSavedUsingEditor(\n this.$refs.markdownEditor.isContentEditorActive,\n `${this.noteableType}_${this.noteType}`,\n );\n\n this.saveNote(noteData)\n .then(() => {\n this.discard();\n\n if (withIssueAction) {\n this.toggleIssueState();\n }\n })\n .catch(({ response }) => {\n this.handleSaveError(response);\n\n this.note = noteData.data.note.note; // Restore textarea content.\n this.removePlaceholderNotes();\n })\n .finally(() => {\n this.isSubmitting = false;\n });\n } else {\n this.toggleIssueState();\n }\n },\n handleEnter() {\n if (this.hasDrafts) {\n this.handleSaveDraft();\n } else {\n this.handleSave();\n }\n },\n toggleIssueState() {\n if (this.isIssue) {\n // We want to invoke the close/reopen logic in the issue header\n // since that is where the blocked-by issues modal logic is also defined\n eventHub.$emit('toggle.issuable.state');\n return;\n }\n\n const toggleState = this.isOpen ? this.closeIssuable : this.reopenIssuable;\n\n toggleState()\n .then(() => {\n fetchUserCounts();\n // badgeState is only initialized for MR type\n // To avoid undefined error added an optional chaining to function\n return badgeState?.updateStatus?.();\n })\n .catch(() =>\n createAlert({\n message: constants.toggleStateErrorMessage[this.noteableType][this.openState],\n }),\n );\n },\n discard() {\n this.note = '';\n this.noteIsInternal = false;\n this.$refs.markdownEditor.togglePreview(false);\n },\n editCurrentUserLastNote() {\n if (this.note === '') {\n const lastNote = this.getCurrentUserLastNote;\n\n if (lastNote) {\n eventHub.$emit('enterEditMode', {\n noteId: lastNote.id,\n });\n }\n }\n },\n hasEmailParticipants() {\n return this.getNoteableData.issue_email_participants?.length;\n },\n dismissError(index) {\n this.errors.splice(index, 1);\n },\n onInput(value) {\n this.note = value;\n },\n append(value) {\n this.$refs.markdownEditor.append(value);\n },\n },\n};\n</script>\n\n<template>\n <div>\n <note-signed-out-widget v-if=\"!isLoggedIn\" />\n <discussion-locked-widget v-else-if=\"!canCreateNote\" :issuable-type=\"noteableDisplayName\" />\n <ul v-else-if=\"canCreateNote\" class=\"notes notes-form timeline\">\n <timeline-entry-item class=\"note-form\">\n <div class=\"flash-container gl-mb-2\"></div>\n <gl-alert\n v-for=\"(error, index) in errors\"\n :key=\"index\"\n variant=\"danger\"\n class=\"gl-mb-2\"\n @dismiss=\"() => dismissError(index)\"\n >\n {{ error }}\n </gl-alert>\n <div class=\"timeline-content timeline-content-form\">\n <form\n ref=\"commentForm\"\n class=\"new-note common-note-form gfm-form js-main-target-form\"\n data-testid=\"comment-form\"\n @submit.stop.prevent\n >\n <comment-field-layout\n :with-alert-container=\"true\"\n :is-internal-note=\"noteIsInternal\"\n :note=\"note\"\n :noteable-data=\"getNoteableData\"\n :noteable-type=\"noteableType\"\n >\n <markdown-editor\n ref=\"markdownEditor\"\n :value=\"note\"\n :render-markdown-path=\"markdownPreviewPath\"\n :markdown-docs-path=\"markdownDocsPath\"\n :add-spacing-classes=\"false\"\n :form-field-props=\"formFieldProps\"\n :autosave-key=\"autosaveKey\"\n :disabled=\"shouldDisableField\"\n :autocomplete-data-sources=\"autocompleteDataSources\"\n :noteable-type=\"noteableType\"\n supports-quick-actions\n @keydown.up=\"editCurrentUserLastNote()\"\n @keydown.shift.meta.enter=\"handleSave()\"\n @keydown.shift.ctrl.enter=\"handleSave()\"\n @keydown.meta.enter.exact=\"handleEnter()\"\n @keydown.ctrl.enter.exact=\"handleEnter()\"\n @input=\"onInput\"\n />\n </comment-field-layout>\n <comment-temperature\n v-if=\"glAbilities.measureCommentTemperature\"\n ref=\"commentTemperature\"\n v-model=\"note\"\n :item-id=\"getNoteableData.id\"\n :item-type=\"noteableType\"\n :user-id=\"getUserData.id\"\n @save=\"handleSave({ ...saveNoteParams, shouldMeasureTemperature: false })\"\n />\n <div class=\"note-form-actions gl-font-size-0\">\n <gl-form-checkbox\n v-if=\"canSetInternalNote\"\n v-model=\"noteIsInternal\"\n class=\"gl-mb-2 gl-basis-full\"\n data-testid=\"internal-note-checkbox\"\n >\n {{ $options.i18n.internal }}\n <help-icon\n v-gl-tooltip:tooltipcontainer.bottom\n :title=\"$options.i18n.internalVisibility\"\n />\n </gl-form-checkbox>\n <template v-if=\"hasDrafts\">\n <gl-button\n :disabled=\"disableSubmitButton\"\n data-testid=\"add-to-review-button\"\n category=\"primary\"\n variant=\"confirm\"\n class=\"gl-mr-3\"\n @click=\"handleSaveDraft()\"\n >\n {{ $options.i18n.addToReview }}\n </gl-button>\n <gl-button\n :disabled=\"disableSubmitButton\"\n data-testid=\"add-comment-now-button\"\n category=\"secondary\"\n class=\"gl-mr-3\"\n @click.prevent=\"handleSave()\"\n >{{ $options.i18n.addCommentNow }}</gl-button\n >\n </template>\n <template v-else>\n <comment-type-dropdown\n v-model=\"noteType\"\n class=\"gl-mr-3\"\n data-testid=\"comment-button\"\n :disabled=\"disableSubmitButton\"\n :tracking-label=\"trackingLabel\"\n :is-internal-note=\"noteIsInternal\"\n :noteable-display-name=\"noteableDisplayName\"\n :discussions-require-resolution=\"discussionsRequireResolution\"\n @click=\"handleSave\"\n />\n <template v-if=\"isMergeRequest\">\n <gl-button\n :disabled=\"disableSubmitButton\"\n data-testid=\"start-review-button\"\n category=\"secondary\"\n variant=\"confirm\"\n class=\"gl-mr-3\"\n @click=\"handleSaveDraft()\"\n >\n {{ $options.i18n.startReview }}\n </gl-button>\n </template>\n </template>\n <gl-button\n v-if=\"canToggleIssueState\"\n :loading=\"isToggleStateButtonLoading\"\n :class=\"[actionButtonClassNames, 'btn-comment btn-comment-and-close']\"\n :disabled=\"isSubmitting\"\n data-testid=\"close-reopen-button\"\n @click=\"handleSave({ withIssueAction: true })\"\n >{{ issueActionButtonTitle }}</gl-button\n >\n </div>\n </form>\n </div>\n </timeline-entry-item>\n </ul>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./comment_form.vue?vue&type=template&id=46b75040\"\nimport script from \"./comment_form.vue?vue&type=script&lang=js\"\nexport * from \"./comment_form.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('div',[(!_vm.isLoggedIn)?_c('note-signed-out-widget'):(!_vm.canCreateNote)?_c('discussion-locked-widget',{attrs:{\"issuable-type\":_vm.noteableDisplayName}}):(_vm.canCreateNote)?_c('ul',{staticClass:\"notes notes-form timeline\"},[_c('timeline-entry-item',{staticClass:\"note-form\"},[_c('div',{staticClass:\"flash-container gl-mb-2\"}),_vm._v(\" \"),_vm._l((_vm.errors),function(error,index){return _c('gl-alert',{key:index,staticClass:\"gl-mb-2\",attrs:{\"variant\":\"danger\"},on:{\"dismiss\":() => _vm.dismissError(index)}},[_vm._v(\"\\n \"+_vm._s(error)+\"\\n \")])}),_vm._v(\" \"),_c('div',{staticClass:\"timeline-content timeline-content-form\"},[_c('form',{ref:\"commentForm\",staticClass:\"new-note common-note-form gfm-form js-main-target-form\",attrs:{\"data-testid\":\"comment-form\"},on:{\"submit\":function($event){$event.stopPropagation();$event.preventDefault();}}},[_c('comment-field-layout',{attrs:{\"with-alert-container\":true,\"is-internal-note\":_vm.noteIsInternal,\"note\":_vm.note,\"noteable-data\":_vm.getNoteableData,\"noteable-type\":_vm.noteableType}},[_c('markdown-editor',{ref:\"markdownEditor\",attrs:{\"value\":_vm.note,\"render-markdown-path\":_vm.markdownPreviewPath,\"markdown-docs-path\":_vm.markdownDocsPath,\"add-spacing-classes\":false,\"form-field-props\":_vm.formFieldProps,\"autosave-key\":_vm.autosaveKey,\"disabled\":_vm.shouldDisableField,\"autocomplete-data-sources\":_vm.autocompleteDataSources,\"noteable-type\":_vm.noteableType,\"supports-quick-actions\":\"\"},on:{\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"up\",38,$event.key,[\"Up\",\"ArrowUp\"]))return null;return _vm.editCurrentUserLastNote()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.shiftKey)return null;if(!$event.metaKey)return null;return _vm.handleSave()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.shiftKey)return null;if(!$event.ctrlKey)return null;return _vm.handleSave()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.metaKey)return null;if($event.ctrlKey||$event.shiftKey||$event.altKey)return null;return _vm.handleEnter()},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;if(!$event.ctrlKey)return null;if($event.shiftKey||$event.altKey||$event.metaKey)return null;return _vm.handleEnter()}],\"input\":_vm.onInput}})],1),_vm._v(\" \"),(_vm.glAbilities.measureCommentTemperature)?_c('comment-temperature',{ref:\"commentTemperature\",attrs:{\"item-id\":_vm.getNoteableData.id,\"item-type\":_vm.noteableType,\"user-id\":_vm.getUserData.id},on:{\"save\":function($event){return _vm.handleSave({ ..._vm.saveNoteParams, shouldMeasureTemperature: false })}},model:{value:(_vm.note),callback:function ($$v) {_vm.note=$$v},expression:\"note\"}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"note-form-actions gl-font-size-0\"},[(_vm.canSetInternalNote)?_c('gl-form-checkbox',{staticClass:\"gl-mb-2 gl-basis-full\",attrs:{\"data-testid\":\"internal-note-checkbox\"},model:{value:(_vm.noteIsInternal),callback:function ($$v) {_vm.noteIsInternal=$$v},expression:\"noteIsInternal\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.internal)+\"\\n \"),_c('help-icon',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip:tooltipcontainer.bottom\",arg:\"tooltipcontainer\",modifiers:{\"bottom\":true}}],attrs:{\"title\":_vm.$options.i18n.internalVisibility}})],1):_vm._e(),_vm._v(\" \"),(_vm.hasDrafts)?[_c('gl-button',{staticClass:\"gl-mr-3\",attrs:{\"disabled\":_vm.disableSubmitButton,\"data-testid\":\"add-to-review-button\",\"category\":\"primary\",\"variant\":\"confirm\"},on:{\"click\":function($event){return _vm.handleSaveDraft()}}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.addToReview)+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-mr-3\",attrs:{\"disabled\":_vm.disableSubmitButton,\"data-testid\":\"add-comment-now-button\",\"category\":\"secondary\"},on:{\"click\":function($event){$event.preventDefault();return _vm.handleSave()}}},[_vm._v(_vm._s(_vm.$options.i18n.addCommentNow))])]:[_c('comment-type-dropdown',{staticClass:\"gl-mr-3\",attrs:{\"data-testid\":\"comment-button\",\"disabled\":_vm.disableSubmitButton,\"tracking-label\":_vm.trackingLabel,\"is-internal-note\":_vm.noteIsInternal,\"noteable-display-name\":_vm.noteableDisplayName,\"discussions-require-resolution\":_vm.discussionsRequireResolution},on:{\"click\":_vm.handleSave},model:{value:(_vm.noteType),callback:function ($$v) {_vm.noteType=$$v},expression:\"noteType\"}}),_vm._v(\" \"),(_vm.isMergeRequest)?[_c('gl-button',{staticClass:\"gl-mr-3\",attrs:{\"disabled\":_vm.disableSubmitButton,\"data-testid\":\"start-review-button\",\"category\":\"secondary\",\"variant\":\"confirm\"},on:{\"click\":function($event){return _vm.handleSaveDraft()}}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.startReview)+\"\\n \")])]:_vm._e()],_vm._v(\" \"),(_vm.canToggleIssueState)?_c('gl-button',{class:[_vm.actionButtonClassNames, 'btn-comment btn-comment-and-close'],attrs:{\"loading\":_vm.isToggleStateButtonLoading,\"disabled\":_vm.isSubmitting,\"data-testid\":\"close-reopen-button\"},on:{\"click\":function($event){return _vm.handleSave({ withIssueAction: true })}}},[_vm._v(_vm._s(_vm.issueActionButtonTitle))]):_vm._e()],2)],1)])],2)],1):_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!./discussion_filter_note.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!./discussion_filter_note.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlIcon, GlSprintf } from '@gitlab/ui';\nimport { s__ } from '~/locale';\n\nimport notesEventHub from '../event_hub';\n\nexport default {\n i18n: {\n information: s__(\n \"Notes|You're only seeing %{boldStart}other activity%{boldEnd} in the feed. To add a comment, switch to one of the following options.\",\n ),\n },\n components: {\n GlButton,\n GlIcon,\n GlSprintf,\n },\n methods: {\n selectFilter(value) {\n notesEventHub.$emit('dropdownSelect', value);\n },\n },\n};\n</script>\n\n<template>\n <li\n class=\"timeline-entry note note-wrapper discussion-filter-note js-discussion-filter-note\"\n data-testid=\"discussion-filter-container\"\n >\n <div\n class=\"gl-float-left -gl-mt-1 gl-ml-2 gl-flex gl-h-6 gl-w-6 gl-items-center gl-justify-center gl-rounded-full gl-bg-gray-50 gl-text-subtle\"\n >\n <gl-icon name=\"comment\" />\n </div>\n <div class=\"timeline-content gl-pl-8\">\n <div data-testid=\"discussion-filter-timeline-content\">\n <gl-sprintf :message=\"$options.i18n.information\">\n <template #bold=\"{ content }\">\n <b>{{ content }}</b>\n </template>\n </gl-sprintf>\n </div>\n <div class=\"discussion-filter-actions gl-mt-3 gl-flex\">\n <gl-button variant=\"default\" class=\"gl-mr-3\" @click=\"selectFilter(0)\">\n {{ __('Show all activity') }}\n </gl-button>\n <gl-button variant=\"default\" @click=\"selectFilter(1)\">\n {{ __('Show comments only') }}\n </gl-button>\n </div>\n </div>\n </li>\n</template>\n","import { render, staticRenderFns } from \"./discussion_filter_note.vue?vue&type=template&id=279885ed\"\nimport script from \"./discussion_filter_note.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_filter_note.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('li',{staticClass:\"timeline-entry note note-wrapper discussion-filter-note js-discussion-filter-note\",attrs:{\"data-testid\":\"discussion-filter-container\"}},[_c('div',{staticClass:\"gl-float-left -gl-mt-1 gl-ml-2 gl-flex gl-h-6 gl-w-6 gl-items-center gl-justify-center gl-rounded-full gl-bg-gray-50 gl-text-subtle\"},[_c('gl-icon',{attrs:{\"name\":\"comment\"}})],1),_vm._v(\" \"),_c('div',{staticClass:\"timeline-content gl-pl-8\"},[_c('div',{attrs:{\"data-testid\":\"discussion-filter-timeline-content\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.information},scopedSlots:_vm._u([{key:\"bold\",fn:function({ content }){return [_c('b',[_vm._v(_vm._s(content))])]}}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"discussion-filter-actions gl-mt-3 gl-flex\"},[_c('gl-button',{staticClass:\"gl-mr-3\",attrs:{\"variant\":\"default\"},on:{\"click\":function($event){return _vm.selectFilter(0)}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Show all activity'))+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"variant\":\"default\"},on:{\"click\":function($event){return _vm.selectFilter(1)}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Show comments only'))+\"\\n \")])],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!./ordered_layout.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!./ordered_layout.vue?vue&type=script&lang=js\"","<script>\nexport default {\n functional: true,\n render(h, context) {\n const { slotKeys } = context.props;\n const slots = context.slots();\n const children = slotKeys.map((key) => slots[key]).filter((x) => x);\n\n return children;\n },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./ordered_layout.vue?vue&type=script&lang=js\"\nexport * from \"./ordered_layout.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--13-0!../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./sidebar_subscription.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!./sidebar_subscription.vue?vue&type=script&lang=js\"","<script>\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions } from 'vuex';\nimport { TYPE_EPIC, TYPE_ISSUE } from '~/issues/constants';\nimport { fetchPolicies } from '~/lib/graphql';\nimport { confidentialityQueries } from '~/sidebar/queries/constants';\nimport { defaultClient as gqlClient } from '~/graphql_shared/issuable_client';\n\nexport default {\n props: {\n noteableData: {\n type: Object,\n required: true,\n },\n iid: {\n type: Number,\n required: true,\n },\n },\n computed: {\n fullPath() {\n if (this.noteableData.web_url) {\n return this.noteableData.web_url.split('/-/')[0].substring(1).replace('groups/', '');\n }\n return null;\n },\n issuableType() {\n return this.noteableData.noteableType.toLowerCase();\n },\n },\n created() {\n if (this.issuableType !== TYPE_ISSUE && this.issuableType !== TYPE_EPIC) {\n return;\n }\n\n gqlClient\n .watchQuery({\n query: confidentialityQueries[this.issuableType].query,\n variables: {\n iid: String(this.iid),\n fullPath: this.fullPath,\n },\n fetchPolicy: fetchPolicies.CACHE_ONLY,\n })\n .subscribe((res) => {\n const issuable = res.data?.workspace?.issuable;\n if (issuable) {\n this.setConfidentiality(issuable.confidential);\n }\n });\n },\n methods: {\n ...mapActions(['setConfidentiality']),\n },\n render() {\n return null;\n },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./sidebar_subscription.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_subscription.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","<script>\nimport {\n GlIcon,\n GlDisclosureDropdown,\n GlDisclosureDropdownGroup,\n GlDisclosureDropdownItem,\n} from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions } from 'vuex';\nimport { getLocationHash, doesHashExistInUrl } from '~/lib/utils/url_utility';\nimport { __ } from '~/locale';\nimport Tracking from '~/tracking';\nimport LocalStorageSync from '~/vue_shared/components/local_storage_sync.vue';\nimport {\n DISCUSSION_FILTERS_DEFAULT_VALUE,\n HISTORY_ONLY_FILTER_VALUE,\n COMMENTS_ONLY_FILTER_VALUE,\n DISCUSSION_TAB_LABEL,\n DISCUSSION_FILTER_TYPES,\n NOTE_UNDERSCORE,\n ASC,\n DESC,\n} from '../constants';\nimport notesEventHub from '../event_hub';\n\nconst SORT_OPTIONS = [\n { key: DESC, text: __('Newest first'), cls: 'js-newest-first' },\n { key: ASC, text: __('Oldest first'), cls: 'js-oldest-first' },\n];\n\nexport default {\n SORT_OPTIONS,\n components: {\n GlIcon,\n GlDisclosureDropdown,\n GlDisclosureDropdownGroup,\n GlDisclosureDropdownItem,\n LocalStorageSync,\n },\n mixins: [Tracking.mixin()],\n props: {\n filters: {\n type: Array,\n required: true,\n },\n selectedValue: {\n type: Number,\n default: DISCUSSION_FILTERS_DEFAULT_VALUE,\n required: false,\n },\n },\n data() {\n return {\n currentValue: doesHashExistInUrl(NOTE_UNDERSCORE)\n ? DISCUSSION_FILTERS_DEFAULT_VALUE\n : this.selectedValue,\n defaultValue: DISCUSSION_FILTERS_DEFAULT_VALUE,\n displayFilters: true,\n };\n },\n computed: {\n ...mapGetters([\n 'getNotesDataByProp',\n 'timelineEnabled',\n 'isLoading',\n 'sortDirection',\n 'persistSortOrder',\n 'noteableType',\n ]),\n currentFilter() {\n if (!this.currentValue) return this.filters[0];\n return this.filters.find((filter) => filter.value === this.currentValue);\n },\n selectedSortOption() {\n return SORT_OPTIONS.find(({ key }) => this.sortDirection === key);\n },\n sortStorageKey() {\n return `sort_direction_${this.noteableType.toLowerCase()}`;\n },\n },\n created() {\n if (window.mrTabs) {\n const { eventHub, currentTab } = window.mrTabs;\n\n eventHub.$on('MergeRequestTabChange', this.toggleFilters);\n this.toggleFilters(currentTab);\n }\n\n notesEventHub.$on('dropdownSelect', this.selectFilter);\n window.addEventListener('hashchange', this.handleLocationHash);\n },\n mounted() {\n this.toggleCommentsForm();\n },\n destroyed() {\n notesEventHub.$off('dropdownSelect', this.selectFilter);\n window.removeEventListener('hashchange', this.handleLocationHash);\n },\n methods: {\n ...mapActions([\n 'filterDiscussion',\n 'setCommentsDisabled',\n 'setTargetNoteHash',\n 'setTimelineView',\n 'setDiscussionSortDirection',\n ]),\n selectFilter(value, persistFilter = true) {\n const filter = parseInt(value, 10);\n\n if (filter === this.currentValue) return;\n\n if (this.timelineEnabled && filter !== COMMENTS_ONLY_FILTER_VALUE) {\n this.setTimelineView(false);\n }\n this.currentValue = filter;\n this.filterDiscussion({\n path: this.getNotesDataByProp('discussionsPath'),\n filter,\n persistFilter,\n });\n this.toggleCommentsForm();\n },\n toggleCommentsForm() {\n this.setCommentsDisabled(this.currentValue === HISTORY_ONLY_FILTER_VALUE);\n },\n toggleFilters(tab) {\n this.displayFilters = tab === DISCUSSION_TAB_LABEL;\n },\n handleLocationHash() {\n const hash = getLocationHash();\n\n if (/^note_/.test(hash) && this.currentValue !== DISCUSSION_FILTERS_DEFAULT_VALUE) {\n this.selectFilter(this.defaultValue, false);\n this.setTargetNoteHash(hash);\n }\n },\n filterType(value) {\n if (value === 0) {\n return DISCUSSION_FILTER_TYPES.ALL;\n }\n if (value === 1) {\n return DISCUSSION_FILTER_TYPES.COMMENTS;\n }\n return DISCUSSION_FILTER_TYPES.HISTORY;\n },\n fetchSortedDiscussions(direction) {\n if (this.isSortDropdownItemActive(direction)) {\n return;\n }\n\n this.setDiscussionSortDirection({ direction });\n this.track('change_discussion_sort_direction', { property: direction });\n },\n isSortDropdownItemActive(sortDir) {\n return sortDir === this.sortDirection;\n },\n },\n};\n</script>\n\n<template>\n <div\n v-if=\"displayFilters\"\n id=\"discussion-preferences\"\n data-testid=\"discussion-preferences\"\n class=\"full-width-mobile gl-inline-block gl-align-bottom\"\n >\n <local-storage-sync\n :value=\"sortDirection\"\n :storage-key=\"sortStorageKey\"\n :persist=\"persistSortOrder\"\n as-string\n @input=\"setDiscussionSortDirection({ direction: $event })\"\n />\n <gl-disclosure-dropdown\n id=\"discussion-preferences-dropdown\"\n class=\"full-width-mobile\"\n data-testid=\"discussion-preferences-dropdown\"\n :toggle-text=\"__('Sort or filter')\"\n :disabled=\"isLoading\"\n placement=\"bottom-end\"\n >\n <gl-disclosure-dropdown-group id=\"discussion-sort\">\n <gl-disclosure-dropdown-item\n v-for=\"{ text, key, cls } in $options.SORT_OPTIONS\"\n :key=\"text\"\n :class=\"cls\"\n :is-selected=\"isSortDropdownItemActive(key)\"\n @action=\"fetchSortedDiscussions(key)\"\n >\n <template #list-item>\n <gl-icon\n name=\"mobile-issue-close\"\n data-testid=\"dropdown-item-checkbox\"\n :class=\"[\n 'gl-dropdown-item-check-icon',\n { 'gl-invisible': !isSortDropdownItemActive(key) },\n 'gl-text-blue-400',\n ]\"\n />\n {{ text }}\n </template>\n </gl-disclosure-dropdown-item>\n </gl-disclosure-dropdown-group>\n <gl-disclosure-dropdown-group\n id=\"discussion-filter\"\n class=\"discussion-filter-container js-discussion-filter-container\"\n bordered\n >\n <gl-disclosure-dropdown-item\n v-for=\"filter in filters\"\n :key=\"filter.value\"\n :is-selected=\"filter.value === currentValue\"\n :class=\"{ 'is-active': filter.value === currentValue }\"\n :data-filter-type=\"filterType(filter.value)\"\n data-testid=\"filter-menu-item\"\n @action=\"selectFilter(filter.value)\"\n >\n <template #list-item>\n <gl-icon\n name=\"mobile-issue-close\"\n data-testid=\"dropdown-item-checkbox\"\n :class=\"[\n 'gl-dropdown-item-check-icon',\n { 'gl-invisible': filter.value !== currentValue },\n 'gl-text-blue-400',\n ]\"\n />\n {{ filter.title }}\n </template>\n </gl-disclosure-dropdown-item>\n </gl-disclosure-dropdown-group>\n </gl-disclosure-dropdown>\n </div>\n</template>\n","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!./discussion_filter.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!./discussion_filter.vue?vue&type=script&lang=js\"","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!./notes_activity_header.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!./notes_activity_header.vue?vue&type=script&lang=js\"","<script>\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport glAbilitiesMixin from '~/vue_shared/mixins/gl_abilities_mixin';\nimport DiscussionFilter from './discussion_filter.vue';\n\nexport default {\n components: {\n TimelineToggle: () => import('./timeline_toggle.vue'),\n DiscussionFilter,\n AiSummarizeNotes: () =>\n import('ee_component/notes/components/note_actions/ai_summarize_notes.vue'),\n MrDiscussionFilter: () => import('./mr_discussion_filter.vue'),\n },\n mixins: [glAbilitiesMixin(), glFeatureFlagsMixin()],\n inject: {\n showTimelineViewToggle: {\n default: false,\n },\n resourceGlobalId: { default: null },\n mrFilter: {\n default: false,\n },\n },\n props: {\n notesFilters: {\n type: Array,\n required: true,\n },\n notesFilterValue: {\n type: Number,\n default: undefined,\n required: false,\n },\n aiLoading: {\n type: Boolean,\n default: false,\n required: false,\n },\n },\n computed: {\n showAiActions() {\n return (\n this.resourceGlobalId &&\n this.glAbilities.summarizeComments &&\n this.glFeatures.summarizeComments\n );\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"gl-flex gl-flex-col gl-justify-between gl-pb-3 gl-pt-5 sm:gl-flex-row sm:gl-items-center\"\n >\n <h2 class=\"gl-m-0 gl-text-size-h1\">{{ __('Activity') }}</h2>\n <div class=\"gl-mt-3 gl-flex gl-w-full gl-gap-3 sm:gl-mt-0 sm:gl-w-auto\">\n <ai-summarize-notes\n v-if=\"showAiActions\"\n :resource-global-id=\"resourceGlobalId\"\n :loading=\"aiLoading\"\n />\n <timeline-toggle v-if=\"showTimelineViewToggle\" />\n <mr-discussion-filter v-if=\"mrFilter\" />\n <discussion-filter v-else :filters=\"notesFilters\" :selected-value=\"notesFilterValue\" />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./discussion_filter.vue?vue&type=template&id=26a5fb86\"\nimport script from \"./discussion_filter.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_filter.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 (_vm.displayFilters)?_c('div',{staticClass:\"full-width-mobile gl-inline-block gl-align-bottom\",attrs:{\"id\":\"discussion-preferences\",\"data-testid\":\"discussion-preferences\"}},[_c('local-storage-sync',{attrs:{\"value\":_vm.sortDirection,\"storage-key\":_vm.sortStorageKey,\"persist\":_vm.persistSortOrder,\"as-string\":\"\"},on:{\"input\":function($event){return _vm.setDiscussionSortDirection({ direction: $event })}}}),_vm._v(\" \"),_c('gl-disclosure-dropdown',{staticClass:\"full-width-mobile\",attrs:{\"id\":\"discussion-preferences-dropdown\",\"data-testid\":\"discussion-preferences-dropdown\",\"toggle-text\":_vm.__('Sort or filter'),\"disabled\":_vm.isLoading,\"placement\":\"bottom-end\"}},[_c('gl-disclosure-dropdown-group',{attrs:{\"id\":\"discussion-sort\"}},_vm._l((_vm.$options.SORT_OPTIONS),function({ text, key, cls }){return _c('gl-disclosure-dropdown-item',{key:text,class:cls,attrs:{\"is-selected\":_vm.isSortDropdownItemActive(key)},on:{\"action\":function($event){return _vm.fetchSortedDiscussions(key)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('gl-icon',{class:[\n 'gl-dropdown-item-check-icon',\n { 'gl-invisible': !_vm.isSortDropdownItemActive(key) },\n 'gl-text-blue-400',\n ],attrs:{\"name\":\"mobile-issue-close\",\"data-testid\":\"dropdown-item-checkbox\"}}),_vm._v(\"\\n \"+_vm._s(text)+\"\\n \")]},proxy:true}],null,true)})}),1),_vm._v(\" \"),_c('gl-disclosure-dropdown-group',{staticClass:\"discussion-filter-container js-discussion-filter-container\",attrs:{\"id\":\"discussion-filter\",\"bordered\":\"\"}},_vm._l((_vm.filters),function(filter){return _c('gl-disclosure-dropdown-item',{key:filter.value,class:{ 'is-active': filter.value === _vm.currentValue },attrs:{\"is-selected\":filter.value === _vm.currentValue,\"data-filter-type\":_vm.filterType(filter.value),\"data-testid\":\"filter-menu-item\"},on:{\"action\":function($event){return _vm.selectFilter(filter.value)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('gl-icon',{class:[\n 'gl-dropdown-item-check-icon',\n { 'gl-invisible': filter.value !== _vm.currentValue },\n 'gl-text-blue-400',\n ],attrs:{\"name\":\"mobile-issue-close\",\"data-testid\":\"dropdown-item-checkbox\"}}),_vm._v(\"\\n \"+_vm._s(filter.title)+\"\\n \")]},proxy:true}],null,true)})}),1)],1)],1):_vm._e()\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!./notes_app.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!./notes_app.vue?vue&type=script&lang=js\"","<script>\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions } from 'vuex';\nimport { v4 as uuidv4 } from 'uuid';\nimport { InternalEvents } from '~/tracking';\nimport { getDraft, getAutoSaveKeyFromDiscussion } from '~/lib/utils/autosave';\nimport highlightCurrentUser from '~/behaviors/markdown/highlight_current_user';\nimport { scrollToTargetOnResize } from '~/lib/utils/resize_observer';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport DraftNote from '~/batch_comments/components/draft_note.vue';\nimport { getLocationHash } from '~/lib/utils/url_utility';\nimport NotePreview from '~/notes/components/note_preview.vue';\nimport PlaceholderNote from '~/vue_shared/components/notes/placeholder_note.vue';\nimport PlaceholderSystemNote from '~/vue_shared/components/notes/placeholder_system_note.vue';\nimport SkeletonLoadingContainer from '~/vue_shared/components/notes/skeleton_note.vue';\nimport SystemNote from '~/vue_shared/components/notes/system_note.vue';\nimport { Mousetrap } from '~/lib/mousetrap';\nimport { ISSUABLE_COMMENT_OR_REPLY, keysFor } from '~/behaviors/shortcuts/keybindings';\nimport { CopyAsGFM } from '~/behaviors/markdown/copy_as_gfm';\nimport * as constants from '../constants';\nimport eventHub from '../event_hub';\nimport CommentForm from './comment_form.vue';\nimport DiscussionFilterNote from './discussion_filter_note.vue';\nimport NoteableDiscussion from './noteable_discussion.vue';\nimport NoteableNote from './noteable_note.vue';\nimport OrderedLayout from './ordered_layout.vue';\nimport SidebarSubscription from './sidebar_subscription.vue';\nimport NotesActivityHeader from './notes_activity_header.vue';\n\nexport default {\n name: 'NotesApp',\n components: {\n NotePreview,\n NotesActivityHeader,\n NoteableNote,\n NoteableDiscussion,\n SystemNote,\n CommentForm,\n PlaceholderNote,\n PlaceholderSystemNote,\n SkeletonLoadingContainer,\n DiscussionFilterNote,\n OrderedLayout,\n SidebarSubscription,\n DraftNote,\n TimelineEntryItem,\n AiSummary: () => import('ee_component/notes/components/ai_summary.vue'),\n },\n mixins: [glFeatureFlagsMixin(), InternalEvents.mixin()],\n provide() {\n return {\n summarizeClientSubscriptionId: uuidv4(),\n };\n },\n props: {\n noteableData: {\n type: Object,\n required: true,\n },\n notesData: {\n type: Object,\n required: true,\n },\n notesFilters: {\n type: Array,\n required: true,\n },\n notesFilterValue: {\n type: Number,\n default: undefined,\n required: false,\n },\n shouldShow: {\n type: Boolean,\n required: false,\n default: true,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n currentFilter: null,\n renderSkeleton: !this.shouldShow,\n aiLoading: null,\n isInitialEventTriggered: false,\n };\n },\n computed: {\n ...mapGetters([\n 'isNotesFetched',\n 'discussions',\n 'convertedDisscussionIds',\n 'getNotesDataByProp',\n 'isLoading',\n 'isFetching',\n 'commentsDisabled',\n 'getNoteableData',\n 'userCanReply',\n 'sortDirection',\n 'timelineEnabled',\n 'targetNoteHash',\n ]),\n sortDirDesc() {\n return this.sortDirection === constants.DESC;\n },\n noteableType() {\n return this.noteableData.noteableType;\n },\n previewNoteId() {\n if (!this.isLoading || !this.targetNoteHash?.startsWith('note_')) return null;\n return this.targetNoteHash.replace('note_', '');\n },\n allDiscussions() {\n let skeletonNotes = [];\n\n if (this.renderSkeleton || this.isLoading) {\n const prerenderedNotesCount = parseInt(this.notesData.prerenderedNotesCount, 10) || 0;\n\n skeletonNotes = new Array(prerenderedNotesCount).fill({\n isSkeletonNote: true,\n });\n\n if (\n this.previewNoteId &&\n !this.discussions.find((d) => d.notes[0].id === this.previewNoteId)\n ) {\n const previewNote = {\n id: this.previewNoteId,\n isPreviewNote: true,\n };\n skeletonNotes.splice(prerenderedNotesCount / 2, 0, previewNote);\n }\n }\n\n if (this.sortDirDesc) {\n return skeletonNotes.concat(this.discussions);\n }\n\n return this.discussions.concat(skeletonNotes);\n },\n canReply() {\n return this.userCanReply && !this.commentsDisabled && !this.timelineEnabled;\n },\n slotKeys() {\n return this.sortDirDesc ? ['form', 'comments'] : ['comments', 'form'];\n },\n isAppReady() {\n return !this.isLoading && !this.renderSkeleton && this.shouldShow;\n },\n },\n watch: {\n async isFetching() {\n if (!this.isFetching) {\n await this.$nextTick();\n await this.startTaskList();\n await this.checkLocationHash();\n }\n },\n shouldShow() {\n if (!this.isNotesFetched) {\n this.fetchNotes();\n }\n\n setTimeout(() => {\n this.renderSkeleton = !this.shouldShow;\n });\n },\n isAppReady: {\n handler(isReady) {\n if (!isReady) return;\n this.$nextTick(() => {\n window.mrTabs?.eventHub.$emit('NotesAppReady');\n });\n },\n immediate: true,\n },\n },\n mounted() {\n const { parentElement } = this.$el;\n if (parentElement && parentElement.classList.contains('js-vue-notes-event')) {\n parentElement.addEventListener('toggleAward', (event) => {\n const { awardName, noteId } = event.detail;\n this.toggleAward({ awardName, noteId });\n });\n }\n\n eventHub.$on('noteFormAddToReview', this.handleReviewTracking);\n eventHub.$on('noteFormStartReview', this.handleReviewTracking);\n\n window.addEventListener('hashchange', this.handleHashChanged);\n\n if (this.targetNoteHash && this.targetNoteHash.startsWith('note_')) {\n scrollToTargetOnResize();\n }\n\n eventHub.$on('notesApp.updateIssuableConfidentiality', this.setConfidentiality);\n Mousetrap.bind(keysFor(ISSUABLE_COMMENT_OR_REPLY), (e) => this.quoteReply(e));\n },\n updated() {\n this.$nextTick(() => {\n highlightCurrentUser(this.$el.querySelectorAll('.gfm-project_member'));\n });\n },\n beforeDestroy() {\n window.removeEventListener('hashchange', this.handleHashChanged);\n eventHub.$off('notesApp.updateIssuableConfidentiality', this.setConfidentiality);\n eventHub.$off('noteFormStartReview', this.handleReviewTracking);\n eventHub.$off('noteFormAddToReview', this.handleReviewTracking);\n Mousetrap.unbind(keysFor(ISSUABLE_COMMENT_OR_REPLY), this.quoteReply);\n },\n methods: {\n ...mapActions([\n 'toggleAward',\n 'setLastFetchedAt',\n 'setTargetNoteHash',\n 'toggleDiscussion',\n 'expandDiscussion',\n 'startTaskList',\n 'convertToDiscussion',\n 'setConfidentiality',\n 'fetchNotes',\n ]),\n getDiscussionInSelection() {\n const selection = window.getSelection();\n if (selection.rangeCount <= 0) return null;\n\n const el = selection.getRangeAt(0).startContainer;\n const node = el.nodeType === Node.TEXT_NODE ? el.parentNode : el;\n return node.closest('.js-noteable-discussion');\n },\n async quoteReply(e) {\n const discussionEl = this.getDiscussionInSelection();\n const text = await CopyAsGFM.selectionToGfm();\n\n // Prevent 'r' being written.\n if (e && typeof e.preventDefault === 'function') {\n e.preventDefault();\n }\n\n if (!discussionEl) {\n this.replyInMainEditor(text);\n } else {\n const instance = this.$refs.discussions.find(({ $el }) => $el === discussionEl);\n // prevent hotkey input from going into the form\n requestAnimationFrame(() => {\n instance.showReplyForm(text);\n });\n }\n },\n replyInMainEditor(text) {\n this.$refs.commentForm.append(text);\n },\n discussionIsIndividualNoteAndNotConverted(discussion) {\n return (\n discussion.individual_note &&\n !this.convertedDisscussionIds.includes(discussion.id) &&\n !this.hasDraft(discussion)\n );\n },\n handleHashChanged() {\n const noteId = this.checkLocationHash();\n\n if (noteId) {\n this.setTargetNoteHash(getLocationHash());\n }\n },\n checkLocationHash() {\n const hash = getLocationHash();\n const noteId = (hash && hash.startsWith('note_') && hash.replace(/^note_/, '')) ?? null;\n\n if (noteId) {\n const discussion = this.discussions.find((d) => d.notes.some(({ id }) => id === noteId));\n\n if (discussion) {\n this.expandDiscussion({ discussionId: discussion.id });\n }\n }\n\n return noteId;\n },\n startReplying(discussionId) {\n return this.convertToDiscussion(discussionId)\n .then(this.$nextTick)\n .then(() => eventHub.$emit('startReplying', discussionId));\n },\n setAiLoading(loading) {\n this.aiLoading = loading;\n },\n handleReviewTracking(event) {\n const types = {\n noteFormStartReview: 'merge_request_click_start_review_on_overview_tab',\n noteFormAddToReview: 'merge_request_click_add_to_review_on_overview_tab',\n };\n\n if (this.shouldShow && window.mrTabs && types[event.name]) {\n this.trackEvent(types[event.name]);\n }\n },\n hasDraft(discussion) {\n const autoSaveKey = getAutoSaveKeyFromDiscussion(discussion);\n return Boolean(getDraft(autoSaveKey));\n },\n },\n systemNote: constants.SYSTEM_NOTE,\n};\n</script>\n\n<template>\n <div v-show=\"shouldShow\" id=\"notes\">\n <sidebar-subscription :iid=\"noteableData.iid\" :noteable-data=\"noteableData\" />\n <notes-activity-header\n :notes-filters=\"notesFilters\"\n :notes-filter-value=\"notesFilterValue\"\n :ai-loading=\"aiLoading\"\n @set-ai-loading=\"setAiLoading\"\n />\n <ai-summary v-if=\"aiLoading !== null\" :ai-loading=\"aiLoading\" @set-ai-loading=\"setAiLoading\" />\n <ordered-layout :slot-keys=\"slotKeys\">\n <template #form>\n <comment-form\n v-if=\"!(commentsDisabled || timelineEnabled)\"\n ref=\"commentForm\"\n class=\"js-comment-form\"\n :noteable-type=\"noteableType\"\n />\n </template>\n <template #comments>\n <ul id=\"notes-list\" class=\"notes main-notes-list timeline\">\n <template v-for=\"discussion in allDiscussions\">\n <skeleton-loading-container\n v-if=\"discussion.isSkeletonNote\"\n :key=\"discussion.id\"\n class=\"note-skeleton\"\n />\n <timeline-entry-item\n v-else-if=\"discussion.isPreviewNote\"\n :key=\"discussion.id\"\n class=\"target note note-wrapper note-comment\"\n >\n <note-preview :note-id=\"previewNoteId\" />\n </timeline-entry-item>\n <timeline-entry-item v-else-if=\"discussion.isDraft\" :key=\"discussion.id\">\n <draft-note :draft=\"discussion\" />\n </timeline-entry-item>\n <template v-else-if=\"discussion.isPlaceholderNote\">\n <placeholder-system-note\n v-if=\"discussion.placeholderType === $options.systemNote\"\n :key=\"discussion.id\"\n :note=\"discussion.notes[0]\"\n />\n <placeholder-note v-else :key=\"discussion.id\" :note=\"discussion.notes[0]\" />\n </template>\n <template v-else-if=\"discussionIsIndividualNoteAndNotConverted(discussion)\">\n <system-note\n v-if=\"discussion.notes[0].system\"\n :key=\"discussion.id\"\n :note=\"discussion.notes[0]\"\n />\n <noteable-note\n v-else\n :key=\"discussion.id\"\n :note=\"discussion.notes[0]\"\n :show-reply-button=\"canReply\"\n @startReplying=\"startReplying(discussion.id)\"\n />\n </template>\n <noteable-discussion\n v-else\n ref=\"discussions\"\n :key=\"discussion.id\"\n class=\"js-noteable-discussion\"\n :discussion=\"discussion\"\n :render-diff-file=\"true\"\n is-overview-tab\n :help-page-path=\"helpPagePath\"\n />\n </template>\n <discussion-filter-note v-if=\"commentsDisabled\" />\n </ul>\n </template>\n </ordered-layout>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./notes_activity_header.vue?vue&type=template&id=519d8d30\"\nimport script from \"./notes_activity_header.vue?vue&type=script&lang=js\"\nexport * from \"./notes_activity_header.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('div',{staticClass:\"gl-flex gl-flex-col gl-justify-between gl-pb-3 gl-pt-5 sm:gl-flex-row sm:gl-items-center\"},[_c('h2',{staticClass:\"gl-m-0 gl-text-size-h1\"},[_vm._v(_vm._s(_vm.__('Activity')))]),_vm._v(\" \"),_c('div',{staticClass:\"gl-mt-3 gl-flex gl-w-full gl-gap-3 sm:gl-mt-0 sm:gl-w-auto\"},[(_vm.showAiActions)?_c('ai-summarize-notes',{attrs:{\"resource-global-id\":_vm.resourceGlobalId,\"loading\":_vm.aiLoading}}):_vm._e(),_vm._v(\" \"),(_vm.showTimelineViewToggle)?_c('timeline-toggle'):_vm._e(),_vm._v(\" \"),(_vm.mrFilter)?_c('mr-discussion-filter'):_c('discussion-filter',{attrs:{\"filters\":_vm.notesFilters,\"selected-value\":_vm.notesFilterValue}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./notes_app.vue?vue&type=template&id=7051cf56\"\nimport script from \"./notes_app.vue?vue&type=script&lang=js\"\nexport * from \"./notes_app.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 baseUniq = require('./_baseUniq');\n\n/**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\nfunction uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n}\n\nmodule.exports = uniq;\n","var SetCache = require('./_SetCache'),\n arrayIncludes = require('./_arrayIncludes'),\n arrayIncludesWith = require('./_arrayIncludesWith'),\n cacheHas = require('./_cacheHas'),\n createSet = require('./_createSet'),\n setToArray = require('./_setToArray');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\nfunction baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n}\n\nmodule.exports = baseUniq;\n","import { APPROVAL_VULNERABILITY_STATES, NEWLY_DETECTED } from '../rule/scan_filters/constants';\n\n// Value `newly_detected` was expanded and maps to both `new_needs_triage` and `new_dismissed`.\n// In order to avoid breaking changes, it is transformed to the new statuses to be able\n// to read policies containing `newly_detected` status.\n// https://gitlab.com/groups/gitlab-org/-/epics/6826#note_1341377224\nconst transformNewlyDetectedState = (states) => {\n if (states.includes(NEWLY_DETECTED)) {\n return Array.from(\n new Set([...states, ...Object.keys(APPROVAL_VULNERABILITY_STATES[NEWLY_DETECTED])]),\n );\n }\n return states;\n};\n\n/**\n * This function groups vulnerability states into their corresponding groups.\n * `newly_detected` state is transformed into `new_needs_triage` + `new_dismissed`.\n * @param {Array} states - List of vulnerability_states for a rule\n * @returns {Object} - Grouped states by state groups. Empty groups are omitted.\n */\nexport const groupSelectedVulnerabilityStates = (states) => {\n const transformedStates = transformNewlyDetectedState(states);\n\n return Object.entries(APPROVAL_VULNERABILITY_STATES).reduce(\n (selected, [vulnerabilityStatusGroup, vulnerabilityState]) => {\n const statesForGroup = transformedStates.filter((state) =>\n Object.keys(vulnerabilityState).includes(state),\n );\n if (statesForGroup.length) {\n return { ...selected, [vulnerabilityStatusGroup]: statesForGroup };\n }\n return selected;\n },\n {},\n );\n};\n\n/**\n * This function extends the provided states with the default ones.\n * If states are `[]` or `undefined`, they are treated as `[NEWLY_DETECTED]`.\n * If states are `null`, they are treated as `[]`.\n * @param {Array} states\n * @returns {Object} - Grouped states by state groups.\n */\nexport const groupVulnerabilityStatesWithDefaults = (states) => {\n if (states?.length === 0 || states === undefined) {\n return groupSelectedVulnerabilityStates([NEWLY_DETECTED]);\n }\n return groupSelectedVulnerabilityStates(states || []);\n};\n","import { isEmpty } from 'lodash';\nimport {\n AGE,\n ALLOW_DENY,\n ALLOWED,\n ATTRIBUTE,\n DENIED,\n FALSE_POSITIVE,\n FIX_AVAILABLE,\n NEWLY_DETECTED,\n PREVIOUSLY_EXISTING,\n STATUS,\n TYPE,\n} from '../rule/scan_filters/constants';\nimport { groupVulnerabilityStatesWithDefaults } from './vulnerability_states';\n\nexport const buildFiltersFromRule = (rule) => {\n const {\n vulnerability_age: vulnerabilityAge,\n vulnerability_states: vulnerabilityStates,\n vulnerability_attributes: attributes,\n } = rule || {};\n\n const vulnerabilityStateGroups = groupVulnerabilityStatesWithDefaults(vulnerabilityStates);\n const vulnerabilityAttributes = attributes || {};\n\n const filters = {\n [AGE]: !isEmpty(vulnerabilityAge),\n [NEWLY_DETECTED]:\n Boolean(vulnerabilityStateGroups[NEWLY_DETECTED]) || isEmpty(vulnerabilityStateGroups),\n [PREVIOUSLY_EXISTING]: Boolean(vulnerabilityStateGroups[PREVIOUSLY_EXISTING]),\n [FALSE_POSITIVE]: vulnerabilityAttributes[FALSE_POSITIVE] !== undefined,\n [FIX_AVAILABLE]: vulnerabilityAttributes[FIX_AVAILABLE] !== undefined,\n };\n filters[STATUS] = Boolean(filters[NEWLY_DETECTED] && filters[PREVIOUSLY_EXISTING]);\n filters[ATTRIBUTE] = Boolean(filters[FALSE_POSITIVE] && filters[FIX_AVAILABLE]);\n\n return filters;\n};\n\n/**\n * Build allow or deny list from a policy rule\n * @param rule\n * @returns {{[ALLOW_DENY]: boolean, [STATUS]: boolean}}\n */\nexport const buildFiltersFromLicenseRule = (rule) => {\n let { licenses = {} } = rule || {};\n const { license_types } = rule || {};\n\n licenses = licenses ?? {};\n\n return {\n [STATUS]: true,\n [TYPE]: Boolean(license_types),\n [ALLOW_DENY]: ALLOWED in licenses || DENIED in licenses,\n };\n};\n","import {\n BLOCK_BRANCH_MODIFICATION,\n BLOCK_GROUP_BRANCH_MODIFICATION,\n PREVENT_PUSHING_AND_FORCE_PUSHING,\n PREVENT_APPROVAL_BY_AUTHOR,\n PREVENT_APPROVAL_BY_COMMIT_AUTHOR,\n REMOVE_APPROVALS_WITH_NEW_COMMIT,\n REQUIRE_PASSWORD_TO_APPROVE,\n} from './settings';\n\nexport { createPolicyObject, fromYaml } from './from_yaml';\nexport { policyToYaml } from './to_yaml';\nexport * from './rules';\nexport * from './actions';\nexport * from './settings';\nexport * from './vulnerability_states';\nexport * from './filters';\n\n// Yaml for new policies\n\nconst DEFAULT_SETTINGS = `\n ${PREVENT_PUSHING_AND_FORCE_PUSHING}: true\n ${PREVENT_APPROVAL_BY_AUTHOR}: true\n ${PREVENT_APPROVAL_BY_COMMIT_AUTHOR}: true\n ${REMOVE_APPROVALS_WITH_NEW_COMMIT}: true\n ${REQUIRE_PASSWORD_TO_APPROVE}: false\n`;\n\nconst DEFAULT_PROJECT_SETTINGS = `approval_settings:\n ${BLOCK_BRANCH_MODIFICATION}: true\n`.concat(DEFAULT_SETTINGS);\n\nconst DEFAULT_GROUP_SETTINGS = `approval_settings:\n ${BLOCK_BRANCH_MODIFICATION}: true\n ${BLOCK_GROUP_BRANCH_MODIFICATION}: true\n`.concat(DEFAULT_SETTINGS);\n\nconst FALLBACK = `fallback_behavior:\n fail: closed\n`;\n\nexport const DEFAULT_SCAN_RESULT_POLICY = `type: approval_policy\nname: ''\ndescription: ''\nenabled: true\nrules:\n - type: ''\nactions:\n - type: require_approval\n approvals_required: 1\n - type: send_bot_message\n enabled: true\n`\n .concat(DEFAULT_PROJECT_SETTINGS)\n .concat(FALLBACK);\n\nexport const DEFAULT_SCAN_RESULT_POLICY_NEW_FORMAT = `approval_policy:\n- name: ''\n description: ''\n enabled: true\n rules:\n - type: ''\n actions:\n - type: require_approval\n approvals_required: 1\n - type: send_bot_message\n enabled: true\n approval_settings:\n ${BLOCK_BRANCH_MODIFICATION}: true\n ${PREVENT_PUSHING_AND_FORCE_PUSHING}: true\n ${PREVENT_APPROVAL_BY_AUTHOR}: true\n ${PREVENT_APPROVAL_BY_COMMIT_AUTHOR}: true\n ${REMOVE_APPROVALS_WITH_NEW_COMMIT}: true\n ${REQUIRE_PASSWORD_TO_APPROVE}: false\n fallback_behavior:\n fail: closed\n`;\n\nexport const DEFAULT_SCAN_RESULT_POLICY_WITH_SCOPE_WITH_GROUP_SETTINGS = `type: approval_policy\nname: ''\ndescription: ''\nenabled: true\npolicy_scope:\n projects:\n excluding: []\nrules:\n - type: ''\nactions:\n - type: require_approval\n approvals_required: 1\n - type: send_bot_message\n enabled: true\n`\n .concat(DEFAULT_GROUP_SETTINGS)\n .concat(FALLBACK);\n\nexport const DEFAULT_SCAN_RESULT_POLICY_WITH_SCOPE_WITH_GROUP_SETTINGS_NEW_FORMAT = `approval_policy:\n- name: ''\n description: ''\n enabled: true\n policy_scope:\n projects:\n excluding: []\n rules:\n - type: ''\n actions:\n - type: require_approval\n approvals_required: 1\n - type: send_bot_message\n enabled: true\n approval_settings:\n ${BLOCK_BRANCH_MODIFICATION}: true\n ${BLOCK_GROUP_BRANCH_MODIFICATION}: true\n ${PREVENT_PUSHING_AND_FORCE_PUSHING}: true\n ${PREVENT_APPROVAL_BY_AUTHOR}: true\n ${PREVENT_APPROVAL_BY_COMMIT_AUTHOR}: true\n ${REMOVE_APPROVALS_WITH_NEW_COMMIT}: true\n ${REQUIRE_PASSWORD_TO_APPROVE}: false\n fallback_behavior:\n fail: closed\n`;\n\nexport const getPolicyYaml = ({ isGroup, newYamlFormat = false }) => {\n const defaultPolicy = newYamlFormat\n ? DEFAULT_SCAN_RESULT_POLICY_NEW_FORMAT\n : DEFAULT_SCAN_RESULT_POLICY;\n const defaultPolicyWithScopeAndSettings = newYamlFormat\n ? DEFAULT_SCAN_RESULT_POLICY_WITH_SCOPE_WITH_GROUP_SETTINGS_NEW_FORMAT\n : DEFAULT_SCAN_RESULT_POLICY_WITH_SCOPE_WITH_GROUP_SETTINGS;\n\n if (isGroup) {\n return defaultPolicyWithScopeAndSettings;\n }\n\n return defaultPolicy;\n};\n","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction resolveYamlSet(data) {\n if (data === null) return true;\n\n var key, object = data;\n\n for (key in object) {\n if (_hasOwnProperty.call(object, key)) {\n if (object[key] !== null) return false;\n }\n }\n\n return true;\n}\n\nfunction constructYamlSet(data) {\n return data !== null ? data : {};\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:set', {\n kind: 'mapping',\n resolve: resolveYamlSet,\n construct: constructYamlSet\n});\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-editable-item',{ref:\"editable\",staticClass:\"block confidentiality\",attrs:{\"title\":_vm.__('Confidentiality'),\"tracking\":_vm.$options.tracking,\"loading\":_vm.isLoading,\"data-testid\":\"sidebar-confidentiality\"},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_c('div',[(!_vm.isLoading)?_c('sidebar-confidentiality-content',{class:{ 'gl-mt-3': !_vm.isClassicSidebar },attrs:{\"confidential\":_vm.confidential,\"issuable-type\":_vm.issuableType},on:{\"expandSidebar\":_vm.expandSidebar}}):_vm._e()],1)]},proxy:true},{key:\"default\",fn:function(){return [_c('sidebar-confidentiality-content',{attrs:{\"confidential\":_vm.confidential,\"issuable-type\":_vm.issuableType}}),_vm._v(\" \"),_c('sidebar-confidentiality-form',{attrs:{\"iid\":_vm.iid,\"full-path\":_vm.fullPath,\"confidential\":_vm.confidential,\"issuable-type\":_vm.issuableType},on:{\"closeForm\":_vm.closeForm}})]},proxy:true}])})\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!./sidebar_confidentiality_content.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!./sidebar_confidentiality_content.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlAlert, GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport { TYPE_EPIC, WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { confidentialityInfoText } from '~/vue_shared/constants';\n\nexport default {\n components: {\n GlIcon,\n GlAlert,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n confidential: {\n type: Boolean,\n required: true,\n },\n issuableType: {\n type: String,\n required: true,\n },\n },\n computed: {\n confidentialBodyText() {\n return confidentialityInfoText(\n this.issuableType === TYPE_EPIC ? WORKSPACE_GROUP : WORKSPACE_PROJECT,\n this.issuableType,\n );\n },\n confidentialIcon() {\n return this.confidential ? 'eye-slash' : 'eye';\n },\n tooltipLabel() {\n return this.confidential ? __('Confidential') : __('Not confidential');\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div\n v-gl-tooltip.viewport.left\n :title=\"tooltipLabel\"\n class=\"sidebar-collapsed-icon\"\n data-testid=\"sidebar-collapsed-icon\"\n @click=\"$emit('expandSidebar')\"\n >\n <gl-icon\n :size=\"16\"\n :name=\"confidentialIcon\"\n class=\"sidebar-item-icon gl-inline-block\"\n :class=\"{ 'is-active': confidential }\"\n />\n </div>\n <gl-icon\n :size=\"16\"\n :name=\"confidentialIcon\"\n class=\"sidebar-item-icon hide-collapsed gl-inline-block\"\n :class=\"{ 'is-active': confidential }\"\n />\n <span class=\"hide-collapsed\" data-testid=\"confidential-text\">\n {{ tooltipLabel }}\n <gl-alert\n v-if=\"confidential\"\n :show-icon=\"false\"\n :dismissible=\"false\"\n variant=\"warning\"\n class=\"gl-mt-3\"\n >\n {{ confidentialBodyText }}\n </gl-alert>\n </span>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_confidentiality_content.vue?vue&type=template&id=cc3f9314\"\nimport script from \"./sidebar_confidentiality_content.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_confidentiality_content.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('div',[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.tooltipLabel,\"data-testid\":\"sidebar-collapsed-icon\"},on:{\"click\":function($event){return _vm.$emit('expandSidebar')}}},[_c('gl-icon',{staticClass:\"sidebar-item-icon gl-inline-block\",class:{ 'is-active': _vm.confidential },attrs:{\"size\":16,\"name\":_vm.confidentialIcon}})],1),_vm._v(\" \"),_c('gl-icon',{staticClass:\"sidebar-item-icon hide-collapsed gl-inline-block\",class:{ 'is-active': _vm.confidential },attrs:{\"size\":16,\"name\":_vm.confidentialIcon}}),_vm._v(\" \"),_c('span',{staticClass:\"hide-collapsed\",attrs:{\"data-testid\":\"confidential-text\"}},[_vm._v(\"\\n \"+_vm._s(_vm.tooltipLabel)+\"\\n \"),(_vm.confidential)?_c('gl-alert',{staticClass:\"gl-mt-3\",attrs:{\"show-icon\":false,\"dismissible\":false,\"variant\":\"warning\"}},[_vm._v(\"\\n \"+_vm._s(_vm.confidentialBodyText)+\"\\n \")]):_vm._e()],1)],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!./sidebar_confidentiality_form.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!./sidebar_confidentiality_form.vue?vue&type=script&lang=js\"","<script>\nimport { GlSprintf, GlButton } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { TYPE_ISSUE, TYPE_TEST_CASE, issuableTypeText } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\nimport { confidentialityQueries } from '../../queries/constants';\n\nexport default {\n i18n: {\n confidentialityOnWarning: __(\n 'You are going to turn on confidentiality. Only %{context} members with %{strongStart}%{permissions}%{strongEnd} can view or be notified about this %{issuableType}.',\n ),\n confidentialityOffWarning: __(\n 'You are going to turn off the confidentiality. This means %{strongStart}everyone%{strongEnd} will be able to see%{commentText} this %{issuableType}.',\n ),\n },\n components: {\n GlSprintf,\n GlButton,\n },\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n confidential: {\n required: true,\n type: Boolean,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n loading: false,\n };\n },\n computed: {\n toggleButtonText() {\n if (this.loading) {\n return __('Applying');\n }\n return this.confidential ? __('Turn off') : __('Turn on');\n },\n warningMessage() {\n return this.confidential\n ? this.$options.i18n.confidentialityOffWarning\n : this.$options.i18n.confidentialityOnWarning;\n },\n isIssue() {\n return this.issuableType === TYPE_ISSUE;\n },\n isTestCase() {\n return this.issuableType === TYPE_TEST_CASE;\n },\n isIssueOrTestCase() {\n return this.isIssue || this.isTestCase;\n },\n context() {\n return this.isIssueOrTestCase ? __('project') : __('group');\n },\n workspacePath() {\n return this.isIssueOrTestCase\n ? {\n projectPath: this.fullPath,\n }\n : {\n groupPath: this.fullPath,\n };\n },\n permissions() {\n return this.isIssue\n ? __('at least the Planner role, the author, and assignees')\n : __('at least the Planner role');\n },\n issuableTypeText() {\n return issuableTypeText[this.issuableType];\n },\n commentText() {\n return this.isTestCase ? '' : __(' and leave a comment on');\n },\n },\n methods: {\n submitForm() {\n this.loading = true;\n this.$apollo\n .mutate({\n mutation: confidentialityQueries[this.issuableType].mutation,\n variables: {\n input: {\n ...this.workspacePath,\n iid: this.iid,\n confidential: !this.confidential,\n },\n },\n })\n .then(\n ({\n data: {\n issuableSetConfidential: { errors },\n },\n }) => {\n if (errors.length) {\n createAlert({\n message: errors[0],\n });\n } else {\n this.$emit('closeForm');\n }\n },\n )\n .catch(() => {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} confidentiality.'),\n {\n issuableType: this.issuableTypeText,\n },\n ),\n });\n })\n .finally(() => {\n this.loading = false;\n });\n },\n },\n};\n</script>\n\n<template>\n <div class=\"dropdown show\">\n <div class=\"dropdown-menu sidebar-item-warning-message\">\n <div>\n <p data-testid=\"warning-message\">\n <gl-sprintf :message=\"warningMessage\">\n <template #strong=\"{ content }\">\n <strong>\n <gl-sprintf :message=\"content\">\n <template #permissions>{{ permissions }}</template>\n </gl-sprintf>\n </strong>\n </template>\n <template #context>{{ context }}</template>\n <template #commentText>{{ commentText }}</template>\n <template #issuableType>{{ issuableTypeText }}</template>\n </gl-sprintf>\n </p>\n <div class=\"sidebar-item-warning-message-actions\">\n <gl-button class=\"gl-mr-3\" data-testid=\"confidential-cancel\" @click=\"$emit('closeForm')\">\n {{ __('Cancel') }}\n </gl-button>\n <gl-button\n category=\"secondary\"\n variant=\"confirm\"\n :disabled=\"loading\"\n :loading=\"loading\"\n data-testid=\"confidential-toggle\"\n @click.prevent=\"submitForm\"\n >\n {{ toggleButtonText }}\n </gl-button>\n </div>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_confidentiality_form.vue?vue&type=template&id=2980d1fb\"\nimport script from \"./sidebar_confidentiality_form.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_confidentiality_form.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('div',{staticClass:\"dropdown show\"},[_c('div',{staticClass:\"dropdown-menu sidebar-item-warning-message\"},[_c('div',[_c('p',{attrs:{\"data-testid\":\"warning-message\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.warningMessage},scopedSlots:_vm._u([{key:\"strong\",fn:function({ content }){return [_c('strong',[_c('gl-sprintf',{attrs:{\"message\":content},scopedSlots:_vm._u([{key:\"permissions\",fn:function(){return [_vm._v(_vm._s(_vm.permissions))]},proxy:true}],null,true)})],1)]}},{key:\"context\",fn:function(){return [_vm._v(_vm._s(_vm.context))]},proxy:true},{key:\"commentText\",fn:function(){return [_vm._v(_vm._s(_vm.commentText))]},proxy:true},{key:\"issuableType\",fn:function(){return [_vm._v(_vm._s(_vm.issuableTypeText))]},proxy:true}])})],1),_vm._v(\" \"),_c('div',{staticClass:\"sidebar-item-warning-message-actions\"},[_c('gl-button',{staticClass:\"gl-mr-3\",attrs:{\"data-testid\":\"confidential-cancel\"},on:{\"click\":function($event){return _vm.$emit('closeForm')}}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Cancel'))+\"\\n \")]),_vm._v(\" \"),_c('gl-button',{attrs:{\"category\":\"secondary\",\"variant\":\"confirm\",\"disabled\":_vm.loading,\"loading\":_vm.loading,\"data-testid\":\"confidential-toggle\"},on:{\"click\":function($event){$event.preventDefault();return _vm.submitForm.apply(null, arguments)}}},[_vm._v(\"\\n \"+_vm._s(_vm.toggleButtonText)+\"\\n \")])],1)])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport produce from 'immer';\nimport Vue from 'vue';\nimport { createAlert } from '~/alert';\nimport { __, sprintf } from '~/locale';\nimport { Tracking } from '../../constants';\nimport { confidentialityQueries } from '../../queries/constants';\nimport SidebarEditableItem from '../sidebar_editable_item.vue';\nimport SidebarConfidentialityContent from './sidebar_confidentiality_content.vue';\nimport SidebarConfidentialityForm from './sidebar_confidentiality_form.vue';\n\nexport const confidentialWidget = Vue.observable({\n setConfidentiality: null,\n});\n\nconst hideDropdownEvent = new CustomEvent('hiddenGlDropdown', {\n bubbles: true,\n});\n\nexport default {\n tracking: {\n event: Tracking.editEvent,\n label: Tracking.rightSidebarLabel,\n property: 'confidentiality',\n },\n components: {\n SidebarEditableItem,\n SidebarConfidentialityContent,\n SidebarConfidentialityForm,\n },\n inject: {\n isClassicSidebar: {\n default: false,\n },\n },\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n confidential: false,\n };\n },\n apollo: {\n confidential: {\n query() {\n return confidentialityQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.iid),\n };\n },\n update(data) {\n return data.workspace?.issuable?.confidential || false;\n },\n skip() {\n return !this.iid;\n },\n result({ data }) {\n if (!data) {\n return;\n }\n this.$emit('confidentialityUpdated', data.workspace?.issuable?.confidential);\n },\n error() {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} confidentiality.'),\n {\n issuableType: this.issuableType,\n },\n ),\n });\n },\n },\n },\n computed: {\n isLoading() {\n return this.$apollo.queries.confidential.loading;\n },\n },\n mounted() {\n confidentialWidget.setConfidentiality = this.setConfidentiality;\n },\n destroyed() {\n confidentialWidget.setConfidentiality = null;\n },\n methods: {\n closeForm() {\n this.$refs.editable.collapse();\n this.$el.dispatchEvent(hideDropdownEvent);\n this.$emit('closeForm');\n },\n // synchronizing the quick action with the sidebar widget\n // this is a temporary solution until we have confidentiality real-time updates\n setConfidentiality() {\n const { defaultClient: client } = this.$apollo.provider.clients;\n const sourceData = client.readQuery({\n query: confidentialityQueries[this.issuableType].query,\n variables: { fullPath: this.fullPath, iid: this.iid },\n });\n\n const data = produce(sourceData, (draftData) => {\n draftData.workspace.issuable.confidential = !this.confidential;\n });\n\n client.writeQuery({\n query: confidentialityQueries[this.issuableType].query,\n variables: { fullPath: this.fullPath, iid: this.iid },\n data,\n });\n },\n expandSidebar() {\n this.$refs.editable.expand();\n this.$emit('expandSidebar');\n },\n },\n};\n</script>\n\n<template>\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"__('Confidentiality')\"\n :tracking=\"$options.tracking\"\n :loading=\"isLoading\"\n class=\"block confidentiality\"\n data-testid=\"sidebar-confidentiality\"\n >\n <template #collapsed>\n <div>\n <sidebar-confidentiality-content\n v-if=\"!isLoading\"\n :confidential=\"confidential\"\n :issuable-type=\"issuableType\"\n :class=\"{ 'gl-mt-3': !isClassicSidebar }\"\n @expandSidebar=\"expandSidebar\"\n />\n </div>\n </template>\n <template #default>\n <sidebar-confidentiality-content :confidential=\"confidential\" :issuable-type=\"issuableType\" />\n <sidebar-confidentiality-form\n :iid=\"iid\"\n :full-path=\"fullPath\"\n :confidential=\"confidential\"\n :issuable-type=\"issuableType\"\n @closeForm=\"closeForm\"\n />\n </template>\n </sidebar-editable-item>\n</template>\n","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!./sidebar_confidentiality_widget.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!./sidebar_confidentiality_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_confidentiality_widget.vue?vue&type=template&id=0e1d964c\"\nimport script from \"./sidebar_confidentiality_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_confidentiality_widget.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","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlMerge(data) {\n return data === '<<' || data === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:merge', {\n kind: 'scalar',\n resolve: resolveYamlMerge\n});\n","import { normalizeHeaders } from '~/lib/utils/common_utils';\nimport axios from '~/lib/utils/axios_utils';\n\nexport default class MRWidgetService {\n constructor(endpoints) {\n this.endpoints = endpoints;\n\n this.apiApprovalsPath = endpoints.apiApprovalsPath;\n this.apiApprovePath = endpoints.apiApprovePath;\n this.apiUnapprovePath = endpoints.apiUnapprovePath;\n }\n\n merge(data) {\n return axios.post(this.endpoints.mergePath, data);\n }\n\n cancelAutomaticMerge() {\n return axios.post(this.endpoints.cancelAutoMergePath);\n }\n\n removeWIP() {\n return axios.post(this.endpoints.removeWIPPath);\n }\n\n removeSourceBranch() {\n return axios.delete(this.endpoints.sourceBranchPath);\n }\n\n fetchDeployments(targetParam) {\n return axios.get(this.endpoints.ciEnvironmentsStatusPath, {\n params: {\n environment_target: targetParam,\n },\n });\n }\n\n poll() {\n return axios.get(this.endpoints.mergeRequestBasicPath);\n }\n\n checkStatus() {\n // two endpoints are requested in order to get MR info:\n // one which is etag-cached and invalidated and another one which is not cached\n // the idea is to move all the fields to etag-cached endpoint and then perform only one request\n // https://gitlab.com/gitlab-org/gitlab-foss/issues/61559#note_188801390\n const getData = axios.get(this.endpoints.mergeRequestWidgetPath);\n const getCachedData = axios.get(this.endpoints.mergeRequestCachedWidgetPath);\n\n return axios\n .all([getData, getCachedData])\n .then(axios.spread((res, cachedRes) => ({ data: Object.assign(res.data, cachedRes.data) })));\n }\n\n fetchMergeActionsContent() {\n return axios.get(this.endpoints.mergeActionsContentPath);\n }\n\n rebase({ skipCi = false } = {}) {\n const path = `${this.endpoints.rebasePath}?skip_ci=${Boolean(skipCi)}`;\n return axios.post(path);\n }\n\n fetchApprovals() {\n return axios.get(this.apiApprovalsPath).then((res) => res.data);\n }\n\n approveMergeRequest() {\n return axios.post(this.apiApprovePath).then((res) => res.data);\n }\n\n unapproveMergeRequest() {\n return axios.post(this.apiUnapprovePath).then((res) => res.data);\n }\n\n static executeInlineAction(url) {\n return axios.post(url);\n }\n\n static fetchMetrics(metricsUrl) {\n return axios.get(`${metricsUrl}.json`);\n }\n\n static fetchInitialData() {\n return Promise.all([\n axios.get(window.gl.mrWidgetData.merge_request_cached_widget_path),\n axios.get(window.gl.mrWidgetData.merge_request_widget_path),\n ]).then(\n axios.spread((res, cachedRes) => ({\n data: Object.assign(res.data, cachedRes.data),\n headers: normalizeHeaders(res.headers),\n })),\n );\n }\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"diffGeneratedSubscription\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestDiffGenerated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"diffStatsSummary\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fileCount\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":220}};\n doc.loc.source = {\"body\":\"subscription diffGeneratedSubscription($issuableId: IssuableID!) {\\n mergeRequestDiffGenerated(issuableId: $issuableId) {\\n ... on MergeRequest {\\n id\\n diffStatsSummary {\\n fileCount\\n }\\n }\\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[\"diffGeneratedSubscription\"] = oneQuery(doc, \"diffGeneratedSubscription\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"js-issuable-move-block issuable-move-dropdown sidebar-move-issue-dropdown\"},[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"data-testid\":\"move-collapsed\",\"title\":_vm.dropdownButtonTitle},on:{\"click\":function($event){return _vm.$emit('toggle-collapse')}}},[_c('gl-icon',{attrs:{\"name\":\"arrow-right\"}})],1),_vm._v(\" \"),_c('gl-collapsible-listbox',{ref:\"dropdown\",attrs:{\"items\":_vm.projectsList,\"block\":true,\"multiple\":true,\"searchable\":true,\"searching\":_vm.isSearching,\"search-placeholder\":_vm.__('Search project'),\"no-results-text\":_vm.noResultsText,\"header-text\":_vm.dropdownButtonTitle},on:{\"hidden\":_vm.handleDropdownHide,\"shown\":_vm.triggerSearch,\"search\":_vm.fetchProjects,\"select\":_vm.handleProjectSelect},scopedSlots:_vm._u([{key:\"toggle\",fn:function(){return [_c('gl-button',{staticClass:\"js-sidebar-dropdown-toggle hide-collapsed gl-w-full\",attrs:{\"loading\":_vm.moveInProgress,\"size\":\"medium\",\"data-testid\":\"dropdown-button\",\"disabled\":_vm.moveInProgress || _vm.disabled}},[_vm._v(_vm._s(_vm.dropdownButtonTitle))])]},proxy:true},{key:\"footer\",fn:function(){return [_c('div',{staticClass:\"gl-p-3\",attrs:{\"data-testid\":\"footer\"}},[_c('gl-button',{staticClass:\"gl-w-full\",attrs:{\"category\":\"primary\",\"variant\":\"confirm\",\"disabled\":!Boolean(_vm.selectedProjects.length),\"data-testid\":\"dropdown-move-button\"},on:{\"click\":_vm.handleMoveClick}},[_vm._v(_vm._s(_vm.__('Move')))])],1)]},proxy:true}]),model:{value:(_vm.selectedProjects),callback:function ($$v) {_vm.selectedProjects=$$v},expression:\"selectedProjects\"}})],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!./issuable_move_dropdown.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!./issuable_move_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlIcon,\n GlButton,\n GlCollapsibleListbox,\n GlTooltipDirective as GlTooltip,\n} from '@gitlab/ui';\nimport { debounce } from 'lodash';\nimport { __ } from '~/locale';\nimport { DEFAULT_DEBOUNCE_AND_THROTTLE_MS } from '~/lib/utils/constants';\nimport axios from '~/lib/utils/axios_utils';\n\nexport default {\n components: {\n GlIcon,\n GlButton,\n GlCollapsibleListbox,\n },\n directives: {\n GlTooltip,\n },\n props: {\n projectsFetchPath: {\n type: String,\n required: true,\n },\n dropdownButtonTitle: {\n type: String,\n required: true,\n },\n dropdownHeaderTitle: {\n type: String,\n required: true,\n },\n moveInProgress: {\n type: Boolean,\n required: false,\n default: false,\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n projects: [],\n projectsList: [],\n selectedProjects: [],\n noResultsText: '',\n isSearching: false,\n };\n },\n mounted() {\n this.fetchProjects = debounce(this.fetchProjects, DEFAULT_DEBOUNCE_AND_THROTTLE_MS);\n },\n methods: {\n triggerSearch() {\n this.$refs.dropdown.search();\n },\n async fetchProjects(search = '') {\n this.isSearching = true;\n\n try {\n const { data } = await axios.get(this.projectsFetchPath, {\n params: {\n search,\n },\n });\n this.projects = data;\n this.projectsList = data.map((item) => ({\n value: item.id,\n text: item.name_with_namespace,\n }));\n\n if (!this.projectsList.length) {\n this.noResultsText = __('No matching results');\n }\n } catch (e) {\n this.noResultsText = __('Failed to load projects');\n } finally {\n this.isSearching = false;\n }\n },\n handleProjectSelect(items) {\n // hack: simulate a single select to prevent the dropdown from closing\n // todo: switch back to single select when https://gitlab.com/gitlab-org/gitlab-ui/-/issues/2363 is fixed\n this.selectedProjects = [items[items.length - 1]];\n },\n handleMoveClick() {\n this.$refs.dropdown.close();\n this.$emit(\n 'move-issuable',\n this.projects.find((item) => item.id === this.selectedProjects[0]),\n );\n },\n handleDropdownHide() {\n this.$emit('dropdown-close');\n },\n },\n};\n</script>\n\n<template>\n <div class=\"js-issuable-move-block issuable-move-dropdown sidebar-move-issue-dropdown\">\n <div\n v-gl-tooltip.left.viewport\n data-testid=\"move-collapsed\"\n :title=\"dropdownButtonTitle\"\n class=\"sidebar-collapsed-icon\"\n @click=\"$emit('toggle-collapse')\"\n >\n <gl-icon name=\"arrow-right\" />\n </div>\n <gl-collapsible-listbox\n ref=\"dropdown\"\n v-model=\"selectedProjects\"\n :items=\"projectsList\"\n :block=\"true\"\n :multiple=\"true\"\n :searchable=\"true\"\n :searching=\"isSearching\"\n :search-placeholder=\"__('Search project')\"\n :no-results-text=\"noResultsText\"\n :header-text=\"dropdownButtonTitle\"\n @hidden=\"handleDropdownHide\"\n @shown=\"triggerSearch\"\n @search=\"fetchProjects\"\n @select=\"handleProjectSelect\"\n >\n <template #toggle>\n <gl-button\n :loading=\"moveInProgress\"\n size=\"medium\"\n class=\"js-sidebar-dropdown-toggle hide-collapsed gl-w-full\"\n data-testid=\"dropdown-button\"\n :disabled=\"moveInProgress || disabled\"\n >{{ dropdownButtonTitle }}</gl-button\n >\n </template>\n <template #footer>\n <div data-testid=\"footer\" class=\"gl-p-3\">\n <gl-button\n category=\"primary\"\n variant=\"confirm\"\n :disabled=\"!Boolean(selectedProjects.length)\"\n class=\"gl-w-full\"\n data-testid=\"dropdown-move-button\"\n @click=\"handleMoveClick\"\n >{{ __('Move') }}</gl-button\n >\n </div>\n </template>\n </gl-collapsible-listbox>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./issuable_move_dropdown.vue?vue&type=template&id=23d44ad0\"\nimport script from \"./issuable_move_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_move_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","var baseInverter = require('./_baseInverter');\n\n/**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\nfunction createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n}\n\nmodule.exports = createInverter;\n","export var xhtml = \"http://www.w3.org/1999/xhtml\";\n\nexport default {\n svg: \"http://www.w3.org/2000/svg\",\n xhtml: xhtml,\n xlink: \"http://www.w3.org/1999/xlink\",\n xml: \"http://www.w3.org/XML/1998/namespace\",\n xmlns: \"http://www.w3.org/2000/xmlns/\"\n};\n","export const CLEAR_MODAL = 'CLEAR_MODAL';\n\nexport const SET_BRANCHES_ENDPOINT = 'SET_BRANCHES_ENDPOINT';\nexport const REQUEST_BRANCHES = 'REQUEST_BRANCHES';\nexport const RECEIVE_BRANCHES_SUCCESS = 'RECEIVE_BRANCHES_SUCCESS';\nexport const SET_BRANCH = 'SET_BRANCH';\nexport const SET_SELECTED_BRANCH = 'SET_SELECTED_BRANCH';\n\nexport const SET_SELECTED_PROJECT = 'SET_SELECTED_PROJECT';\n","import { createAlert } from '~/alert';\nimport axios from '~/lib/utils/axios_utils';\nimport { PROJECT_BRANCHES_ERROR } from '../constants';\nimport * as types from './mutation_types';\n\nexport const clearModal = ({ commit }) => {\n commit(types.CLEAR_MODAL);\n};\n\nexport const requestBranches = ({ commit }) => {\n commit(types.REQUEST_BRANCHES);\n};\n\nexport const setBranchesEndpoint = ({ commit }, endpoint) => {\n commit(types.SET_BRANCHES_ENDPOINT, endpoint);\n};\n\nexport const fetchBranches = ({ commit, dispatch, state }, query) => {\n dispatch('requestBranches');\n\n return axios\n .get(state.branchesEndpoint, {\n params: { search: query },\n })\n .then(({ data = [] }) => {\n commit(types.RECEIVE_BRANCHES_SUCCESS, data.Branches?.length ? data.Branches : data);\n })\n .catch(() => {\n createAlert({ message: PROJECT_BRANCHES_ERROR });\n });\n};\n\nexport const setBranch = ({ commit, dispatch }, branch) => {\n commit(types.SET_BRANCH, branch);\n dispatch('setSelectedBranch', branch);\n};\n\nexport const setSelectedBranch = ({ commit }, branch) => {\n commit(types.SET_SELECTED_BRANCH, branch);\n};\n\nexport const setSelectedProject = ({ commit, dispatch, state }, id) => {\n let { branchesEndpoint } = state;\n\n if (state.projects?.length) {\n branchesEndpoint = state.projects.find((p) => p.id === id).refsUrl;\n }\n\n commit(types.SET_SELECTED_PROJECT, id);\n dispatch('setBranchesEndpoint', branchesEndpoint);\n dispatch('fetchBranches');\n};\n","import { uniq, uniqBy } from 'lodash';\n\nexport const joinedBranches = (state) => {\n return uniq(state.branches).sort();\n};\n\nexport const sortedProjects = (state) => uniqBy(state.projects, 'id').sort();\n","import * as types from './mutation_types';\n\nexport default {\n [types.SET_BRANCHES_ENDPOINT](state, endpoint) {\n state.branchesEndpoint = endpoint;\n },\n\n [types.REQUEST_BRANCHES](state) {\n state.isFetching = true;\n },\n\n [types.RECEIVE_BRANCHES_SUCCESS](state, branches) {\n state.isFetching = false;\n state.branches = branches;\n state.branches.unshift(state.branch);\n },\n\n [types.CLEAR_MODAL](state) {\n state.branch = state.defaultBranch;\n },\n\n [types.SET_BRANCH](state, branch) {\n state.branch = branch;\n },\n\n [types.SET_SELECTED_BRANCH](state, branch) {\n state.selectedBranch = branch;\n },\n\n [types.SET_SELECTED_PROJECT](state, projectId) {\n state.targetProjectId = projectId;\n state.branch = state.defaultBranch;\n },\n};\n","import Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport Vuex from 'vuex';\nimport * as actions from './actions';\nimport * as getters from './getters';\nimport mutations from './mutations';\nimport state from './state';\n\nVue.use(Vuex);\n\nexport default (initialState = {}) =>\n new Vuex.Store({\n actions,\n mutations,\n getters,\n state: {\n ...state(),\n ...initialState,\n },\n });\n","export default () => ({\n endpoint: null,\n branchesEndpoint: null,\n isFetching: false,\n branches: [],\n projects: [],\n selectedBranch: '',\n pushCode: false,\n branchCollaboration: false,\n modalTitle: '',\n existingBranch: '',\n defaultBranch: '',\n branch: '',\n targetProjectId: '',\n targetProjectName: '',\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.tooltip),expression:\"tooltip\"},{name:\"gl-resize-observer\",rawName:\"v-gl-resize-observer\",value:(_vm.onResize),expression:\"onResize\"}],staticClass:\"gl-min-w-0\",class:_vm.classes},[_vm._t(\"default\")],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlTooltipDirective, GlResizeObserverDirective } from '@gitlab/ui';\nimport { isFunction, debounce } from 'lodash';\nimport { hasHorizontalOverflow } from '~/lib/utils/dom_utils';\n\nconst UPDATE_TOOLTIP_DEBOUNCED_WAIT_MS = 300;\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n GlResizeObserver: GlResizeObserverDirective,\n },\n props: {\n title: {\n type: String,\n required: false,\n default: '',\n },\n placement: {\n type: String,\n required: false,\n default: 'top',\n },\n boundary: {\n type: String,\n required: false,\n default: '',\n },\n truncateTarget: {\n type: [String, Function],\n required: false,\n default: '',\n },\n },\n data() {\n return {\n tooltipDisabled: true,\n };\n },\n computed: {\n classes() {\n if (this.tooltipDisabled) {\n return '';\n }\n return 'js-show-tooltip';\n },\n tooltip() {\n return {\n title: this.title,\n placement: this.placement,\n disabled: this.tooltipDisabled,\n // Only set the tooltip boundary if it's truthy\n ...(this.boundary && { boundary: this.boundary }),\n };\n },\n },\n watch: {\n title() {\n // Wait on $nextTick in case the slot width changes\n this.$nextTick(this.updateTooltip);\n },\n },\n created() {\n this.updateTooltipDebounced = debounce(this.updateTooltip, UPDATE_TOOLTIP_DEBOUNCED_WAIT_MS);\n },\n mounted() {\n this.updateTooltip();\n },\n methods: {\n selectTarget() {\n if (isFunction(this.truncateTarget)) {\n return this.truncateTarget(this.$el);\n }\n if (this.truncateTarget === 'child') {\n return this.$el.childNodes[0];\n }\n return this.$el;\n },\n updateTooltip() {\n this.tooltipDisabled = !hasHorizontalOverflow(this.selectTarget());\n },\n onResize() {\n this.updateTooltipDebounced();\n },\n },\n};\n</script>\n\n<template>\n <span v-gl-tooltip=\"tooltip\" v-gl-resize-observer=\"onResize\" :class=\"classes\" class=\"gl-min-w-0\">\n <slot></slot>\n </span>\n</template>\n","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!./tooltip_on_truncate.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!./tooltip_on_truncate.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./tooltip_on_truncate.vue?vue&type=template&id=50568281\"\nimport script from \"./tooltip_on_truncate.vue?vue&type=script&lang=js\"\nexport * from \"./tooltip_on_truncate.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 memoize from 'lodash/memoize';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst getObserver = memoize(options => new IntersectionObserver(entries => {\n entries.forEach(entry => {\n entry.target.$_gl_intersectionHandler(entry);\n });\n}, options || {}));\nvar script = {\n name: 'GlIntersectionObserver',\n props: {\n /**\n * Extra options to pass directly to the intersection observer API.\n */\n options: {\n type: Object,\n required: false,\n default: null\n }\n },\n mounted() {\n const observer = getObserver(this.options);\n this.$el.$_gl_intersectionHandler = entry => {\n /**\n * Emitted when the element's visibility changes\n */\n this.$emit('update', entry);\n if (entry.isIntersecting) {\n /**\n * Emitted when the element appears on the page\n */\n this.$emit('appear');\n } else {\n /**\n * Emitted when the element disappears from the page\n */\n this.$emit('disappear');\n }\n };\n this.$el.$_gl_intersectionObserver = observer;\n observer.observe(this.$el);\n },\n destroyed() {\n this.$el.$_gl_intersectionObserver.unobserve(this.$el);\n delete this.$el.$_gl_intersectionHandler;\n delete this.$el.$_gl_intersectionObserver;\n },\n // Expose getObserver method for tests\n getObserver\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('div',[_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","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"missingBranchQuery\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"sourceBranchExists\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":180}};\n doc.loc.source = {\"body\":\"query missingBranchQuery($projectPath: ID!, $iid: String!) {\\n project(fullPath: $projectPath) {\\n id\\n mergeRequest(iid: $iid) {\\n id\\n sourceBranchExists\\n }\\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[\"missingBranchQuery\"] = oneQuery(doc, \"missingBranchQuery\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',{staticClass:\"ml-sm-2 gl-w-full sm:gl-w-auto\",attrs:{\"loading\":_vm.isResolving},on:{\"click\":function($event){return _vm.$emit('onClick')}}},[_vm._v(\"\\n \"+_vm._s(_vm.buttonTitle)+\"\\n\")])\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!./discussion_resolve_button.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!./discussion_resolve_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\n\nexport default {\n name: 'ResolveDiscussionButton',\n components: {\n GlButton,\n },\n props: {\n isResolving: {\n type: Boolean,\n required: false,\n default: false,\n },\n buttonTitle: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <gl-button\n :loading=\"isResolving\"\n class=\"ml-sm-2 gl-w-full sm:gl-w-auto\"\n @click=\"$emit('onClick')\"\n >\n {{ buttonTitle }}\n </gl-button>\n</template>\n","import { render, staticRenderFns } from \"./discussion_resolve_button.vue?vue&type=template&id=f8c074dc\"\nimport script from \"./discussion_resolve_button.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_resolve_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { __, s__ } from '~/locale';\nimport { helpPagePath } from '~/helpers/help_page_helper';\n\nexport const DASHBOARD_TYPE_PROJECT = 'project';\nexport const DASHBOARD_TYPE_PIPELINE = 'pipeline';\nexport const DASHBOARD_TYPE_GROUP = 'group';\nexport const DASHBOARD_TYPE_INSTANCE = 'instance';\n\nexport const SEVERITY_LEVEL_CRITICAL = 'critical';\nexport const SEVERITY_LEVEL_HIGH = 'high';\nexport const SEVERITY_LEVEL_UNKNOWN = 'unknown';\nexport const SEVERITY_LEVEL_MEDIUM = 'medium';\nexport const SEVERITY_LEVEL_LOW = 'low';\nexport const SEVERITY_LEVEL_INFO = 'info';\n\nexport const SEVERITY_LEVELS = {\n [SEVERITY_LEVEL_CRITICAL]: s__('severity|Critical'),\n [SEVERITY_LEVEL_HIGH]: s__('severity|High'),\n [SEVERITY_LEVEL_MEDIUM]: s__('severity|Medium'),\n [SEVERITY_LEVEL_LOW]: s__('severity|Low'),\n [SEVERITY_LEVEL_INFO]: s__('severity|Info'),\n [SEVERITY_LEVEL_UNKNOWN]: s__('severity|Unknown'),\n};\n\nexport const SEVERITY_LEVELS_KEYS = Object.keys(SEVERITY_LEVELS);\n\n// The GraphQL type (`VulnerabilitySeverity`) for severities is an enum with uppercase values\nexport const SEVERITY_LEVELS_GRAPHQL = Object.keys(SEVERITY_LEVELS).map((k) => k.toUpperCase());\n\nexport const REPORT_TYPES_DEFAULT = {\n api_fuzzing: s__('ciReport|API Fuzzing'),\n container_scanning: s__('ciReport|Container Scanning'),\n coverage_fuzzing: s__('ciReport|Coverage Fuzzing'),\n dast: s__('ciReport|DAST'),\n dependency_scanning: s__('ciReport|Dependency Scanning'),\n sast: s__('ciReport|SAST'),\n secret_detection: s__('ciReport|Secret Detection'),\n};\n\nexport const REPORT_TYPES_DEFAULT_KEYS = Object.keys(REPORT_TYPES_DEFAULT);\n\nexport const REPORT_TYPES_CONTAINER_SCANNING_FOR_REGISTRY = {\n container_scanning_for_registry: s__('ciReport|Container Scanning for Registry'),\n};\n\nexport const REPORT_TYPES_WITH_CLUSTER_IMAGE = {\n ...REPORT_TYPES_DEFAULT,\n cluster_image_scanning: s__('ciReport|Cluster Image Scanning'),\n};\n\nexport const REPORT_TYPES_WITH_MANUALLY_ADDED = {\n ...REPORT_TYPES_DEFAULT,\n generic: s__('ciReport|Manually added'),\n};\n\nexport const REPORT_TYPES_ALL = {\n ...REPORT_TYPES_DEFAULT,\n ...REPORT_TYPES_WITH_CLUSTER_IMAGE,\n ...REPORT_TYPES_WITH_MANUALLY_ADDED,\n};\n\nexport const COLLAPSE_SECURITY_REPORTS_SUMMARY_LOCAL_STORAGE_KEY =\n 'hide_pipelines_security_reports_summary_details';\n\nexport const DEFAULT_SCANNER = 'GitLab';\nexport const SCANNER_ID_PREFIX = 'gid://gitlab/Vulnerabilities::Scanner/';\n\nexport const DOC_PATH_APPLICATION_SECURITY = helpPagePath('user/application_security/index');\nexport const DOC_PATH_VULNERABILITY_DETAILS = helpPagePath(\n 'user/application_security/vulnerabilities/index',\n);\nexport const DOC_PATH_VULNERABILITY_REPORT = helpPagePath(\n 'user/application_security/vulnerability_report/index',\n);\nexport const DOC_PATH_SECURITY_CONFIGURATION = helpPagePath(\n 'user/application_security/configuration/index',\n);\nexport const DOC_PATH_SECURITY_SCANNER_INTEGRATION_REPORT = helpPagePath(\n 'development/integrations/secure',\n { anchor: 'report' },\n);\nexport const DOC_PATH_SECURITY_SCANNER_INTEGRATION_RETENTION_PERIOD = helpPagePath(\n 'user/application_security/vulnerability_report/pipeline',\n { anchor: 'retention-period-for-findings' },\n);\n\nexport const DOC_PATH_PROJECT_SECURITY_DASHBOARD = helpPagePath(\n 'user/application_security/security_dashboard/index',\n { anchor: 'project-security-dashboard' },\n);\n\nexport const SEVERITY_GROUP_F = 'F';\nexport const SEVERITY_GROUP_D = 'D';\nexport const SEVERITY_GROUP_C = 'C';\nexport const SEVERITY_GROUP_B = 'B';\nexport const SEVERITY_GROUP_A = 'A';\n\nexport const SEVERITY_GROUPS = [\n {\n type: SEVERITY_GROUP_F,\n description: __('Projects with critical vulnerabilities'),\n warning: __('Critical vulnerabilities present'),\n severityLevels: [SEVERITY_LEVEL_CRITICAL],\n },\n {\n type: SEVERITY_GROUP_D,\n description: __('Projects with high or unknown vulnerabilities'),\n warning: __('High or unknown vulnerabilities present'),\n severityLevels: [SEVERITY_LEVEL_HIGH, SEVERITY_LEVEL_UNKNOWN],\n },\n {\n type: SEVERITY_GROUP_C,\n description: __('Projects with medium vulnerabilities'),\n warning: __('Medium vulnerabilities present'),\n severityLevels: [SEVERITY_LEVEL_MEDIUM],\n },\n {\n type: SEVERITY_GROUP_B,\n description: __('Projects with low vulnerabilities'),\n warning: __('Low vulnerabilities present'),\n severityLevels: [SEVERITY_LEVEL_LOW],\n },\n {\n type: SEVERITY_GROUP_A,\n description: __('Projects with no vulnerabilities and security scanning enabled'),\n warning: __('No vulnerabilities present'),\n severityLevels: [],\n },\n];\n\nexport const VULNERABILITY_DETAIL_CODE_FLOWS = 'VulnerabilityDetailCodeFlows';\n","import { uniqueId, isNumber } from 'lodash';\nimport { n__, s__ } from '~/locale';\nimport { GROUP_TYPE, ROLE_TYPE, USER_TYPE } from 'ee/security_orchestration/constants';\nimport { mapToListboxItems } from 'ee/security_orchestration/utils';\n\nexport const APPROVER_TYPE_DICT = {\n [GROUP_TYPE]: ['group_approvers', 'group_approvers_ids'],\n [ROLE_TYPE]: ['role_approvers'],\n [USER_TYPE]: ['user_approvers', 'user_approvers_ids'],\n};\n\nexport const ADD_APPROVER_LABEL = s__('SecurityOrchestration|Add new approver');\n\nexport const APPROVER_TYPE_LIST_ITEMS = [\n { text: s__('SecurityOrchestration|Roles'), value: ROLE_TYPE },\n { text: s__('SecurityOrchestration|Individual users'), value: USER_TYPE },\n { text: s__('SecurityOrchestration|Groups'), value: GROUP_TYPE },\n];\n\nconst mapIds = (approvers, namespaceType) =>\n approvers\n .filter((approver) => isNumber(approver) || approver.type === namespaceType)\n .map((item) => (isNumber(item) ? item : item.id));\n\nconst userIds = (approvers) => {\n return mapIds(approvers, USER_TYPE);\n};\n\nconst groupIds = (approvers) => {\n return mapIds(approvers, GROUP_TYPE);\n};\n\nexport const removeAvailableApproverType = (array, type) =>\n array.filter(({ value }) => value !== type);\n\n/*\n Convert approvers into yaml fields (user_approvers, users_approvers_ids) in relation to action.\n*/\nexport const createActionFromApprovers = ({ id, type, approvals_required }, approvers) => {\n const newAction = { id, type, approvals_required };\n\n if (approvers[USER_TYPE]) {\n newAction.user_approvers_ids = userIds(approvers[USER_TYPE]);\n }\n\n if (approvers[GROUP_TYPE]) {\n newAction.group_approvers_ids = groupIds(approvers[GROUP_TYPE]);\n }\n\n if (approvers[ROLE_TYPE]) {\n newAction.role_approvers = approvers[ROLE_TYPE];\n }\n\n return newAction;\n};\n\nexport const actionHasType = (action, type) => {\n return Object.keys(action).some((k) => APPROVER_TYPE_DICT[type].includes(k));\n};\n\n/*\n Check if users are present in approvers\n*/\nconst usersOutOfSync = (action, users) => {\n const usersIDs = action?.user_approvers_ids?.some(\n (id) => !users.find((approver) => (approver.id ? approver.id === id : approver === id)),\n );\n\n const usersNames =\n action?.user_approvers?.some(\n (userName) => !users.find((approver) => approver.username === userName),\n ) || false;\n const userLength =\n (action?.user_approvers?.length || 0) + (action?.user_approvers_ids?.length || 0);\n\n return usersIDs || usersNames || userLength !== users.length;\n};\n\n/*\n Check if groups are present in approvers\n*/\nconst groupsOutOfSync = (action, groups) => {\n const groupsIDs = action?.group_approvers_ids?.some(\n (id) => !groups.find((approver) => (approver.id ? approver.id === id : approver === id)),\n );\n const groupsPaths =\n action?.group_approvers?.some(\n (path) => !groups.find((approver) => approver.fullPath === path),\n ) || false;\n const groupLength =\n (action?.group_approvers?.length || 0) + (action?.group_approvers_ids?.length || 0);\n\n return groupsIDs || groupsPaths || groupLength !== groups.length;\n};\n\n/*\n Check if yaml is out of sync with available approvers\n*/\nexport const approversOutOfSync = (action, { user = [], group = [] }) => {\n return usersOutOfSync(action, user) || groupsOutOfSync(action, group);\n};\n\nexport const WARN_TEMPLATE = s__(\n 'SecurityOrchestration|%{requireStart}Generates a bot comment%{requireEnd} and selected users as the security consultant that developers can reach out for help.',\n);\n\nexport const WARN_TEMPLATE_HELP_TITLE = s__('SecurityOrchestration|Who is a consultant?');\n\nexport const WARN_TEMPLATE_HELP_DESCRIPTION = s__(\n 'SecurityOrchestration|A consultant will show up in the bot comment and developers should ask them for help if needed.',\n);\n\nexport const getDefaultHumanizedTemplate = (numOfApproversRequired) => {\n return n__(\n '%{requireStart}Require%{requireEnd} %{approvalsRequired} %{approvalStart}approval%{approvalEnd} from:',\n '%{requireStart}Require%{requireEnd} %{approvalsRequired} %{approvalStart}approvals%{approvalEnd} from:',\n numOfApproversRequired,\n );\n};\n\nexport const DEFAULT_APPROVER_DROPDOWN_TEXT = s__('SecurityOrchestration|Choose approver type');\n\nexport const REQUIRE_APPROVAL_TYPE = 'require_approval';\n\nexport const BOT_MESSAGE_TYPE = 'send_bot_message';\n\nexport const WARN_TYPE = 'warn';\n\nexport const buildApprovalAction = (approvalsRequired = 1) => {\n return {\n type: REQUIRE_APPROVAL_TYPE,\n approvals_required: approvalsRequired,\n id: uniqueId('action_'),\n };\n};\n\nexport const buildBotMessageAction = () => {\n return { type: BOT_MESSAGE_TYPE, enabled: true, id: uniqueId('action_') };\n};\n\nexport const buildWarnAction = () => {\n return [buildApprovalAction(0), buildBotMessageAction()];\n};\n\nexport const buildAction = (type) => {\n switch (type) {\n case REQUIRE_APPROVAL_TYPE:\n return buildApprovalAction();\n case WARN_TYPE:\n return buildWarnAction();\n case BOT_MESSAGE_TYPE:\n default:\n return buildBotMessageAction();\n }\n};\n\nexport const WARN_TYPE_TEXT = s__('SecurityOrchestration|Warn in merge request');\n\nexport const ACTION_OPTIONS = {\n [REQUIRE_APPROVAL_TYPE]: s__('SecurityOrchestration|Require Approvers'),\n [BOT_MESSAGE_TYPE]: s__('SecurityOrchestration|Send bot message'),\n};\n\nexport const ACTION_LISTBOX_ITEMS = () => {\n const options = {\n ...ACTION_OPTIONS,\n ...(gon.features?.securityPolicyApprovalWarnMode && { [WARN_TYPE]: WARN_TYPE_TEXT }),\n };\n\n return mapToListboxItems(options);\n};\n\nexport const DISABLED_BOT_MESSAGE_ACTION = { ...buildAction(BOT_MESSAGE_TYPE), enabled: false };\n","import { __ } from '~/locale';\n\nexport const COMPONENTS = {\n conflict: () => import('./conflicts.vue'),\n discussions_not_resolved: () => import('./unresolved_discussions.vue'),\n draft_status: () => import('./draft.vue'),\n merge_time: () => import('./merge_time.vue'),\n need_rebase: () => import('./rebase.vue'),\n default: () => import('./message.vue'),\n requested_changes: () =>\n import('ee_component/vue_merge_request_widget/components/checks/requested_changes.vue'),\n locked_paths: () =>\n import('ee_component/vue_merge_request_widget/components/checks/locked_paths.vue'),\n locked_lfs_files: () =>\n import('ee_component/vue_merge_request_widget/components/checks/locked_paths.vue'),\n not_approved: () =>\n import('ee_component/vue_merge_request_widget/components/checks/not_approved.vue'),\n security_policy_violations: () =>\n import(\n 'ee_component/vue_merge_request_widget/components/checks/security_policy_violations.vue'\n ),\n};\n\nexport const FAILURE_REASONS = {\n commits_status: __('Source branch exists and contains commits.'),\n ci_must_pass: __('Pipeline must succeed.'),\n conflict: __('Merge conflicts must be resolved.'),\n discussions_not_resolved: __('Unresolved discussions must be resolved.'),\n draft_status: __('Merge request must not be draft.'),\n not_open: __('Merge request must be open.'),\n need_rebase: __('Merge request must be rebased, because a fast-forward merge is not possible.'),\n not_approved: __('All required approvals must be given.'),\n merge_request_blocked: __('Merge request dependencies must be merged.'),\n status_checks_must_pass: __('Status checks must pass.'),\n jira_association_missing: __('Either the title or description must reference a Jira issue.'),\n requested_changes: __('The change requests must be completed or resolved.'),\n approvals_syncing: __('The merge request approvals are currently syncing.'),\n locked_paths: __('All paths must be unlocked'),\n locked_lfs_files: __('All LFS files must be unlocked.'),\n security_policy_violations: __('All policy rules must be satisfied.'),\n merge_time: __('Cannot merge until this date and time.'),\n};\n\nexport const ICON_NAMES = Object.freeze({\n failed: 'failed',\n inactive: 'neutral',\n success: 'success',\n warning: 'warning',\n});\n","import uniqueId from 'lodash/uniqueId';\nimport GlDisclosureDropdownItem from './disclosure_dropdown_item';\nimport { isGroup } from './utils';\nimport { DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS, DISCLOSURE_DROPDOWN_GROUP_NAME } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst BORDER_CLASSES = {\n [DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top]: 'gl-border-t gl-border-t-dropdown gl-pt-2 gl-mt-2',\n [DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.bottom]: 'gl-border-b gl-border-b-dropdown gl-pb-2 gl-mb-2'\n};\nvar script = {\n name: DISCLOSURE_DROPDOWN_GROUP_NAME,\n components: {\n GlDisclosureDropdownItem\n },\n props: {\n /**\n * Group of items\n */\n group: {\n type: Object,\n required: false,\n default: null,\n validator: isGroup\n },\n /**\n * If 'true', will set top border for the group\n * to separate from other groups. You can control\n * the border position using the `borderPosition`\n * property.\n */\n bordered: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Controls the position of the group's border. Valid\n * values are 'top' and 'bottom'.\n */\n borderPosition: {\n type: String,\n required: false,\n default: DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS.top,\n validator: value => Object.keys(DISCLOSURE_DROPDOWN_GROUP_BORDER_POSITIONS).includes(value)\n }\n },\n computed: {\n borderClass() {\n return this.bordered ? BORDER_CLASSES[this.borderPosition] : null;\n },\n showHeader() {\n var _this$group;\n return this.$scopedSlots['group-label'] || ((_this$group = this.group) === null || _this$group === void 0 ? void 0 : _this$group.name);\n },\n groupLabeledBy() {\n return this.showHeader ? this.nameId : null;\n }\n },\n created() {\n this.nameId = uniqueId('gl-disclosure-dropdown-group-');\n },\n methods: {\n handleAction(action) {\n this.$emit('action', action);\n },\n uniqueItemId() {\n return uniqueId(`disclosure-item-`);\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('li',{class:_vm.borderClass},[(_vm.showHeader)?_c('div',{staticClass:\"gl-py-2 gl-pl-4 gl-text-sm gl-font-bold gl-text-strong\",attrs:{\"id\":_vm.nameId,\"aria-hidden\":\"true\"}},[_vm._t(\"group-label\",function(){return [_vm._v(_vm._s(_vm.group.name))]})],2):_vm._e(),_vm._v(\" \"),_c('ul',{staticClass:\"gl-mb-0 gl-list-none gl-pl-0\",attrs:{\"aria-labelledby\":_vm.groupLabeledBy}},[_vm._t(\"default\",function(){return _vm._l((_vm.group.items),function(item){return _c('gl-disclosure-dropdown-item',{key:_vm.uniqueItemId(),attrs:{\"item\":item},on:{\"action\":_vm.handleAction},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_vm._t(\"list-item\",null,{\"item\":item})]},proxy:true}],null,true)})})})],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__;\nexport { BORDER_CLASSES };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('timeline-entry-item',{staticClass:\"note note-discussion\"},[_c('div',{staticClass:\"timeline-content\"},[_c('div',{staticClass:\"discussion js-discussion-container\",attrs:{\"data-discussion-id\":_vm.discussion.id,\"data-discussion-resolvable\":_vm.discussion.resolvable,\"data-discussion-resolved\":_vm.discussion.resolved,\"data-testid\":\"discussion-content\"}},[(_vm.shouldRenderDiffs)?_c('diff-discussion-header',{attrs:{\"discussion\":_vm.discussion}}):_vm._e(),_vm._v(\" \"),(!_vm.shouldHideDiscussionBody)?_c('div',{staticClass:\"discussion-body\"},[_c(_vm.wrapperComponent,_vm._b({tag:\"component\",staticClass:\"card discussion-wrapper\"},'component',_vm.wrapperComponentProps,false),[_c('discussion-notes',{attrs:{\"discussion\":_vm.discussion,\"diff-line\":_vm.diffLine,\"help-page-path\":_vm.helpPagePath,\"is-expanded\":_vm.isExpanded,\"line\":_vm.line,\"should-group-replies\":_vm.shouldGroupReplies,\"is-overview-tab\":_vm.isOverviewTab,\"should-scroll-to-note\":_vm.shouldScrollToNote},on:{\"startReplying\":_vm.showReplyForm},scopedSlots:_vm._u([{key:\"avatar-badge\",fn:function(){return [_vm._t(\"avatar-badge\")]},proxy:true},{key:\"footer\",fn:function({ showReplies }){return [(_vm.showDraft(_vm.discussion.reply_id))?_c('draft-note',{key:`draft_${_vm.discussion.id}`,attrs:{\"draft\":_vm.draftForDiscussion(_vm.discussion.reply_id),\"line\":_vm.line}}):(_vm.canShowReplyActions && showReplies)?_c('li',{staticClass:\"discussion-reply-holder clearfix gl-bg-subtle\",class:_vm.discussionHolderClass,attrs:{\"data-testid\":\"reply-wrapper\"}},[_c('div',{staticClass:\"flash-container !gl-mt-0 gl-mb-2\"}),_vm._v(\" \"),(!_vm.isReplying && _vm.userCanReply)?_c('discussion-actions',{attrs:{\"discussion\":_vm.discussion,\"is-resolving\":_vm.isResolving,\"resolve-button-title\":_vm.resolveButtonTitle,\"resolve-with-issue-path\":_vm.resolveWithIssuePath,\"should-show-jump-to-next-discussion\":_vm.shouldShowJumpToNextDiscussion},on:{\"showReplyForm\":_vm.showReplyForm,\"resolve\":_vm.resolveHandler}}):_vm._e(),_vm._v(\" \"),(_vm.isReplying)?_c('note-form',{ref:\"noteForm\",attrs:{\"discussion\":_vm.discussion,\"diff-file\":_vm.diffFile,\"line\":_vm.diffLine,\"save-button-title\":_vm.saveButtonTitle,\"autofocus\":!_vm.hasDraft,\"autosave-key\":_vm.autosaveKey},on:{\"handleFormUpdateAddToReview\":_vm.addReplyToReview,\"handleFormUpdate\":_vm.saveReply,\"cancelForm\":_vm.cancelReplyForm}}):_vm._e(),_vm._v(\" \"),(!_vm.isLoggedIn)?_c('note-signed-out-widget'):_vm._e()],1):_vm._e()]}}],null,true)})],1)],1):_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!./diff_discussion_header.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!./diff_discussion_header.vue?vue&type=script&lang=js\"","<script>\nimport { GlAvatar, GlAvatarLink } from '@gitlab/ui';\nimport { escape } from 'lodash';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { truncateSha } from '~/lib/utils/text_utility';\nimport { s__, __, sprintf } from '~/locale';\nimport { FILE_DIFF_POSITION_TYPE } from '~/diffs/constants';\nimport NoteEditedText from './note_edited_text.vue';\nimport NoteHeader from './note_header.vue';\nimport ToggleRepliesWidget from './toggle_replies_widget.vue';\n\nexport default {\n name: 'DiffDiscussionHeader',\n components: {\n GlAvatar,\n GlAvatarLink,\n NoteEditedText,\n NoteHeader,\n ToggleRepliesWidget,\n },\n directives: {\n SafeHtml,\n },\n props: {\n discussion: {\n type: Object,\n required: true,\n },\n },\n computed: {\n notes() {\n return this.discussion.notes;\n },\n firstNote() {\n return this.notes[0];\n },\n lastNote() {\n return this.notes[this.notes.length - 1];\n },\n author() {\n return this.firstNote.author;\n },\n resolvedText() {\n return this.discussion.resolved_by_push ? __('Automatically resolved') : __('Resolved');\n },\n lastUpdatedBy() {\n return this.notes.length > 1 ? this.lastNote.author : null;\n },\n lastUpdatedAt() {\n return this.notes.length > 1 ? this.lastNote.created_at : null;\n },\n headerText() {\n const linkStart = `<a href=\"${escape(this.discussion.discussion_path)}\">`;\n const linkEnd = '</a>';\n\n const { commit_id: commitId } = this.discussion;\n let commitDisplay = commitId;\n\n if (commitId) {\n commitDisplay = `<span class=\"commit-sha\">${truncateSha(commitId)}</span>`;\n }\n\n const {\n for_commit: isForCommit,\n diff_discussion: isDiffDiscussion,\n active: isActive,\n position,\n } = this.discussion;\n\n let text = s__('MergeRequests|started a thread');\n if (isForCommit) {\n text = s__(\n 'MergeRequests|started a thread on commit %{linkStart}%{commitDisplay}%{linkEnd}',\n );\n } else if (isDiffDiscussion && commitId) {\n text = isActive\n ? s__('MergeRequests|started a thread on commit %{linkStart}%{commitDisplay}%{linkEnd}')\n : s__(\n 'MergeRequests|started a thread on an outdated change in commit %{linkStart}%{commitDisplay}%{linkEnd}',\n );\n } else if (isDiffDiscussion && position?.position_type === FILE_DIFF_POSITION_TYPE) {\n text = isActive\n ? s__('MergeRequests|started a thread on %{linkStart}a file%{linkEnd}')\n : s__('MergeRequests|started a thread on %{linkStart}an old version of a file%{linkEnd}');\n } else if (isDiffDiscussion) {\n text = isActive\n ? s__('MergeRequests|started a thread on %{linkStart}the diff%{linkEnd}')\n : s__(\n 'MergeRequests|started a thread on %{linkStart}an old version of the diff%{linkEnd}',\n );\n }\n\n return sprintf(text, { commitDisplay, linkStart, linkEnd }, false);\n },\n toggleClass() {\n return this.discussion.expanded ? 'expanded' : 'collapsed';\n },\n replies() {\n return this.notes.filter((note) => !note.system);\n },\n },\n methods: {\n ...mapActions(['toggleDiscussion']),\n toggleDiscussionHandler() {\n this.toggleDiscussion({ discussionId: this.discussion.id });\n },\n },\n};\n</script>\n\n<template>\n <div class=\"discussion-header gl-flex gl-items-center\">\n <div v-once class=\"timeline-avatar gl-shrink-0 gl-self-start\">\n <gl-avatar-link\n v-if=\"author\"\n :href=\"author.path\"\n :data-user-id=\"author.id\"\n :data-username=\"author.username\"\n class=\"js-user-link\"\n >\n <gl-avatar :src=\"author.avatar_url\" :alt=\"author.name\" :size=\"32\" />\n </gl-avatar-link>\n </div>\n <div class=\"timeline-content gl-ml-3 gl-w-full\" :class=\"toggleClass\">\n <note-header :author=\"author\" :created-at=\"firstNote.created_at\" :note-id=\"firstNote.id\">\n <span v-safe-html=\"headerText\"></span>\n </note-header>\n <note-edited-text\n v-if=\"discussion.resolved\"\n :edited-at=\"discussion.resolved_at\"\n :edited-by=\"discussion.resolved_by\"\n :action-text=\"resolvedText\"\n class-name=\"discussion-headline-light js-discussion-headline gl-mt-1 gl-pl-3\"\n />\n <toggle-replies-widget\n :collapsed=\"!discussion.expanded\"\n :replies=\"replies\"\n class=\"gl-border-t -gl-mx-3 -gl-mb-3 gl-mt-4 !gl-border-x-0 !gl-border-b-0 gl-border-t-subtle dark:gl-border-t-section\"\n @toggle=\"toggleDiscussionHandler\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./diff_discussion_header.vue?vue&type=template&id=3bf75bc7\"\nimport script from \"./diff_discussion_header.vue?vue&type=script&lang=js\"\nexport * from \"./diff_discussion_header.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('div',{staticClass:\"discussion-header gl-flex gl-items-center\"},[_vm._m(0),_vm._v(\" \"),_c('div',{staticClass:\"timeline-content gl-ml-3 gl-w-full\",class:_vm.toggleClass},[_c('note-header',{attrs:{\"author\":_vm.author,\"created-at\":_vm.firstNote.created_at,\"note-id\":_vm.firstNote.id}},[_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.headerText),expression:\"headerText\"}]})]),_vm._v(\" \"),(_vm.discussion.resolved)?_c('note-edited-text',{attrs:{\"edited-at\":_vm.discussion.resolved_at,\"edited-by\":_vm.discussion.resolved_by,\"action-text\":_vm.resolvedText,\"class-name\":\"discussion-headline-light js-discussion-headline gl-mt-1 gl-pl-3\"}}):_vm._e(),_vm._v(\" \"),_c('toggle-replies-widget',{staticClass:\"gl-border-t -gl-mx-3 -gl-mb-3 gl-mt-4 !gl-border-x-0 !gl-border-b-0 gl-border-t-subtle dark:gl-border-t-section\",attrs:{\"collapsed\":!_vm.discussion.expanded,\"replies\":_vm.replies},on:{\"toggle\":_vm.toggleDiscussionHandler}})],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"timeline-avatar gl-shrink-0 gl-self-start\"},[(_vm.author)?_c('gl-avatar-link',{staticClass:\"js-user-link\",attrs:{\"href\":_vm.author.path,\"data-user-id\":_vm.author.id,\"data-username\":_vm.author.username}},[_c('gl-avatar',{attrs:{\"src\":_vm.author.avatar_url,\"alt\":_vm.author.name,\"size\":32}})],1):_vm._e()],1)\n}]\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlSkeletonLoader } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapState, mapActions } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport DiffFileHeader from '~/diffs/components/diff_file_header.vue';\nimport ImageDiffOverlay from '~/diffs/components/image_diff_overlay.vue';\nimport { getDiffMode } from '~/diffs/store/utils';\nimport { diffViewerModes } from '~/ide/constants';\nimport DiffViewer from '~/vue_shared/components/diff_viewer/diff_viewer.vue';\nimport { isCollapsed } from '~/diffs/utils/diff_file';\nimport { FILE_DIFF_POSITION_TYPE, IMAGE_DIFF_POSITION_TYPE } from '~/diffs/constants';\n\nconst FIRST_CHAR_REGEX = /^(\\+|-| )/;\n\nexport default {\n components: {\n DiffFileHeader,\n GlSkeletonLoader,\n DiffViewer,\n ImageDiffOverlay,\n GlButton,\n },\n directives: {\n SafeHtml,\n },\n props: {\n discussion: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n error: false,\n };\n },\n computed: {\n ...mapState({\n projectPath: (state) => state.diffs.projectPath,\n }),\n diffMode() {\n return getDiffMode(this.discussion.diff_file);\n },\n diffViewerMode() {\n return this.discussion.diff_file?.viewer.name;\n },\n fileDiffRefs() {\n return this.discussion.diff_file.diff_refs;\n },\n headSha() {\n return (this.fileDiffRefs ? this.fileDiffRefs.head_sha : this.discussion.commit_id) || '';\n },\n baseSha() {\n return (this.fileDiffRefs ? this.fileDiffRefs.base_sha : this.discussion.commit_id) || '';\n },\n isTextFile() {\n return this.diffViewerMode === diffViewerModes.text;\n },\n hasTruncatedDiffLines() {\n return (\n this.discussion.truncated_diff_lines && this.discussion.truncated_diff_lines.length !== 0\n );\n },\n isCollapsed() {\n return isCollapsed(this.discussion.diff_file);\n },\n positionType() {\n return this.discussion.position?.position_type;\n },\n isFileDiscussion() {\n if (!this.discussion.diff_file) {\n return (\n this.discussion.original_position.position_type === IMAGE_DIFF_POSITION_TYPE ||\n this.discussion.original_position.position_type === FILE_DIFF_POSITION_TYPE\n );\n }\n\n return this.positionType === FILE_DIFF_POSITION_TYPE;\n },\n showHeader() {\n if (this.discussion.diff_file) return true;\n\n return (\n this.discussion.original_position.position_type === FILE_DIFF_POSITION_TYPE ||\n this.discussion.original_position.position_type === IMAGE_DIFF_POSITION_TYPE\n );\n },\n backfilledDiffFile() {\n /*\n * https://gitlab.com/gitlab-com/gl-infra/production/-/issues/19118\n *\n * For the vast majority of cases, this should just be discussion.diff_file,\n * but due to that defect, there are potentially some file discussions that cannot\n * be rendered because there is no diff file attached\n *\n * This allows the header to display (sans file mode change) to roughly simulate\n * having an actual diff file.\n */\n return (\n this.discussion.diff_file || {\n file_path: this.discussion.original_position.new_path,\n }\n );\n },\n },\n mounted() {\n if (this.isTextFile && !this.hasTruncatedDiffLines) {\n this.fetchDiff();\n }\n },\n methods: {\n ...mapActions(['fetchDiscussionDiffLines']),\n fetchDiff() {\n this.error = false;\n this.fetchDiscussionDiffLines(this.discussion)\n .then(this.highlight)\n .catch(() => {\n this.error = true;\n });\n },\n trimChar(line) {\n return line.replace(FIRST_CHAR_REGEX, '');\n },\n },\n userColorSchemeClass: window.gon.user_color_scheme,\n};\n</script>\n\n<template>\n <div :class=\"{ 'text-file': isTextFile }\" class=\"diff-file file-holder\">\n <diff-file-header\n v-if=\"showHeader\"\n :discussion-path=\"discussion.discussion_path\"\n :diff-file=\"backfilledDiffFile\"\n :can-current-user-fork=\"false\"\n class=\"gl-border gl-border-section\"\n :expanded=\"!isCollapsed\"\n />\n <div v-if=\"isTextFile\" class=\"diff-content\">\n <table class=\"code js-syntax-highlight\" :class=\"$options.userColorSchemeClass\">\n <template v-if=\"!isFileDiscussion\">\n <template v-if=\"hasTruncatedDiffLines\">\n <tr\n v-for=\"line in discussion.truncated_diff_lines\"\n v-once\n :key=\"line.line_code\"\n class=\"line_holder\"\n >\n <td :class=\"line.type\" class=\"diff-line-num old_line\">{{ line.old_line }}</td>\n <td :class=\"line.type\" class=\"diff-line-num new_line\">{{ line.new_line }}</td>\n <td\n v-safe-html=\"trimChar(line.rich_text)\"\n :class=\"line.type\"\n class=\"line_content\"\n ></td>\n </tr>\n </template>\n <tr v-if=\"!hasTruncatedDiffLines\" class=\"line_holder line-holder-placeholder\">\n <td class=\"old_line diff-line-num\"></td>\n <td class=\"new_line diff-line-num\"></td>\n <td v-if=\"error\" class=\"js-error-lazy-load-diff diff-loading-error-block\">\n {{ __('Unable to load the diff') }}\n <gl-button\n class=\"js-toggle-lazy-diff-retry-button gl-font-regular\"\n @click=\"fetchDiff\"\n >\n {{ __('Try again') }}\n </gl-button>\n </td>\n <td v-else class=\"line_content js-success-lazy-load\">\n <span></span>\n <gl-skeleton-loader />\n <span></span>\n </td>\n </tr>\n </template>\n <tr class=\"notes_holder\">\n <td :class=\"{ '!gl-border-t-0': isFileDiscussion }\" class=\"notes-content\" colspan=\"3\">\n <slot></slot>\n </td>\n </tr>\n </table>\n </div>\n <div v-else class=\"diff-content\">\n <diff-viewer\n v-if=\"!isFileDiscussion\"\n :diff-file=\"discussion.diff_file\"\n :diff-mode=\"diffMode\"\n :diff-viewer-mode=\"diffViewerMode\"\n :new-path=\"discussion.diff_file.new_path\"\n :new-sha=\"headSha\"\n :old-path=\"discussion.diff_file.old_path\"\n :old-sha=\"baseSha\"\n :file-hash=\"discussion.diff_file.file_hash\"\n :project-path=\"projectPath\"\n >\n <template #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <image-diff-overlay\n v-if=\"renderedWidth\"\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n :discussions=\"discussion\"\n :file-hash=\"discussion.diff_file.file_hash\"\n :show-comment-icon=\"true\"\n :should-toggle-discussion=\"false\"\n badge-class=\"image-comment-badge gl-text-purple-500 gl-bg-white gl-rounded-full gl-border-white gl-border-1 gl-border-solid gl-pointer-events-none gl-shadow-md\"\n />\n </template>\n </diff-viewer>\n <slot></slot>\n </div>\n </div>\n</template>\n","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!./diff_with_note.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!./diff_with_note.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./diff_with_note.vue?vue&type=template&id=22f33285\"\nimport script from \"./diff_with_note.vue?vue&type=script&lang=js\"\nexport * from \"./diff_with_note.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('div',{staticClass:\"diff-file file-holder\",class:{ 'text-file': _vm.isTextFile }},[(_vm.showHeader)?_c('diff-file-header',{staticClass:\"gl-border gl-border-section\",attrs:{\"discussion-path\":_vm.discussion.discussion_path,\"diff-file\":_vm.backfilledDiffFile,\"can-current-user-fork\":false,\"expanded\":!_vm.isCollapsed}}):_vm._e(),_vm._v(\" \"),(_vm.isTextFile)?_c('div',{staticClass:\"diff-content\"},[_c('table',{staticClass:\"code js-syntax-highlight\",class:_vm.$options.userColorSchemeClass},[(!_vm.isFileDiscussion)?[(_vm.hasTruncatedDiffLines)?_vm._m(0):_vm._e(),_vm._v(\" \"),(!_vm.hasTruncatedDiffLines)?_c('tr',{staticClass:\"line_holder line-holder-placeholder\"},[_c('td',{staticClass:\"old_line diff-line-num\"}),_vm._v(\" \"),_c('td',{staticClass:\"new_line diff-line-num\"}),_vm._v(\" \"),(_vm.error)?_c('td',{staticClass:\"js-error-lazy-load-diff diff-loading-error-block\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Unable to load the diff'))+\"\\n \"),_c('gl-button',{staticClass:\"js-toggle-lazy-diff-retry-button gl-font-regular\",on:{\"click\":_vm.fetchDiff}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Try again'))+\"\\n \")])],1):_c('td',{staticClass:\"line_content js-success-lazy-load\"},[_c('span'),_vm._v(\" \"),_c('gl-skeleton-loader'),_vm._v(\" \"),_c('span')],1)]):_vm._e()]:_vm._e(),_vm._v(\" \"),_c('tr',{staticClass:\"notes_holder\"},[_c('td',{staticClass:\"notes-content\",class:{ '!gl-border-t-0': _vm.isFileDiscussion },attrs:{\"colspan\":\"3\"}},[_vm._t(\"default\")],2)])],2)]):_c('div',{staticClass:\"diff-content\"},[(!_vm.isFileDiscussion)?_c('diff-viewer',{attrs:{\"diff-file\":_vm.discussion.diff_file,\"diff-mode\":_vm.diffMode,\"diff-viewer-mode\":_vm.diffViewerMode,\"new-path\":_vm.discussion.diff_file.new_path,\"new-sha\":_vm.headSha,\"old-path\":_vm.discussion.diff_file.old_path,\"old-sha\":_vm.baseSha,\"file-hash\":_vm.discussion.diff_file.file_hash,\"project-path\":_vm.projectPath},scopedSlots:_vm._u([{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [(renderedWidth)?_c('image-diff-overlay',{attrs:{\"rendered-width\":renderedWidth,\"rendered-height\":renderedHeight,\"discussions\":_vm.discussion,\"file-hash\":_vm.discussion.diff_file.file_hash,\"show-comment-icon\":true,\"should-toggle-discussion\":false,\"badge-class\":\"image-comment-badge gl-text-purple-500 gl-bg-white gl-rounded-full gl-border-white gl-border-1 gl-border-solid gl-pointer-events-none gl-shadow-md\"}}):_vm._e()]}}],null,false,1973996370)}):_vm._e(),_vm._v(\" \"),_vm._t(\"default\")],2)],1)\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _vm._l((_vm.discussion.truncated_diff_lines),function(line){return _c('tr',{key:line.line_code,staticClass:\"line_holder\"},[_c('td',{staticClass:\"diff-line-num old_line\",class:line.type},[_vm._v(_vm._s(line.old_line))]),_vm._v(\" \"),_c('td',{staticClass:\"diff-line-num new_line\",class:line.type},[_vm._v(_vm._s(line.new_line))]),_vm._v(\" \"),_c('td',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.trimChar(line.rich_text)),expression:\"trimChar(line.rich_text)\"}],staticClass:\"line_content\",class:line.type})])})\n}]\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!./discussion_resolve_with_issue_button.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!./discussion_resolve_with_issue_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlButton } from '@gitlab/ui';\nimport { s__ } from '~/locale';\n\nexport default {\n i18n: {\n buttonLabel: s__('MergeRequests|Create issue to resolve thread'),\n },\n name: 'ResolveWithIssueButton',\n components: {\n GlButton,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n url: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"btn-group\" role=\"group\">\n <gl-button\n v-gl-tooltip\n :href=\"url\"\n :title=\"$options.i18n.buttonLabel\"\n :aria-label=\"$options.i18n.buttonLabel\"\n class=\"new-issue-for-discussion discussion-create-issue-btn gl-w-full sm:gl-w-auto\"\n icon=\"issue-new\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./discussion_resolve_with_issue_button.vue?vue&type=template&id=444b6ab3\"\nimport script from \"./discussion_resolve_with_issue_button.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_resolve_with_issue_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"btn-group\",attrs:{\"role\":\"group\"}},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"new-issue-for-discussion discussion-create-issue-btn gl-w-full sm:gl-w-auto\",attrs:{\"href\":_vm.url,\"title\":_vm.$options.i18n.buttonLabel,\"aria-label\":_vm.$options.i18n.buttonLabel,\"icon\":\"issue-new\"}})],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!./discussion_actions.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!./discussion_actions.vue?vue&type=script&lang=js\"","<script>\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport DiscussionReplyPlaceholder from './discussion_reply_placeholder.vue';\nimport ResolveDiscussionButton from './discussion_resolve_button.vue';\nimport ResolveWithIssueButton from './discussion_resolve_with_issue_button.vue';\n\nexport default {\n name: 'DiscussionActions',\n components: {\n DiscussionReplyPlaceholder,\n ResolveDiscussionButton,\n ResolveWithIssueButton,\n },\n mixins: [glFeatureFlagsMixin()],\n props: {\n discussion: {\n type: Object,\n required: true,\n },\n isResolving: {\n type: Boolean,\n required: true,\n },\n resolveButtonTitle: {\n type: String,\n required: true,\n },\n resolveWithIssuePath: {\n type: String,\n required: false,\n default: '',\n },\n shouldShowJumpToNextDiscussion: {\n type: Boolean,\n required: true,\n },\n },\n computed: {\n resolvableNotes() {\n return this.discussion.notes.filter((x) => x.resolvable);\n },\n userCanResolveDiscussion() {\n return this.resolvableNotes.every((note) => note.current_user?.can_resolve_discussion);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"discussion-with-resolve-btn clearfix\">\n <discussion-reply-placeholder @focus=\"$emit('showReplyForm')\" />\n\n <div v-if=\"userCanResolveDiscussion\" class=\"btn-group discussion-actions\" role=\"group\">\n <div class=\"btn-group\">\n <resolve-discussion-button\n v-if=\"discussion.resolvable\"\n data-testid=\"resolve-discussion-button\"\n :is-resolving=\"isResolving\"\n :button-title=\"resolveButtonTitle\"\n @onClick=\"$emit('resolve')\"\n />\n </div>\n <resolve-with-issue-button\n v-if=\"discussion.resolvable && resolveWithIssuePath\"\n :url=\"resolveWithIssuePath\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./discussion_actions.vue?vue&type=template&id=9c3894ac\"\nimport script from \"./discussion_actions.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_actions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"discussion-with-resolve-btn clearfix\"},[_c('discussion-reply-placeholder',{on:{\"focus\":function($event){return _vm.$emit('showReplyForm')}}}),_vm._v(\" \"),(_vm.userCanResolveDiscussion)?_c('div',{staticClass:\"btn-group discussion-actions\",attrs:{\"role\":\"group\"}},[_c('div',{staticClass:\"btn-group\"},[(_vm.discussion.resolvable)?_c('resolve-discussion-button',{attrs:{\"data-testid\":\"resolve-discussion-button\",\"is-resolving\":_vm.isResolving,\"button-title\":_vm.resolveButtonTitle},on:{\"onClick\":function($event){return _vm.$emit('resolve')}}}):_vm._e()],1),_vm._v(\" \"),(_vm.discussion.resolvable && _vm.resolveWithIssuePath)?_c('resolve-with-issue-button',{attrs:{\"url\":_vm.resolveWithIssuePath}}):_vm._e()],1):_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!./discussion_notes.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!./discussion_notes.vue?vue&type=script&lang=js\"","<script>\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions } from 'vuex';\nimport { __ } from '~/locale';\nimport PlaceholderNote from '~/vue_shared/components/notes/placeholder_note.vue';\nimport PlaceholderSystemNote from '~/vue_shared/components/notes/placeholder_system_note.vue';\nimport SystemNote from '~/vue_shared/components/notes/system_note.vue';\nimport { FILE_DIFF_POSITION_TYPE } from '~/diffs/constants';\nimport { SYSTEM_NOTE } from '../constants';\nimport DiscussionNotesRepliesWrapper from './discussion_notes_replies_wrapper.vue';\nimport NoteEditedText from './note_edited_text.vue';\nimport NoteableNote from './noteable_note.vue';\nimport ToggleRepliesWidget from './toggle_replies_widget.vue';\n\nexport default {\n name: 'DiscussionNotes',\n components: {\n ToggleRepliesWidget,\n NoteEditedText,\n DiscussionNotesRepliesWrapper,\n },\n props: {\n discussion: {\n type: Object,\n required: true,\n },\n isExpanded: {\n type: Boolean,\n required: false,\n default: false,\n },\n diffLine: {\n type: Object,\n required: false,\n default: null,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n shouldGroupReplies: {\n type: Boolean,\n required: false,\n default: false,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n isOverviewTab: {\n type: Boolean,\n required: false,\n default: false,\n },\n shouldScrollToNote: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n computed: {\n ...mapGetters(['userCanReply']),\n hasReplies() {\n return Boolean(this.replies.length);\n },\n replies() {\n return this.discussion.notes.slice(1);\n },\n firstNote() {\n return this.discussion.notes.slice(0, 1)[0];\n },\n resolvedText() {\n return this.discussion.resolved_by_push ? __('Automatically resolved') : __('Resolved');\n },\n commit() {\n if (!this.discussion.for_commit) {\n return null;\n }\n\n return {\n id: this.discussion.commit_id,\n url: this.discussion.discussion_path,\n };\n },\n isDiscussionInternal() {\n return this.discussion.notes[0]?.internal;\n },\n isFileDiscussion() {\n return this.discussion.position?.position_type === FILE_DIFF_POSITION_TYPE;\n },\n },\n methods: {\n ...mapActions(['toggleDiscussion', 'setSelectedCommentPositionHover']),\n componentName(note) {\n if (note.isPlaceholderNote) {\n if (note.placeholderType === SYSTEM_NOTE) {\n return PlaceholderSystemNote;\n }\n\n return PlaceholderNote;\n }\n\n if (note.system) {\n return SystemNote;\n }\n\n return NoteableNote;\n },\n componentData(note) {\n return note.isPlaceholderNote ? note.notes[0] : note;\n },\n handleMouseEnter(discussion) {\n if (discussion.position) {\n this.setSelectedCommentPositionHover(discussion.position.line_range);\n }\n },\n handleMouseLeave(discussion) {\n // Even though position isn't used here we still don't want to unnecessarily call a mutation\n // The lack of position tells us that highlighting is irrelevant in this context\n if (discussion.position) {\n this.setSelectedCommentPositionHover();\n }\n },\n },\n};\n</script>\n\n<template>\n <div class=\"discussion-notes\">\n <ul\n class=\"notes\"\n @mouseenter=\"handleMouseEnter(discussion)\"\n @mouseleave=\"handleMouseLeave(discussion)\"\n >\n <template v-if=\"shouldGroupReplies\">\n <component\n :is=\"componentName(firstNote)\"\n :note=\"componentData(firstNote)\"\n :line=\"line || diffLine\"\n :discussion-file=\"discussion.diff_file\"\n :commit=\"commit\"\n :help-page-path=\"helpPagePath\"\n :show-reply-button=\"userCanReply\"\n :discussion-root=\"true\"\n :discussion-resolve-path=\"discussion.resolve_path\"\n :is-overview-tab=\"isOverviewTab\"\n :should-scroll-to-note=\"shouldScrollToNote\"\n :internal-note=\"isDiscussionInternal\"\n :class=\"{ '!gl-border-t-0': isFileDiscussion }\"\n @handleDeleteNote=\"$emit('deleteNote')\"\n @startReplying=\"$emit('startReplying')\"\n >\n <template #discussion-resolved-text>\n <note-edited-text\n v-if=\"discussion.resolved\"\n :edited-at=\"discussion.resolved_at\"\n :edited-by=\"discussion.resolved_by\"\n :action-text=\"resolvedText\"\n class-name=\"discussion-headline-light js-discussion-headline discussion-resolved-text -gl-mt-2 gl-mb-3 gl-ml-3\"\n />\n </template>\n <template #avatar-badge>\n <slot name=\"avatar-badge\"></slot>\n </template>\n </component>\n <discussion-notes-replies-wrapper\n v-if=\"hasReplies || userCanReply\"\n :is-diff-discussion=\"discussion.diff_discussion\"\n >\n <toggle-replies-widget\n v-if=\"hasReplies\"\n :collapsed=\"!isExpanded\"\n :replies=\"replies\"\n @toggle=\"toggleDiscussion({ discussionId: discussion.id })\"\n />\n <template v-if=\"isExpanded\">\n <component\n :is=\"componentName(note)\"\n v-for=\"note in replies\"\n :key=\"note.id\"\n :note=\"componentData(note)\"\n :help-page-path=\"helpPagePath\"\n :line=\"line\"\n :internal-note=\"isDiscussionInternal\"\n @handleDeleteNote=\"$emit('deleteNote')\"\n />\n </template>\n <slot :show-replies=\"isExpanded || !hasReplies\" name=\"footer\"></slot>\n </discussion-notes-replies-wrapper>\n </template>\n <template v-else>\n <component\n :is=\"componentName(note)\"\n v-for=\"(note, index) in discussion.notes\"\n :key=\"note.id\"\n :note=\"componentData(note)\"\n :discussion-file=\"discussion.diff_file\"\n :help-page-path=\"helpPagePath\"\n :line=\"diffLine\"\n :discussion-root=\"index === 0\"\n :discussion-resolve-path=\"discussion.resolve_path\"\n :is-overview-tab=\"isOverviewTab\"\n :should-scroll-to-note=\"shouldScrollToNote\"\n :internal-note=\"isDiscussionInternal\"\n @handleDeleteNote=\"$emit('deleteNote')\"\n >\n <template #avatar-badge>\n <slot v-if=\"index === 0\" name=\"avatar-badge\"></slot>\n </template>\n </component>\n <slot :show-replies=\"isExpanded || !hasReplies\" name=\"footer\"></slot>\n </template>\n </ul>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./discussion_notes.vue?vue&type=template&id=199511b7\"\nimport script from \"./discussion_notes.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_notes.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('div',{staticClass:\"discussion-notes\"},[_c('ul',{staticClass:\"notes\",on:{\"mouseenter\":function($event){return _vm.handleMouseEnter(_vm.discussion)},\"mouseleave\":function($event){return _vm.handleMouseLeave(_vm.discussion)}}},[(_vm.shouldGroupReplies)?[_c(_vm.componentName(_vm.firstNote),{tag:\"component\",class:{ '!gl-border-t-0': _vm.isFileDiscussion },attrs:{\"note\":_vm.componentData(_vm.firstNote),\"line\":_vm.line || _vm.diffLine,\"discussion-file\":_vm.discussion.diff_file,\"commit\":_vm.commit,\"help-page-path\":_vm.helpPagePath,\"show-reply-button\":_vm.userCanReply,\"discussion-root\":true,\"discussion-resolve-path\":_vm.discussion.resolve_path,\"is-overview-tab\":_vm.isOverviewTab,\"should-scroll-to-note\":_vm.shouldScrollToNote,\"internal-note\":_vm.isDiscussionInternal},on:{\"handleDeleteNote\":function($event){return _vm.$emit('deleteNote')},\"startReplying\":function($event){return _vm.$emit('startReplying')}},scopedSlots:_vm._u([{key:\"discussion-resolved-text\",fn:function(){return [(_vm.discussion.resolved)?_c('note-edited-text',{attrs:{\"edited-at\":_vm.discussion.resolved_at,\"edited-by\":_vm.discussion.resolved_by,\"action-text\":_vm.resolvedText,\"class-name\":\"discussion-headline-light js-discussion-headline discussion-resolved-text -gl-mt-2 gl-mb-3 gl-ml-3\"}}):_vm._e()]},proxy:true},{key:\"avatar-badge\",fn:function(){return [_vm._t(\"avatar-badge\")]},proxy:true}],null,true)}),_vm._v(\" \"),(_vm.hasReplies || _vm.userCanReply)?_c('discussion-notes-replies-wrapper',{attrs:{\"is-diff-discussion\":_vm.discussion.diff_discussion}},[(_vm.hasReplies)?_c('toggle-replies-widget',{attrs:{\"collapsed\":!_vm.isExpanded,\"replies\":_vm.replies},on:{\"toggle\":function($event){return _vm.toggleDiscussion({ discussionId: _vm.discussion.id })}}}):_vm._e(),_vm._v(\" \"),(_vm.isExpanded)?_vm._l((_vm.replies),function(note){return _c(_vm.componentName(note),{key:note.id,tag:\"component\",attrs:{\"note\":_vm.componentData(note),\"help-page-path\":_vm.helpPagePath,\"line\":_vm.line,\"internal-note\":_vm.isDiscussionInternal},on:{\"handleDeleteNote\":function($event){return _vm.$emit('deleteNote')}}})}):_vm._e(),_vm._v(\" \"),_vm._t(\"footer\",null,{\"showReplies\":_vm.isExpanded || !_vm.hasReplies})],2):_vm._e()]:[_vm._l((_vm.discussion.notes),function(note,index){return _c(_vm.componentName(note),{key:note.id,tag:\"component\",attrs:{\"note\":_vm.componentData(note),\"discussion-file\":_vm.discussion.diff_file,\"help-page-path\":_vm.helpPagePath,\"line\":_vm.diffLine,\"discussion-root\":index === 0,\"discussion-resolve-path\":_vm.discussion.resolve_path,\"is-overview-tab\":_vm.isOverviewTab,\"should-scroll-to-note\":_vm.shouldScrollToNote,\"internal-note\":_vm.isDiscussionInternal},on:{\"handleDeleteNote\":function($event){return _vm.$emit('deleteNote')}},scopedSlots:_vm._u([{key:\"avatar-badge\",fn:function(){return [(index === 0)?_vm._t(\"avatar-badge\"):_vm._e()]},proxy:true}],null,true)})}),_vm._v(\" \"),_vm._t(\"footer\",null,{\"showReplies\":_vm.isExpanded || !_vm.hasReplies})]],2)])\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!./noteable_discussion.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!./noteable_discussion.vue?vue&type=script&lang=js\"","<script>\nimport { GlTooltipDirective, GlIcon } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions, mapGetters } from 'vuex';\nimport DraftNote from '~/batch_comments/components/draft_note.vue';\nimport { createAlert } from '~/alert';\nimport { clearDraft, getDraft, getAutoSaveKeyFromDiscussion } from '~/lib/utils/autosave';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { confirmAction } from '~/lib/utils/confirm_via_gl_modal/confirm_via_gl_modal';\nimport { ignoreWhilePending } from '~/lib/utils/ignore_while_pending';\nimport { s__, __, sprintf } from '~/locale';\nimport diffLineNoteFormMixin from '~/notes/mixins/diff_line_note_form';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\nimport UserAvatarLink from '~/vue_shared/components/user_avatar/user_avatar_link.vue';\nimport { detectAndConfirmSensitiveTokens } from '~/lib/utils/secret_detection';\nimport { FILE_DIFF_POSITION_TYPE, IMAGE_DIFF_POSITION_TYPE } from '~/diffs/constants';\nimport eventHub from '../event_hub';\nimport noteable from '../mixins/noteable';\nimport resolvable from '../mixins/resolvable';\nimport { createNoteErrorMessages } from '../utils';\nimport DiffDiscussionHeader from './diff_discussion_header.vue';\nimport DiffWithNote from './diff_with_note.vue';\nimport DiscussionActions from './discussion_actions.vue';\nimport DiscussionNotes from './discussion_notes.vue';\nimport NoteForm from './note_form.vue';\nimport NoteSignedOutWidget from './note_signed_out_widget.vue';\n\nexport default {\n name: 'NoteableDiscussion',\n components: {\n GlIcon,\n UserAvatarLink,\n DiffDiscussionHeader,\n NoteSignedOutWidget,\n NoteForm,\n DraftNote,\n TimelineEntryItem,\n DiscussionNotes,\n DiscussionActions,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [noteable, resolvable, diffLineNoteFormMixin],\n props: {\n discussion: {\n type: Object,\n required: true,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n renderDiffFile: {\n type: Boolean,\n required: false,\n default: true,\n },\n alwaysExpanded: {\n type: Boolean,\n required: false,\n default: false,\n },\n discussionsByDiffOrder: {\n type: Boolean,\n required: false,\n default: false,\n },\n helpPagePath: {\n type: String,\n required: false,\n default: '',\n },\n isOverviewTab: {\n type: Boolean,\n required: false,\n default: false,\n },\n shouldScrollToNote: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n data() {\n return {\n isReplying: false,\n isResolving: false,\n resolveAsThread: true,\n };\n },\n computed: {\n ...mapGetters([\n 'convertedDisscussionIds',\n 'getNoteableData',\n 'userCanReply',\n 'showJumpToNextDiscussion',\n 'getUserData',\n ]),\n diffFile() {\n const diffFile = this.discussion.diff_file;\n if (!diffFile) return null;\n\n return {\n ...diffFile,\n view_path: window.location.href.replace(\n /\\/-\\/merge_requests.*/,\n `/-/blob/${diffFile.content_sha}/${diffFile.new_path}`,\n ),\n };\n },\n currentUser() {\n return this.getUserData;\n },\n isLoggedIn() {\n return isLoggedIn();\n },\n commentType() {\n return this.discussion.internal ? __('internal note') : __('comment');\n },\n autosaveKey() {\n return getAutoSaveKeyFromDiscussion(this.discussion);\n },\n newNotePath() {\n return this.getNoteableData.create_note_path;\n },\n saveButtonTitle() {\n return this.discussion.internal ? __('Reply internally') : __('Reply');\n },\n shouldShowJumpToNextDiscussion() {\n return this.showJumpToNextDiscussion(this.discussionsByDiffOrder ? 'diff' : 'discussion');\n },\n shouldRenderDiffs() {\n return this.discussion.diff_discussion && this.renderDiffFile;\n },\n shouldGroupReplies() {\n return !this.shouldRenderDiffs;\n },\n wrapperComponent() {\n return this.shouldRenderDiffs ? DiffWithNote : 'div';\n },\n wrapperComponentProps() {\n if (this.shouldRenderDiffs) {\n return { discussion: this.discussion };\n }\n\n return {};\n },\n isExpanded() {\n return this.discussion.expanded || this.alwaysExpanded;\n },\n shouldHideDiscussionBody() {\n return this.shouldRenderDiffs && !this.isExpanded;\n },\n diffLine() {\n if (this.line) {\n return this.line;\n }\n\n if (this.discussion.diff_discussion && this.discussion.truncated_diff_lines) {\n return this.discussion.truncated_diff_lines.slice(-1)[0];\n }\n\n return null;\n },\n resolveWithIssuePath() {\n return !this.discussionResolved ? this.discussion.resolve_with_issue_path : '';\n },\n canShowReplyActions() {\n if (this.shouldRenderDiffs) {\n if (this.discussion.diff_file?.diff_refs) {\n return true;\n }\n\n /*\n * https://gitlab.com/gitlab-com/gl-infra/production/-/issues/19118\n *\n * For most diff discussions we should have a `diff_file`.\n * However in some cases we might we might not have this object.\n * In these we need to check if the `original_position.position_type`\n * is either a file or an image, doing this allows us to still\n * render the reply actions.\n */\n return (\n this.discussion.original_position?.position_type === FILE_DIFF_POSITION_TYPE ||\n this.discussion.original_position?.position_type === IMAGE_DIFF_POSITION_TYPE\n );\n }\n\n return true;\n },\n isDiscussionInternal() {\n return this.discussion.notes[0]?.internal;\n },\n discussionHolderClass() {\n return {\n 'is-replying': this.isReplying,\n 'internal-note': this.isDiscussionInternal,\n '!gl-pt-0': !this.discussion.diff_discussion && this.isReplying,\n };\n },\n hasDraft() {\n return Boolean(getDraft(this.autosaveKey));\n },\n },\n created() {\n eventHub.$on('startReplying', this.onStartReplying);\n if (this.hasDraft) {\n this.showReplyForm();\n }\n },\n beforeDestroy() {\n eventHub.$off('startReplying', this.onStartReplying);\n },\n methods: {\n ...mapActions([\n 'saveNote',\n 'removePlaceholderNotes',\n 'toggleResolveNote',\n 'removeConvertedDiscussion',\n 'expandDiscussion',\n ]),\n showReplyForm(text) {\n this.isReplying = true;\n\n if (!this.discussion.expanded) {\n this.expandDiscussion({ discussionId: this.discussion.id });\n }\n\n if (typeof text !== 'undefined') {\n this.$nextTick(() => {\n this.$refs.noteForm.append(text);\n });\n }\n },\n cancelReplyForm: ignoreWhilePending(async function cancelReplyForm(shouldConfirm, isDirty) {\n if (shouldConfirm && isDirty) {\n const msg = sprintf(\n s__('Notes|Are you sure you want to cancel creating this %{commentType}?'),\n { commentType: this.commentType },\n );\n\n const confirmed = await confirmAction(msg, {\n primaryBtnText: __('Discard changes'),\n cancelBtnText: __('Continue editing'),\n });\n\n if (!confirmed) {\n return;\n }\n }\n\n if (this.convertedDisscussionIds.includes(this.discussion.id)) {\n this.removeConvertedDiscussion(this.discussion.id);\n }\n\n this.isReplying = false;\n clearDraft(this.autosaveKey);\n }),\n async saveReply(noteText, form, callback) {\n if (!noteText) {\n this.cancelReplyForm();\n callback();\n return;\n }\n\n const confirmSubmit = await detectAndConfirmSensitiveTokens({ content: noteText });\n\n if (!confirmSubmit) {\n callback();\n return;\n }\n\n const postData = {\n in_reply_to_discussion_id: this.discussion.reply_id,\n target_type: this.getNoteableData.targetType,\n note: { note: noteText },\n };\n\n if (this.convertedDisscussionIds.includes(this.discussion.id)) {\n postData.return_discussion = true;\n }\n\n if (this.discussion.for_commit) {\n postData.note_project_id = this.discussion.project_id;\n }\n\n const replyData = {\n endpoint: this.newNotePath,\n flashContainer: this.$el,\n data: postData,\n };\n\n this.saveNote(replyData)\n .then(() => {\n this.isReplying = false;\n clearDraft(this.autosaveKey);\n\n callback();\n })\n .catch((err) => {\n this.handleSaveError(err); // The 'err' parameter is being used in JH, don't remove it\n this.removePlaceholderNotes();\n\n callback(err);\n });\n },\n handleSaveError({ response }) {\n const errorMessage = createNoteErrorMessages(response.data, response.status)[0];\n\n createAlert({\n message: errorMessage,\n parent: this.$el,\n });\n },\n onStartReplying(discussionId) {\n if (this.discussion.id === discussionId) {\n this.showReplyForm();\n }\n },\n },\n};\n</script>\n\n<template>\n <timeline-entry-item class=\"note note-discussion\">\n <div class=\"timeline-content\">\n <div\n :data-discussion-id=\"discussion.id\"\n :data-discussion-resolvable=\"discussion.resolvable\"\n :data-discussion-resolved=\"discussion.resolved\"\n class=\"discussion js-discussion-container\"\n data-testid=\"discussion-content\"\n >\n <diff-discussion-header v-if=\"shouldRenderDiffs\" :discussion=\"discussion\" />\n <div v-if=\"!shouldHideDiscussionBody\" class=\"discussion-body\">\n <component\n :is=\"wrapperComponent\"\n v-bind=\"wrapperComponentProps\"\n class=\"card discussion-wrapper\"\n >\n <discussion-notes\n :discussion=\"discussion\"\n :diff-line=\"diffLine\"\n :help-page-path=\"helpPagePath\"\n :is-expanded=\"isExpanded\"\n :line=\"line\"\n :should-group-replies=\"shouldGroupReplies\"\n :is-overview-tab=\"isOverviewTab\"\n :should-scroll-to-note=\"shouldScrollToNote\"\n @startReplying=\"showReplyForm\"\n >\n <template #avatar-badge>\n <slot name=\"avatar-badge\"></slot>\n </template>\n <template #footer=\"{ showReplies }\">\n <draft-note\n v-if=\"showDraft(discussion.reply_id)\"\n :key=\"`draft_${discussion.id}`\"\n :draft=\"draftForDiscussion(discussion.reply_id)\"\n :line=\"line\"\n />\n <li\n v-else-if=\"canShowReplyActions && showReplies\"\n data-testid=\"reply-wrapper\"\n class=\"discussion-reply-holder clearfix gl-bg-subtle\"\n :class=\"discussionHolderClass\"\n >\n <div class=\"flash-container !gl-mt-0 gl-mb-2\"></div>\n <discussion-actions\n v-if=\"!isReplying && userCanReply\"\n :discussion=\"discussion\"\n :is-resolving=\"isResolving\"\n :resolve-button-title=\"resolveButtonTitle\"\n :resolve-with-issue-path=\"resolveWithIssuePath\"\n :should-show-jump-to-next-discussion=\"shouldShowJumpToNextDiscussion\"\n @showReplyForm=\"showReplyForm\"\n @resolve=\"resolveHandler\"\n />\n <note-form\n v-if=\"isReplying\"\n ref=\"noteForm\"\n :discussion=\"discussion\"\n :diff-file=\"diffFile\"\n :line=\"diffLine\"\n :save-button-title=\"saveButtonTitle\"\n :autofocus=\"!hasDraft\"\n :autosave-key=\"autosaveKey\"\n @handleFormUpdateAddToReview=\"addReplyToReview\"\n @handleFormUpdate=\"saveReply\"\n @cancelForm=\"cancelReplyForm\"\n />\n <note-signed-out-widget v-if=\"!isLoggedIn\" />\n </li>\n </template>\n </discussion-notes>\n </component>\n </div>\n </div>\n </div>\n </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./noteable_discussion.vue?vue&type=template&id=704eedcc\"\nimport script from \"./noteable_discussion.vue?vue&type=script&lang=js\"\nexport * from \"./noteable_discussion.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\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableEpicUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableEpicUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"hasEpic\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"epic\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":255}};\n doc.loc.source = {\"body\":\"#import \\\"./epic.fragment.graphql\\\"\\n\\nsubscription issuableEpicUpdated($issuableId: IssuableID!) {\\n issuableEpicUpdated(issuableId: $issuableId) {\\n ... on Issue {\\n id\\n hasEpic\\n attribute: epic {\\n ...EpicFragment\\n }\\n }\\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(\"./epic.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[\"issuableEpicUpdated\"] = oneQuery(doc, \"issuableEpicUpdated\");\n \n","// YAML error class. http://stackoverflow.com/questions/8458984\n//\n'use strict';\n\nfunction YAMLException(reason, mark) {\n // Super constructor\n Error.call(this);\n\n this.name = 'YAMLException';\n this.reason = reason;\n this.mark = mark;\n this.message = (this.reason || '(unknown reason)') + (this.mark ? ' ' + this.mark.toString() : '');\n\n // Include stack trace in error object\n if (Error.captureStackTrace) {\n // Chrome and NodeJS\n Error.captureStackTrace(this, this.constructor);\n } else {\n // FF, IE 10+ and Safari 6+. Fallback for others\n this.stack = (new Error()).stack || '';\n }\n}\n\n\n// Inherit from Error\nYAMLException.prototype = Object.create(Error.prototype);\nYAMLException.prototype.constructor = YAMLException;\n\n\nYAMLException.prototype.toString = function toString(compact) {\n var result = this.name + ': ';\n\n result += this.reason || '(unknown reason)';\n\n if (!compact && this.mark) {\n result += ' ' + this.mark.toString();\n }\n\n return result;\n};\n\n\nmodule.exports = YAMLException;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","import Vue from 'vue';\nimport { parseBoolean, convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';\nimport CommitFormModal from './components/form_modal.vue';\nimport {\n I18N_MODAL,\n I18N_CHERRY_PICK_MODAL,\n OPEN_CHERRY_PICK_MODAL,\n CHERRY_PICK_MODAL_ID,\n} from './constants';\nimport createStore from './store';\n\nexport default function initInviteMembersModal(primaryActionEventName) {\n const el = document.querySelector('.js-cherry-pick-commit-modal');\n if (!el) {\n return false;\n }\n\n const {\n title,\n endpoint,\n branch,\n targetProjectId,\n targetProjectName,\n pushCode,\n branchCollaboration,\n existingBranch,\n branchesEndpoint,\n projects,\n } = el.dataset;\n\n const store = createStore({\n endpoint,\n branchesEndpoint,\n branch,\n targetProjectId,\n targetProjectName,\n pushCode: parseBoolean(pushCode),\n branchCollaboration: parseBoolean(branchCollaboration),\n defaultBranch: branch,\n modalTitle: title,\n existingBranch,\n projects: convertObjectPropsToCamelCase(JSON.parse(projects), { deep: true }),\n });\n\n return new Vue({\n el,\n store,\n render: (createElement) =>\n createElement(CommitFormModal, {\n props: {\n i18n: { ...I18N_CHERRY_PICK_MODAL, ...I18N_MODAL },\n openModal: OPEN_CHERRY_PICK_MODAL,\n modalId: CHERRY_PICK_MODAL_ID,\n isCherryPick: true,\n primaryActionEventName,\n },\n }),\n });\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getIssuesCountEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"defaultValue\":{\"kind\":\"BooleanValue\",\"value\":false},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableSearchableField\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"AssigneeWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Boolean\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MilestoneWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ReleaseTagWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssueType\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationsCadenceID\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WeightWildcardId\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"HealthStatusFilter\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"NegatedIssueFilterInput\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"UnionedIssueFilterInput\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Time\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Time\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Time\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Time\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"skip\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"openedIssues\"},\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubgroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"opened\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"closedIssues\"},\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubgroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"closed\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"allIssues\"},\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubgroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"all\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[{\"kind\":\"Directive\",\"name\":{\"kind\":\"Name\",\"value\":\"include\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"if\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"isProject\"}}}]}],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"openedIssues\"},\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"opened\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"closedIssues\"},\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"closed\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"allIssues\"},\"name\":{\"kind\":\"Name\",\"value\":\"issues\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeSubepics\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"EnumValue\",\"value\":\"all\"}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"assigneeUsernames\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"authorUsername\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"confidential\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"labelName\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneTitle\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"milestoneWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"myReactionEmoji\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTag\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"releaseTagWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"types\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"epicWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadenceId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"weightWildcardId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"healthStatusFilter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmContactId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"crmOrganizationId\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"not\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"or\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"createdBefore\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedAfter\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"closedBefore\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":7768}};\n doc.loc.source = {\"body\":\"query getIssuesCountEE(\\n $isProject: Boolean = false\\n $fullPath: ID!\\n $iid: String\\n $search: String\\n $in: [IssuableSearchableField!]\\n $assigneeId: String\\n $assigneeWildcardId: AssigneeWildcardId\\n $assigneeUsernames: [String!]\\n $authorUsername: String\\n $confidential: Boolean\\n $labelName: [String]\\n $milestoneTitle: [String]\\n $milestoneWildcardId: MilestoneWildcardId\\n $myReactionEmoji: String\\n $releaseTag: [String!]\\n $releaseTagWildcardId: ReleaseTagWildcardId\\n $types: [IssueType!]\\n $epicId: String\\n $epicWildcardId: EpicWildcardId\\n $iterationId: [ID]\\n $iterationWildcardId: IterationWildcardId\\n $iterationCadenceId: [IterationsCadenceID!]\\n $weight: String\\n $weightWildcardId: WeightWildcardId\\n $healthStatusFilter: HealthStatusFilter\\n $crmContactId: String\\n $crmOrganizationId: String\\n $not: NegatedIssueFilterInput\\n $or: UnionedIssueFilterInput\\n $createdAfter: Time\\n $createdBefore: Time\\n $closedAfter: Time\\n $closedBefore: Time\\n) {\\n group(fullPath: $fullPath) @skip(if: $isProject) {\\n id\\n openedIssues: issues(\\n includeSubepics: true\\n includeSubgroups: true\\n state: opened\\n iid: $iid\\n search: $search\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n count\\n }\\n closedIssues: issues(\\n includeSubepics: true\\n includeSubgroups: true\\n state: closed\\n iid: $iid\\n search: $search\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n count\\n }\\n allIssues: issues(\\n includeSubepics: true\\n includeSubgroups: true\\n state: all\\n iid: $iid\\n search: $search\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n count\\n }\\n }\\n project(fullPath: $fullPath) @include(if: $isProject) {\\n id\\n openedIssues: issues(\\n includeSubepics: true\\n state: opened\\n iid: $iid\\n search: $search\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n releaseTag: $releaseTag\\n releaseTagWildcardId: $releaseTagWildcardId\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n count\\n }\\n closedIssues: issues(\\n includeSubepics: true\\n state: closed\\n iid: $iid\\n search: $search\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n releaseTag: $releaseTag\\n releaseTagWildcardId: $releaseTagWildcardId\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n count\\n }\\n allIssues: issues(\\n includeSubepics: true\\n state: all\\n iid: $iid\\n search: $search\\n in: $in\\n assigneeId: $assigneeId\\n assigneeWildcardId: $assigneeWildcardId\\n assigneeUsernames: $assigneeUsernames\\n authorUsername: $authorUsername\\n confidential: $confidential\\n labelName: $labelName\\n milestoneTitle: $milestoneTitle\\n milestoneWildcardId: $milestoneWildcardId\\n myReactionEmoji: $myReactionEmoji\\n releaseTag: $releaseTag\\n releaseTagWildcardId: $releaseTagWildcardId\\n types: $types\\n epicId: $epicId\\n epicWildcardId: $epicWildcardId\\n iterationId: $iterationId\\n iterationWildcardId: $iterationWildcardId\\n iterationCadenceId: $iterationCadenceId\\n weight: $weight\\n weightWildcardId: $weightWildcardId\\n healthStatusFilter: $healthStatusFilter\\n crmContactId: $crmContactId\\n crmOrganizationId: $crmOrganizationId\\n not: $not\\n or: $or\\n createdAfter: $createdAfter\\n createdBefore: $createdBefore\\n closedAfter: $closedAfter\\n closedBefore: $closedBefore\\n ) {\\n count\\n }\\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[\"getIssuesCountEE\"] = oneQuery(doc, \"getIssuesCountEE\");\n \n","import $ from 'jquery';\nimport Api from '~/api';\nimport { humanize } from '~/lib/utils/text_utility';\n\nexport default class CreateLabelDropdown {\n constructor($el, namespacePath, projectPath) {\n this.$el = $el;\n this.namespacePath = namespacePath;\n this.projectPath = projectPath;\n this.$dropdownBack = $('.dropdown-menu-back', this.$el.closest('.dropdown'));\n this.$cancelButton = $('.js-cancel-label-btn', this.$el);\n this.$newLabelField = $('#new_label_name', this.$el);\n this.$newColorField = $('#new_label_color', this.$el);\n this.$colorPreview = $('.js-dropdown-label-color-preview', this.$el);\n this.$addList = $('.js-add-list', this.$el);\n this.$newLabelError = $('.js-label-error', this.$el);\n this.$newLabelErrorContent = $('.gl-alert-content', this.$newLabelError);\n this.$newLabelCreateButton = $('.js-new-label-btn', this.$el);\n this.$colorSuggestions = $('.suggest-colors-dropdown a', this.$el);\n\n this.$newLabelError.hide();\n this.$newLabelCreateButton.disable();\n\n this.addListDefault = this.$addList.is(':checked');\n\n this.cleanBinding();\n this.addBinding();\n }\n\n cleanBinding() {\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$colorSuggestions.off('click');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$newLabelField.off('keyup change');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$newColorField.off('keyup change');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$colorPreview.off('keyup change');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$dropdownBack.off('click');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$cancelButton.off('click');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.$newLabelCreateButton.off('click');\n }\n\n addBinding() {\n const self = this;\n\n // eslint-disable-next-line func-names\n this.$colorSuggestions.on('click', function (e) {\n const $this = $(this);\n self.addColorValue(e, $this);\n });\n\n this.$newLabelField.on('keyup change', this.enableLabelCreateButton.bind(this));\n this.$newColorField.on('keyup change', this.enableLabelCreateButton.bind(this));\n this.$colorPreview.on('keyup change', this.enableLabelCreateButton.bind(this));\n\n this.$newColorField.on('input', this.updateColorPreview.bind(this));\n this.$colorPreview.on('input', this.updateColorPickerPreview.bind(this));\n\n this.$dropdownBack.on('click', this.resetForm.bind(this));\n\n this.$cancelButton.on('click', (e) => {\n e.preventDefault();\n e.stopPropagation();\n\n self.resetForm();\n self.$dropdownBack.trigger('click');\n });\n\n this.$newLabelCreateButton.on('click', this.saveLabel.bind(this));\n }\n\n addColorValue(e, $this) {\n e.preventDefault();\n e.stopPropagation();\n\n this.$newColorField.val($this.data('color')).trigger('change');\n this.$colorPreview.val($this.data('color')).trigger('change');\n }\n\n updateColorPreview() {\n const previewColor = this.$newColorField.val();\n return this.$colorPreview.val(previewColor);\n // Updates the preview color with the hex-color input\n }\n\n updateColorPickerPreview() {\n const previewColor = this.$colorPreview.val();\n return this.$newColorField.val(previewColor);\n // Updates the input color with the hex-color from the picker\n }\n\n enableLabelCreateButton() {\n if (this.$newLabelField.val() !== '' && this.$newColorField.val() !== '') {\n this.$newLabelError.hide();\n this.$newLabelCreateButton.enable();\n } else {\n this.$newLabelCreateButton.disable();\n }\n }\n\n resetForm() {\n this.$newLabelField.val('').trigger('change');\n\n this.$newColorField.val('').trigger('change');\n\n this.$addList.prop('checked', this.addListDefault);\n\n this.$colorPreview.val('');\n }\n\n saveLabel(e) {\n e.preventDefault();\n e.stopPropagation();\n\n Api.newLabel(\n this.namespacePath,\n this.projectPath,\n {\n title: this.$newLabelField.val(),\n color: this.$newColorField.val(),\n },\n (label) => {\n this.$newLabelCreateButton.enable();\n\n if (label.message) {\n let errors;\n\n if (typeof label.message === 'string') {\n errors = label.message;\n } else {\n errors = Object.keys(label.message)\n .map((key) => `${humanize(key)} ${label.message[key].join(', ')}`)\n .join('<br/>');\n }\n\n this.$newLabelErrorContent.html(errors);\n this.$newLabelError.show();\n } else {\n const addNewList = this.$addList.is(':checked');\n this.$dropdownBack.trigger('click');\n $(document).trigger('created.label', [label, addNewList]);\n }\n },\n );\n }\n}\n","/* eslint-disable func-names, no-underscore-dangle, no-new, consistent-return, no-shadow, no-param-reassign, no-lonely-if, no-empty */\n/* global Issuable */\n\nimport $ from 'jquery';\nimport { difference, isEqual, escape, sortBy, template, union } from 'lodash';\nimport initDeprecatedJQueryDropdown from '~/deprecated_jquery_dropdown';\nimport IssuableBulkUpdateActions from '~/issuable/issuable_bulk_update_actions';\nimport { isScopedLabel } from '~/lib/utils/common_utils';\nimport { createAlert } from '~/alert';\nimport axios from '~/lib/utils/axios_utils';\nimport { sprintf, __ } from '~/locale';\nimport CreateLabelDropdown from './create_label_dropdown';\n\nexport default class LabelsSelect {\n constructor(els, options = {}) {\n const _this = this;\n\n let $els = $(els);\n\n if (!els) {\n $els = $('.js-label-select');\n }\n\n $els.each((i, dropdown) => {\n const $dropdown = $(dropdown);\n const $dropdownContainer = $dropdown.closest('.labels-filter');\n const namespacePath = $dropdown.data('namespacePath');\n const projectPath = $dropdown.data('projectPath');\n const issueUpdateURL = $dropdown.data('issueUpdate');\n let selectedLabel = $dropdown.data('selected');\n if (selectedLabel != null && !$dropdown.hasClass('js-multiselect')) {\n selectedLabel = selectedLabel.split(',');\n }\n const showNo = $dropdown.data('showNo');\n const showAny = $dropdown.data('showAny');\n const showMenuAbove = $dropdown.data('showMenuAbove');\n const defaultLabel = $dropdown.data('defaultLabel') || __('Label');\n const abilityName = $dropdown.data('abilityName');\n const $selectbox = $dropdown.closest('.selectbox');\n const $block = $selectbox.closest('.block');\n const $form = $dropdown.closest('form, .js-issuable-update');\n const $sidebarCollapsedValue = $block.find('.sidebar-collapsed-icon span');\n const $value = $block.find('.value');\n const $loading = $block.find('.block-loading').addClass('gl-hidden');\n const fieldName = $dropdown.data('fieldName');\n let initialSelected = $selectbox\n .find(`input[name=\"${$dropdown.data('fieldName')}\"]`)\n .map(function () {\n return this.value;\n })\n .get();\n const scopedLabels = $dropdown.data('scopedLabels');\n const { handleClick } = options;\n\n if ($dropdown.closest('.dropdown').find('.dropdown-new-label').length) {\n new CreateLabelDropdown(\n $dropdown.closest('.dropdown').find('.dropdown-new-label'),\n namespacePath,\n projectPath,\n );\n }\n\n const saveLabelData = function () {\n const selected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${fieldName}']`)\n .map(function () {\n return this.value;\n })\n .get();\n\n if (isEqual(initialSelected, selected)) return;\n initialSelected = selected;\n\n const data = {};\n data[abilityName] = {};\n data[abilityName].label_ids = selected;\n if (!selected.length) {\n data[abilityName].label_ids = [''];\n }\n $loading.removeClass('gl-hidden');\n $dropdown.trigger('loading.gl.dropdown');\n axios\n .put(issueUpdateURL, data)\n .then(({ data }) => {\n let template;\n $loading.addClass('gl-hidden');\n $dropdown.trigger('loaded.gl.dropdown');\n $selectbox.hide();\n data.issueUpdateURL = issueUpdateURL;\n let labelCount = 0;\n if (data.labels.length && issueUpdateURL) {\n template = LabelsSelect.getLabelTemplate({\n labels: sortBy(data.labels, 'title'),\n issueUpdateURL,\n enableScopedLabels: scopedLabels,\n });\n labelCount = data.labels.length;\n\n // EE Specific\n if (IS_EE) {\n /**\n * For Scoped labels, the last label selected with the\n * same key will be applied to the current issuable.\n *\n * If these are the labels - priority::1, priority::2; and if\n * we apply them in the same order, only priority::2 will stick\n * with the issuable.\n *\n * In the current dropdown implementation, we keep track of all\n * the labels selected via a hidden DOM element. Since a User\n * can select priority::1 and priority::2 at the same time, the\n * DOM will have 2 hidden input and the dropdown will show both\n * the items selected but in reality server only applied\n * priority::2.\n *\n * We find all the labels then find all the labels server accepted\n * and then remove the excess ones.\n */\n const toRemoveIds = Array.from(\n $form.find(`input[type=\"hidden\"][name=\"${fieldName}\"]`),\n )\n .map((el) => el.value)\n .map(Number);\n\n data.labels.forEach((label) => {\n const index = toRemoveIds.indexOf(label.id);\n toRemoveIds.splice(index, 1);\n });\n\n toRemoveIds.forEach((id) => {\n $form\n .find(`input[type=\"hidden\"][name=\"${fieldName}\"][value=\"${id}\"]`)\n .last()\n .remove();\n });\n }\n } else {\n template = `<span class=\"no-value\">${__('None')}</span>`;\n }\n $value.removeAttr('style').html(template);\n $sidebarCollapsedValue.text(labelCount);\n\n $('.has-tooltip', $value).tooltip({\n container: 'body',\n });\n })\n .catch(() =>\n createAlert({\n message: __('Error saving label update.'),\n }),\n );\n };\n initDeprecatedJQueryDropdown($dropdown, {\n showMenuAbove,\n data(term, callback) {\n const labelUrl = $dropdown.attr('data-labels');\n axios\n .get(labelUrl)\n .then((res) => {\n let { data } = res;\n if ($dropdown.hasClass('js-extra-options')) {\n const extraData = [];\n if (showNo) {\n extraData.unshift({\n id: 0,\n title: __('No label'),\n });\n }\n if (showAny) {\n extraData.unshift({\n isAny: true,\n title: __('Any label'),\n });\n }\n if (extraData.length) {\n extraData.push({ type: 'divider' });\n data = extraData.concat(data);\n }\n }\n\n callback(data);\n if (showMenuAbove) {\n $dropdown.data('deprecatedJQueryDropdown').positionMenuAbove();\n }\n })\n .catch(() =>\n createAlert({\n message: __('Error fetching labels.'),\n }),\n );\n },\n renderRow(label) {\n let colorEl;\n\n const selectedClass = [];\n const removesAll = label.id <= 0 || label.id == null;\n\n if ($dropdown.hasClass('js-filter-bulk-update')) {\n const indeterminate = $dropdown.data('indeterminate') || [];\n const marked = $dropdown.data('marked') || [];\n\n if (indeterminate.indexOf(label.id) !== -1) {\n selectedClass.push('is-indeterminate');\n }\n\n if (marked.indexOf(label.id) !== -1) {\n // Remove is-indeterminate class if the item will be marked as active\n const i = selectedClass.indexOf('is-indeterminate');\n if (i !== -1) {\n selectedClass.splice(i, 1);\n }\n selectedClass.push('is-active');\n }\n } else {\n if (this.id(label)) {\n const dropdownValue = this.id(label).toString().replace(/'/g, \"\\\\'\");\n\n if (\n $form.find(\n `input[type='hidden'][name='${this.fieldName}'][value='${dropdownValue}']`,\n ).length\n ) {\n selectedClass.push('is-active');\n }\n }\n\n if (this.multiSelect && removesAll) {\n selectedClass.push('dropdown-clear-active');\n }\n }\n\n if (label.color) {\n colorEl = `<span class='dropdown-label-box' style='background: ${label.color}'></span>`;\n } else {\n colorEl = '';\n }\n\n const linkEl = document.createElement('a');\n linkEl.href = '#';\n\n // We need to identify which items are actually labels\n if (label.id) {\n const selectedLayoutClasses = ['gl-flex', 'flex-row', 'gl-break-all'];\n selectedClass.push('label-item', ...selectedLayoutClasses);\n linkEl.dataset.labelId = label.id;\n }\n\n linkEl.className = selectedClass.join(' ');\n // eslint-disable-next-line no-unsanitized/property\n linkEl.innerHTML = `${colorEl} ${escape(label.title)}`;\n\n const listItemEl = document.createElement('li');\n listItemEl.appendChild(linkEl);\n\n return listItemEl;\n },\n search: {\n fields: ['title'],\n },\n selectable: true,\n filterable: true,\n selected: $dropdown.data('selected') || [],\n toggleLabel(selected, el) {\n const $dropdownParent = $dropdown.parent();\n const $dropdownInputField = $dropdownParent.find('.dropdown-input-field');\n const isSelected = el !== null ? el.hasClass('is-active') : false;\n\n const title = selected ? selected.title : null;\n const selectedLabels = this.selected;\n\n if ($dropdownInputField.length && $dropdownInputField.val().length) {\n $dropdownParent.find('.dropdown-input-clear').trigger('click');\n }\n\n if (selected && selected.id === 0) {\n this.selected = [];\n return __('No label');\n }\n if (isSelected) {\n this.selected.push(title);\n } else if (!isSelected && title) {\n const index = this.selected.indexOf(title);\n this.selected.splice(index, 1);\n }\n\n if (selectedLabels.length === 1) {\n return selectedLabels;\n }\n if (selectedLabels.length) {\n return sprintf(__('%{firstLabel} +%{labelCount} more'), {\n firstLabel: selectedLabels[0],\n labelCount: selectedLabels.length - 1,\n });\n }\n return defaultLabel;\n },\n fieldName: $dropdown.data('fieldName'),\n id(label) {\n if (label.id <= 0) return label.title;\n\n if ($dropdown.hasClass('js-issuable-form-dropdown')) {\n return label.id;\n }\n\n if ($dropdown.hasClass('js-filter-submit') && label.isAny == null) {\n return label.title;\n }\n return label.id;\n },\n hidden() {\n const page = $('body').attr('data-page');\n const isIssueIndex = page === 'projects:issues:index';\n const isMRIndex = page === 'projects:merge_requests:index';\n $selectbox.hide();\n // display:block overrides the hide-collapse rule\n $value.removeAttr('style');\n\n if ($dropdown.hasClass('js-issuable-form-dropdown')) {\n return;\n }\n\n if (\n $('html')\n .attr('class')\n .match(/issue-boards-page|epic-boards-page/)\n ) {\n return;\n }\n if ($dropdown.hasClass('js-multiselect')) {\n if ($dropdown.hasClass('js-filter-submit') && (isIssueIndex || isMRIndex)) {\n Issuable.filterResults($dropdown.closest('form'));\n } else if ($dropdown.hasClass('js-filter-submit')) {\n $dropdown.closest('form').submit();\n } else {\n if (!$dropdown.hasClass('js-filter-bulk-update')) {\n saveLabelData();\n $dropdown.data('deprecatedJQueryDropdown').clearMenu();\n }\n }\n }\n },\n multiSelect: $dropdown.hasClass('js-multiselect'),\n vue: false,\n clicked(clickEvent) {\n const { e, isMarking } = clickEvent;\n const label = clickEvent.selectedObj;\n\n const page = $('body').attr('data-page');\n const isIssueIndex = page === 'projects:issues:index';\n const isMRIndex = page === 'projects:merge_requests:index';\n\n if ($dropdown.parent().find('.is-active:not(.dropdown-clear-active)').length) {\n $dropdown.parent().find('.dropdown-clear-active').removeClass('is-active');\n }\n\n if ($dropdown.hasClass('js-issuable-form-dropdown')) {\n return;\n }\n\n if ($dropdown.hasClass('js-filter-bulk-update')) {\n _this.enableBulkLabelDropdown();\n _this.setDropdownData($dropdown, isMarking, label.id);\n return;\n }\n\n if ($dropdown.hasClass('js-filter-submit') && (isIssueIndex || isMRIndex)) {\n if (!$dropdown.hasClass('js-multiselect')) {\n selectedLabel = label.title;\n return Issuable.filterResults($dropdown.closest('form'));\n }\n } else if ($dropdown.hasClass('js-filter-submit')) {\n return $dropdown.closest('form').submit();\n } else if (handleClick) {\n e.preventDefault();\n handleClick(label);\n } else {\n if ($dropdown.hasClass('js-multiselect')) {\n } else {\n return saveLabelData();\n }\n }\n },\n preserveContext: true,\n });\n\n // Set dropdown data\n _this.setOriginalDropdownData($dropdownContainer, $dropdown);\n });\n this.bindEvents();\n }\n\n static getLabelTemplate(tplData) {\n // We could use ES6 template string here\n // and properly indent markup for readability\n // but that also introduces unintended white-space\n // so best approach is to use traditional way of\n // concatenation\n // see: http://2ality.com/2016/05/template-literal-whitespace.html#joining-arrays\n\n const linkOpenTag =\n '<a href=\"<%- issueUpdateURL.slice(0, issueUpdateURL.lastIndexOf(\"/\")) %>?label_name[]=<%- encodeURIComponent(label.title) %>\" class=\"gl-link gl-label-link has-tooltip\" <%= linkAttrs %> title=\"<%= tooltipTitleTemplate({ label, isScopedLabel, enableScopedLabels, escapeStr }) %>\">';\n const labelTemplate = template(\n [\n '<span class=\"gl-label\">',\n linkOpenTag,\n '<span class=\"gl-label-text <%= labelTextClass({ label, escapeStr }) %>\" style=\"background-color: <%= escapeStr(label.color) %>;\">',\n '<%- label.title %>',\n '</span>',\n '</a>',\n '</span>',\n ].join(''),\n );\n\n const labelTextClass = ({ label, escapeStr }) => {\n return escapeStr(\n label.text_color === '#FFFFFF' ? 'gl-label-text-light' : 'gl-label-text-dark',\n );\n };\n\n const rightLabelTextClass = ({ label, escapeStr }) => {\n return escapeStr(label.text_color === '#333333' ? labelTextClass({ label, escapeStr }) : '');\n };\n\n const scopedLabelTemplate = template(\n [\n '<span class=\"gl-label gl-label-scoped\" style=\"color: <%= escapeStr(label.color) %>; --label-inset-border: inset 0 0 0 2px <%= escapeStr(label.color) %>;\">',\n linkOpenTag,\n '<span class=\"gl-label-text <%= labelTextClass({ label, escapeStr }) %>\" style=\"background-color: <%= escapeStr(label.color) %>;\">',\n '<%- label.title.slice(0, label.title.lastIndexOf(\"::\")) %>',\n '</span>',\n '<span class=\"gl-label-text <%= rightLabelTextClass({ label, escapeStr }) %>\">',\n '<%- label.title.slice(label.title.lastIndexOf(\"::\") + 2) %>',\n '</span>',\n '</a>',\n '</span>',\n ].join(''),\n );\n\n const tooltipTitleTemplate = template(\n [\n '<% if (isScopedLabel(label) && enableScopedLabels) { %>',\n \"<span class='font-weight-bold'>Scoped label</span>\",\n '<br>',\n '<%= escapeStr(label.description) %>',\n '<% } else { %>',\n '<%= escapeStr(label.description) %>',\n '<% } %>',\n ].join(''),\n );\n\n const tpl = template(\n [\n '<% labels.forEach(function(label){ %>',\n '<% if (isScopedLabel(label) && enableScopedLabels) { %>',\n '<%= scopedLabelTemplate({ label, issueUpdateURL, isScopedLabel, enableScopedLabels, labelTextClass, rightLabelTextClass, tooltipTitleTemplate, escapeStr, linkAttrs: \\'data-html=\"true\"\\' }) %>',\n '<% } else { %>',\n '<%= labelTemplate({ label, issueUpdateURL, isScopedLabel, enableScopedLabels, labelTextClass, tooltipTitleTemplate, escapeStr, linkAttrs: \"\" }) %>',\n '<% } %>',\n '<% }); %>',\n ].join(''),\n );\n\n return tpl({\n ...tplData,\n labelTemplate,\n labelTextClass,\n rightLabelTextClass,\n scopedLabelTemplate,\n tooltipTitleTemplate,\n isScopedLabel,\n escapeStr: escape,\n });\n }\n\n bindEvents() {\n return $('body').on(\n 'change',\n '.issuable-list input[type=\"checkbox\"]',\n this.onSelectCheckboxIssue,\n );\n }\n // eslint-disable-next-line class-methods-use-this\n onSelectCheckboxIssue() {\n if ($('.issuable-list input[type=\"checkbox\"]:checked').length) {\n return;\n }\n return $('.issues-bulk-update .labels-filter .dropdown-toggle-text').text(__('Label'));\n }\n // eslint-disable-next-line class-methods-use-this\n enableBulkLabelDropdown() {\n IssuableBulkUpdateActions.willUpdateLabels = true;\n }\n // eslint-disable-next-line class-methods-use-this\n setDropdownData($dropdown, isMarking, labelId) {\n let userCheckedIds = $dropdown.data('user-checked') || [];\n let userUncheckedIds = $dropdown.data('user-unchecked') || [];\n\n if (isMarking) {\n userCheckedIds = union(userCheckedIds, [labelId]);\n userUncheckedIds = difference(userUncheckedIds, [labelId]);\n } else {\n userUncheckedIds = union(userUncheckedIds, [labelId]);\n userCheckedIds = difference(userCheckedIds, [labelId]);\n }\n\n $dropdown.data('user-checked', userCheckedIds);\n $dropdown.data('user-unchecked', userUncheckedIds);\n }\n // eslint-disable-next-line class-methods-use-this\n setOriginalDropdownData($container, $dropdown) {\n const labels = [];\n $container.find('[name=\"label_name[]\"]').map(function () {\n return labels.push(this.value);\n });\n $dropdown.data('marked', labels);\n }\n}\n","// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions, mapState } from 'vuex';\nimport { scrollToElement, contentTop } from '~/lib/utils/common_utils';\n\nfunction isOverviewPage() {\n return window.mrTabs?.currentAction === 'show';\n}\n\nfunction getAllDiscussionElements() {\n const containerEl = isOverviewPage() ? '.tab-pane.notes' : '.diffs';\n return Array.from(\n document.querySelectorAll(\n `${containerEl} div[data-discussion-id][data-discussion-resolvable]:not([data-discussion-resolved])`,\n ),\n );\n}\n\nfunction hasReachedPageEnd() {\n return document.body.scrollHeight <= Math.ceil(window.scrollY + window.innerHeight);\n}\n\nfunction findNextClosestVisibleDiscussion(discussionElements) {\n const offsetHeight = contentTop();\n let isActive;\n const index = discussionElements.findIndex((element) => {\n const { y } = element.getBoundingClientRect();\n const visibleHorizontalOffset = Math.ceil(y) - offsetHeight;\n // handle rect rounding errors\n isActive = visibleHorizontalOffset < 2;\n return visibleHorizontalOffset >= 0;\n });\n return [discussionElements[index], index, isActive];\n}\n\nfunction getNextDiscussion() {\n const discussionElements = getAllDiscussionElements();\n const firstDiscussion = discussionElements[0];\n if (hasReachedPageEnd()) {\n return firstDiscussion;\n }\n const [nextClosestDiscussion, index, isActive] =\n findNextClosestVisibleDiscussion(discussionElements);\n if (nextClosestDiscussion && !isActive) {\n return nextClosestDiscussion;\n }\n const nextDiscussion = discussionElements[index + 1];\n if (!nextClosestDiscussion || !nextDiscussion) {\n return firstDiscussion;\n }\n return nextDiscussion;\n}\n\nfunction getPreviousDiscussion() {\n const discussionElements = getAllDiscussionElements();\n const lastDiscussion = discussionElements[discussionElements.length - 1];\n const [, index] = findNextClosestVisibleDiscussion(discussionElements);\n const previousDiscussion = discussionElements[index - 1];\n if (previousDiscussion) {\n return previousDiscussion;\n }\n return lastDiscussion;\n}\n\n// eslint-disable-next-line max-params\nfunction handleJumpForBothPages(getDiscussion, ctx, fn, scrollOptions) {\n const discussion = getDiscussion();\n\n if (!isOverviewPage() && !discussion) {\n window.mrTabs?.eventHub.$once('NotesAppReady', () => {\n handleJumpForBothPages(getDiscussion, ctx, fn, scrollOptions);\n });\n window.mrTabs?.setCurrentAction('show');\n window.mrTabs?.tabShown('show', undefined, false);\n return;\n }\n\n if (discussion) {\n const id = discussion.dataset.discussionId;\n ctx.expandDiscussion({ discussionId: id });\n scrollToElement(discussion, scrollOptions);\n }\n}\n\nexport default {\n computed: {\n ...mapGetters([\n 'nextUnresolvedDiscussionId',\n 'previousUnresolvedDiscussionId',\n 'getDiscussion',\n ]),\n ...mapState({\n currentDiscussionId: (state) => state.notes.currentDiscussionId,\n }),\n },\n methods: {\n ...mapActions(['expandDiscussion', 'setCurrentDiscussionId']),\n ...mapActions('diffs', ['scrollToFile', 'disableVirtualScroller']),\n\n async jumpToNextDiscussion(scrollOptions) {\n await this.disableVirtualScroller();\n\n handleJumpForBothPages(\n getNextDiscussion,\n this,\n this.nextUnresolvedDiscussionId,\n scrollOptions,\n );\n },\n\n async jumpToPreviousDiscussion(scrollOptions) {\n await this.disableVirtualScroller();\n\n handleJumpForBothPages(\n getPreviousDiscussion,\n this,\n this.previousUnresolvedDiscussionId,\n scrollOptions,\n );\n },\n\n jumpToFirstUnresolvedDiscussion() {\n this.setCurrentDiscussionId(null)\n .then(() => {\n this.jumpToNextDiscussion();\n })\n .catch(() => {});\n },\n },\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('timeline-entry-item',{staticClass:\"system-note\",class:{\n target: _vm.isTargetNote,\n 'pr-0': _vm.shouldShowDescriptionVersion,\n },attrs:{\"id\":_vm.noteAnchorId}},[_c('div',{staticClass:\"gl-relative gl-float-left gl-flex gl-items-center gl-justify-center gl-rounded-full\",class:[\n _vm.iconBgClass,\n {\n 'system-note-icon -gl-mt-1 gl-ml-2 gl-h-6 gl-w-6': _vm.isAllowedIcon,\n 'system-note-dot -gl-top-1 gl-ml-4 gl-mt-3 gl-h-3 gl-w-3 gl-border-2 gl-border-solid gl-border-subtle gl-bg-gray-900':\n !_vm.isAllowedIcon,\n },\n ]},[(_vm.isAllowedIcon)?_c('gl-icon',{attrs:{\"name\":_vm.systemNoteIconName,\"size\":14,\"data-testid\":\"timeline-icon\"}}):_vm._e()],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-ml-7\"},[_c('div',{staticClass:\"gl-flex gl-items-start gl-justify-between\"},[_c('note-header',{attrs:{\"author\":_vm.note.author,\"created-at\":_vm.note.created_at,\"note-id\":_vm.note.id,\"is-system-note\":true,\"is-imported\":_vm.note.imported},scopedSlots:_vm._u([(_vm.canSeeDescriptionVersion || _vm.note.outdated_line_change_path)?{key:\"extra-controls\",fn:function(){return [(_vm.canSeeDescriptionVersion)?_c('gl-button',{staticClass:\"gl-ml-3 gl-align-text-bottom !gl-text-sm\",attrs:{\"variant\":\"link\",\"icon\":_vm.descriptionVersionToggleIcon,\"data-testid\":\"compare-btn\"},on:{\"click\":_vm.toggleDescriptionVersion}},[_vm._v(_vm._s(_vm.__('Compare with previous version')))]):_vm._e(),_vm._v(\" \"),(_vm.note.outdated_line_change_path)?_c('gl-button',{staticClass:\"gl-align-text-bottom !gl-text-sm\",attrs:{\"icon\":_vm.showLines ? 'chevron-up' : 'chevron-down',\"variant\":\"link\",\"data-testid\":\"outdated-lines-change-btn\"},on:{\"click\":_vm.toggleDiff}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Compare changes'))+\"\\n \")]):_vm._e()]},proxy:true}:null],null,true)},[_c('span',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.actionTextHtml),expression:\"actionTextHtml\"}],ref:\"gfm-content\"})])],1),_vm._v(\" \"),_c('div',{staticClass:\"note-body gl-pb-3 gl-pl-3\"},[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.note.note_html),expression:\"note.note_html\"}],staticClass:\"note-text md\",class:{\n 'gl-block gl-overflow-hidden': _vm.hasMoreCommits,\n 'system-note-commit-list': _vm.hasMoreCommits && !_vm.expanded,\n }}),_vm._v(\" \"),(_vm.hasMoreCommits)?_c('div',{staticClass:\"flex-list\"},[_c('div',{staticClass:\"flex-row gl-relative gl-z-2 gl-cursor-pointer gl-pl-4 gl-pt-3 gl-text-link hover:gl-underline\",on:{\"click\":function($event){_vm.expanded = !_vm.expanded}}},[_c('gl-icon',{staticClass:\"gl-mr-2\",attrs:{\"name\":_vm.toggleIcon,\"size\":12}}),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.__('Toggle commit list')))])],1)]):_vm._e(),_vm._v(\" \"),(_vm.shouldShowDescriptionVersion)?_c('div',{staticClass:\"gl-relative !gl-pt-3\",attrs:{\"data-testid\":\"description-version\"}},[(_vm.isLoadingDescriptionVersion)?_c('pre',{staticClass:\"loading-state\"},[_vm._v(\" \"),_c('gl-skeleton-loader'),_vm._v(\"\\n \")],1):_c('pre',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.descriptionVersion),expression:\"descriptionVersion\"}],staticClass:\"gl-mt-3 gl-whitespace-pre-wrap gl-pr-7\"}),_vm._v(\" \"),(_vm.displayDeleteButton)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-absolute\",class:_vm.deleteButtonClasses,attrs:{\"title\":_vm.$options.i18n.deleteButtonLabel,\"aria-label\":_vm.$options.i18n.deleteButtonLabel,\"variant\":\"default\",\"category\":\"tertiary\",\"icon\":\"remove\",\"data-testid\":\"delete-description-version-button\"},on:{\"click\":_vm.deleteDescriptionVersion}}):_vm._e()],1):_vm._e(),_vm._v(\" \"),(_vm.lines.length && _vm.showLines)?_c('div',{staticClass:\"gl-my-2 gl-mr-5 gl-overflow-hidden gl-overflow-visible gl-rounded-small gl-border-1 gl-border-solid gl-border-strong gl-pl-0\"},[_c('table',{staticClass:\"code js-syntax-highlight\",class:_vm.$options.userColorSchemeClass,attrs:{\"data-testid\":\"outdated-lines\"}},_vm._m(0),0)]):(_vm.showLines)?_c('div',{staticClass:\"gl-mt-4\"},[_c('gl-skeleton-loader')],1):_vm._e()])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _vm._l((_vm.lines),function(line){return _c('tr',{key:line.line_code,staticClass:\"line_holder\"},[_c('td',{staticClass:\"diff-line-num old_line !gl-rounded-none !gl-border-0 !gl-border-b-0 !gl-border-t-0\",class:line.type},[_vm._v(\"\\n \"+_vm._s(line.old_line)+\"\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"diff-line-num new_line !gl-border-b-0 !gl-border-t-0\",class:line.type},[_vm._v(\"\\n \"+_vm._s(line.new_line)+\"\\n \")]),_vm._v(\" \"),_c('td',{staticClass:\"line_content !gl-table-cell !gl-rounded-none !gl-border-0\",class:line.type,domProps:{\"innerHTML\":_vm._s(line.rich_text /* eslint-disable-line vue/no-v-html */)}})])})\n}]\n\nexport { render, staticRenderFns }","export default {\n data() {\n return {\n isDescriptionVersionExpanded: false,\n deleteInProgress: false,\n };\n },\n computed: {\n canSeeDescriptionVersion() {\n return Boolean(\n this.note.description_diff_path &&\n this.note.description_version_id &&\n !this.note.description_version_deleted,\n );\n },\n displayDeleteButton() {\n return (\n this.note.can_delete_description_version &&\n !this.deleteInProgress &&\n !this.note.description_version_deleted\n );\n },\n shouldShowDescriptionVersion() {\n return this.canSeeDescriptionVersion && this.isDescriptionVersionExpanded;\n },\n descriptionVersionToggleIcon() {\n return this.isDescriptionVersionExpanded ? 'chevron-up' : 'chevron-down';\n },\n },\n methods: {\n toggleDescriptionVersion() {\n this.isDescriptionVersionExpanded = !this.isDescriptionVersionExpanded;\n const versionId = this.note.description_version_id;\n\n if (this.descriptionVersions?.[versionId]) {\n return false;\n }\n\n const endpoint = this.note.description_diff_path;\n const startingVersion = this.note.start_description_version_id;\n\n return this.fetchDescriptionVersion({ endpoint, startingVersion, versionId });\n },\n deleteDescriptionVersion() {\n const endpoint = this.note.delete_description_version_path;\n const startingVersion = this.note.start_description_version_id;\n const versionId = this.note.description_version_id;\n this.deleteInProgress = true;\n return this.softDeleteDescriptionVersion({ endpoint, startingVersion, versionId }).catch(\n () => {\n this.deleteInProgress = false;\n },\n );\n },\n },\n};\n","<script>\n/**\n * Common component to render a system note, icon and user information.\n *\n * This component needs to be used with a vuex store.\n * That vuex store needs to have a `targetNoteHash` getter\n *\n * @example\n * <system-note\n * :note=\"{\n * id: String,\n * author: Object,\n * createdAt: String,\n * note_html: String,\n * system_note_icon_name: String\n * }\"\n * />\n */\nimport { GlButton, GlSkeletonLoader, GlTooltipDirective, GlIcon } from '@gitlab/ui';\nimport $ from 'jquery';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters, mapActions, mapState } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport descriptionVersionHistoryMixin from 'ee_else_ce/notes/mixins/description_version_history';\nimport axios from '~/lib/utils/axios_utils';\nimport { __ } from '~/locale';\nimport NoteHeader from '~/notes/components/note_header.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { renderGFM } from '~/behaviors/markdown/render_gfm';\nimport TimelineEntryItem from './timeline_entry_item.vue';\n\nconst MAX_VISIBLE_COMMIT_LIST_COUNT = 3;\nconst ICON_COLORS = {\n check: 'system-note-icon-success',\n 'merge-request-close': 'system-note-icon-danger',\n merge: 'system-note-icon-info',\n 'issue-close': 'system-note-icon-info',\n issues: 'system-note-icon-success',\n error: 'system-note-icon-danger',\n};\n\nexport default {\n i18n: {\n deleteButtonLabel: __('Remove description history'),\n },\n name: 'SystemNote',\n components: {\n GlIcon,\n NoteHeader,\n TimelineEntryItem,\n GlButton,\n GlSkeletonLoader,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n SafeHtml,\n },\n mixins: [descriptionVersionHistoryMixin, glFeatureFlagsMixin()],\n props: {\n note: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n expanded: false,\n lines: [],\n showLines: false,\n loadingDiff: false,\n };\n },\n computed: {\n ...mapGetters(['targetNoteHash', 'descriptionVersions', 'getNoteableData']),\n ...mapState(['isLoadingDescriptionVersion']),\n noteAnchorId() {\n return `note_${this.note.id}`;\n },\n isAllowedIcon() {\n return Object.keys(ICON_COLORS).includes(this.note.system_note_icon_name);\n },\n isTargetNote() {\n return this.targetNoteHash === this.noteAnchorId;\n },\n toggleIcon() {\n return this.expanded ? 'chevron-up' : 'chevron-down';\n },\n // following 2 methods taken from code in `collapseLongCommitList` of notes.js:\n actionTextHtml() {\n return $(this.note.note_html).unwrap().html();\n },\n hasMoreCommits() {\n return $(this.note.note_html).filter('ul').children().length > MAX_VISIBLE_COMMIT_LIST_COUNT;\n },\n descriptionVersion() {\n return this.descriptionVersions[this.note.description_version_id];\n },\n singleLineDescription() {\n return !this.descriptionVersion?.match(/\\n/g);\n },\n deleteButtonClasses() {\n return this.singleLineDescription ? 'gl-top-5 gl-right-2 gl-mt-2' : 'gl-top-6 gl-right-3';\n },\n isMergeRequest() {\n return this.getNoteableData.noteableType === 'MergeRequest';\n },\n iconBgClass() {\n return ICON_COLORS[this.note.system_note_icon_name] || 'gl-bg-gray-50 gl-text-subtle';\n },\n systemNoteIconName() {\n let icon = this.note.system_note_icon_name;\n if (this.note.system_note_icon_name === 'issues') {\n // eslint-disable-next-line @gitlab/require-i18n-strings\n if (this.note.noteable_type === 'Issue') {\n icon = 'issue-open-m';\n } else if (this.note.noteable_type === 'MergeRequest') {\n icon = 'merge-request';\n }\n }\n return icon;\n },\n },\n mounted() {\n renderGFM(this.$refs['gfm-content']);\n },\n methods: {\n ...mapActions(['fetchDescriptionVersion', 'softDeleteDescriptionVersion']),\n async toggleDiff() {\n this.showLines = !this.showLines;\n\n if (!this.lines.length) {\n this.loadingDiff = true;\n const { data } = await axios.get(this.note.outdated_line_change_path);\n\n this.lines = data.map((l) => ({\n ...l,\n rich_text: l.rich_text.replace(/^[+ -]/, ''),\n }));\n this.loadingDiff = false;\n }\n },\n },\n userColorSchemeClass: window.gon.user_color_scheme,\n};\n</script>\n\n<template>\n <timeline-entry-item\n :id=\"noteAnchorId\"\n :class=\"{\n target: isTargetNote,\n 'pr-0': shouldShowDescriptionVersion,\n }\"\n class=\"system-note\"\n >\n <div\n :class=\"[\n iconBgClass,\n {\n 'system-note-icon -gl-mt-1 gl-ml-2 gl-h-6 gl-w-6': isAllowedIcon,\n 'system-note-dot -gl-top-1 gl-ml-4 gl-mt-3 gl-h-3 gl-w-3 gl-border-2 gl-border-solid gl-border-subtle gl-bg-gray-900':\n !isAllowedIcon,\n },\n ]\"\n class=\"gl-relative gl-float-left gl-flex gl-items-center gl-justify-center gl-rounded-full\"\n >\n <gl-icon\n v-if=\"isAllowedIcon\"\n :name=\"systemNoteIconName\"\n :size=\"14\"\n data-testid=\"timeline-icon\"\n />\n </div>\n <div class=\"gl-ml-7\">\n <div class=\"gl-flex gl-items-start gl-justify-between\">\n <note-header\n :author=\"note.author\"\n :created-at=\"note.created_at\"\n :note-id=\"note.id\"\n :is-system-note=\"true\"\n :is-imported=\"note.imported\"\n >\n <span ref=\"gfm-content\" v-safe-html=\"actionTextHtml\"></span>\n <template\n v-if=\"canSeeDescriptionVersion || note.outdated_line_change_path\"\n #extra-controls\n >\n <gl-button\n v-if=\"canSeeDescriptionVersion\"\n variant=\"link\"\n :icon=\"descriptionVersionToggleIcon\"\n data-testid=\"compare-btn\"\n class=\"gl-ml-3 gl-align-text-bottom !gl-text-sm\"\n @click=\"toggleDescriptionVersion\"\n >{{ __('Compare with previous version') }}</gl-button\n >\n <gl-button\n v-if=\"note.outdated_line_change_path\"\n :icon=\"showLines ? 'chevron-up' : 'chevron-down'\"\n variant=\"link\"\n data-testid=\"outdated-lines-change-btn\"\n class=\"gl-align-text-bottom !gl-text-sm\"\n @click=\"toggleDiff\"\n >\n {{ __('Compare changes') }}\n </gl-button>\n </template>\n </note-header>\n </div>\n <div class=\"note-body gl-pb-3 gl-pl-3\">\n <div\n v-safe-html=\"note.note_html\"\n :class=\"{\n 'gl-block gl-overflow-hidden': hasMoreCommits,\n 'system-note-commit-list': hasMoreCommits && !expanded,\n }\"\n class=\"note-text md\"\n ></div>\n <div v-if=\"hasMoreCommits\" class=\"flex-list\">\n <div\n class=\"flex-row gl-relative gl-z-2 gl-cursor-pointer gl-pl-4 gl-pt-3 gl-text-link hover:gl-underline\"\n @click=\"expanded = !expanded\"\n >\n <gl-icon :name=\"toggleIcon\" :size=\"12\" class=\"gl-mr-2\" />\n <span>{{ __('Toggle commit list') }}</span>\n </div>\n </div>\n <div\n v-if=\"shouldShowDescriptionVersion\"\n class=\"gl-relative !gl-pt-3\"\n data-testid=\"description-version\"\n >\n <pre v-if=\"isLoadingDescriptionVersion\" class=\"loading-state\">\n <gl-skeleton-loader />\n </pre>\n <pre\n v-else\n v-safe-html=\"descriptionVersion\"\n class=\"gl-mt-3 gl-whitespace-pre-wrap gl-pr-7\"\n ></pre>\n <gl-button\n v-if=\"displayDeleteButton\"\n v-gl-tooltip\n :title=\"$options.i18n.deleteButtonLabel\"\n :aria-label=\"$options.i18n.deleteButtonLabel\"\n variant=\"default\"\n category=\"tertiary\"\n icon=\"remove\"\n class=\"gl-absolute\"\n :class=\"deleteButtonClasses\"\n data-testid=\"delete-description-version-button\"\n @click=\"deleteDescriptionVersion\"\n />\n </div>\n <div\n v-if=\"lines.length && showLines\"\n class=\"gl-my-2 gl-mr-5 gl-overflow-hidden gl-overflow-visible gl-rounded-small gl-border-1 gl-border-solid gl-border-strong gl-pl-0\"\n >\n <table\n :class=\"$options.userColorSchemeClass\"\n class=\"code js-syntax-highlight\"\n data-testid=\"outdated-lines\"\n >\n <tr v-for=\"line in lines\" v-once :key=\"line.line_code\" class=\"line_holder\">\n <td\n :class=\"line.type\"\n class=\"diff-line-num old_line !gl-rounded-none !gl-border-0 !gl-border-b-0 !gl-border-t-0\"\n >\n {{ line.old_line }}\n </td>\n <td :class=\"line.type\" class=\"diff-line-num new_line !gl-border-b-0 !gl-border-t-0\">\n {{ line.new_line }}\n </td>\n <td\n :class=\"line.type\"\n class=\"line_content !gl-table-cell !gl-rounded-none !gl-border-0\"\n v-html=\"line.rich_text /* eslint-disable-line vue/no-v-html */\"\n ></td>\n </tr>\n </table>\n </div>\n <div v-else-if=\"showLines\" class=\"gl-mt-4\">\n <gl-skeleton-loader />\n </div>\n </div>\n </div>\n </timeline-entry-item>\n</template>\n","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!./system_note.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!./system_note.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./system_note.vue?vue&type=template&id=61beba08\"\nimport script from \"./system_note.vue?vue&type=script&lang=js\"\nexport * from \"./system_note.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-form-input',{staticClass:\"reply-placeholder-input-field js-discussion-reply-field-placeholder\",attrs:{\"data-testid\":\"discussion-reply-tab\",\"placeholder\":_vm.placeholderText,\"aria-label\":_vm.labelText},on:{\"focus\":function($event){return _vm.$emit('focus')}}})\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!./discussion_reply_placeholder.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!./discussion_reply_placeholder.vue?vue&type=script&lang=js\"","<script>\nimport { GlFormInput } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n name: 'ReplyPlaceholder',\n components: {\n GlFormInput,\n },\n props: {\n placeholderText: {\n type: String,\n required: false,\n default: __('Reply…'),\n },\n labelText: {\n type: String,\n required: false,\n default: __('Reply to comment'),\n },\n },\n};\n</script>\n\n<template>\n <gl-form-input\n class=\"reply-placeholder-input-field js-discussion-reply-field-placeholder\"\n data-testid=\"discussion-reply-tab\"\n :placeholder=\"placeholderText\"\n :aria-label=\"labelText\"\n @focus=\"$emit('focus')\"\n />\n</template>\n","import { render, staticRenderFns } from \"./discussion_reply_placeholder.vue?vue&type=template&id=3b8db008\"\nimport script from \"./discussion_reply_placeholder.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_reply_placeholder.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\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Iteration\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"startDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"dueDate\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationCadence\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":130}};\n doc.loc.source = {\"body\":\"fragment IterationFragment on Iteration {\\n id\\n title\\n startDate\\n dueDate\\n webUrl\\n iterationCadence {\\n id\\n title\\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[\"IterationFragment\"] = oneQuery(doc, \"IterationFragment\");\n \n","import { normalizeHeaders } from './common_utils';\nimport { HTTP_STATUS_ABORTED, successCodes } from './http_status';\n\n/**\n * Polling utility for handling realtime updates.\n * Requirements: Promise based HTTP client\n *\n * Service for promise based http client and method need to be provided as props\n *\n * @example\n * new Poll({\n * resource: resource,\n * method: 'name',\n * data: {page: 1, scope: 'all'}, // optional\n * successCallback: () => {},\n * errorCallback: () => {},\n * notificationCallback: () => {}, // optional\n * }).makeRequest();\n *\n * Usage in pipelines table with visibility lib:\n *\n * const poll = new Poll({\n * resource: this.service,\n * method: 'getPipelines',\n * data: { page: pageNumber, scope },\n * successCallback: this.successCallback,\n * errorCallback: this.errorCallback,\n * notificationCallback: this.updateLoading,\n * });\n *\n * if (!Visibility.hidden()) {\n * poll.makeRequest();\n * }\n *\n * Visibility.change(() => {\n * if (!Visibility.hidden()) {\n * poll.restart();\n * } else {\n * poll.stop();\n * }\n * });\n *\n * 1. Checks for response and headers before start polling\n * 2. Interval is provided by `Poll-Interval` header.\n * 3. If `Poll-Interval` is -1, we stop polling\n * 4. If HTTP response is 200, we poll.\n * 5. If HTTP response is different from 200, we stop polling.\n *\n * @example\n * // With initial delay (for, for example, reducing unnecessary requests)\n *\n * const poll = new Poll({\n * resource: this.service,\n * method: 'fetchNotes',\n * successCallback: () => {},\n * errorCallback: () => {},\n * });\n *\n * // Performs the first request in 2.5s and then uses the `Poll-Interval` header.\n * poll.makeDelayedRequest(2500);\n *\n */\nexport default class Poll {\n constructor(options = {}) {\n this.options = options;\n this.options.data = options.data || {};\n this.options.notificationCallback =\n options.notificationCallback || function notificationCallback() {};\n\n this.intervalHeader = 'POLL-INTERVAL';\n this.timeoutID = null;\n this.canPoll = true;\n }\n\n checkConditions(response) {\n const headers = normalizeHeaders(response.headers);\n const pollInterval = parseInt(headers[this.intervalHeader], 10);\n if (pollInterval > 0 && successCodes.indexOf(response.status) !== -1 && this.canPoll) {\n if (this.timeoutID) {\n clearTimeout(this.timeoutID);\n }\n\n this.timeoutID = setTimeout(() => {\n this.makeRequest();\n }, pollInterval);\n }\n this.options.successCallback(response);\n }\n\n makeDelayedRequest(delay = 0) {\n // So we don't make our specs artificially slower\n this.timeoutID = setTimeout(\n () => this.makeRequest(),\n process.env.NODE_ENV !== 'test' ? delay : 1,\n );\n }\n\n makeRequest() {\n const { resource, method, data, errorCallback, notificationCallback } = this.options;\n\n // It's called everytime a new request is made. Useful to update the status.\n notificationCallback(true);\n\n return resource[method](data)\n .then((response) => {\n this.checkConditions(response);\n notificationCallback(false);\n })\n .catch((error) => {\n notificationCallback(false);\n if (error.status === HTTP_STATUS_ABORTED) {\n return;\n }\n errorCallback(error);\n });\n }\n\n /**\n * Stops the polling recursive chain\n * and guarantees if the timeout is already running it won't make another request by\n * cancelling the previously established timeout.\n */\n stop() {\n this.canPoll = false;\n clearTimeout(this.timeoutID);\n }\n\n /**\n * Enables polling after it has been stopped\n */\n enable(options) {\n if (options && options.data) {\n this.options.data = options.data;\n }\n\n this.canPoll = true;\n\n if (options && options.response) {\n this.checkConditions(options.response);\n }\n }\n\n /**\n * Restarts polling after it has been stopped and makes a request\n */\n restart(options) {\n this.enable(options);\n this.makeRequest();\n }\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[(!_vm.isLoading)?_c('clipboard-button',_vm._b({attrs:{\"css-class\":\"sidebar-collapsed-icon js-dont-change-state !gl-rounded-none hover:gl-bg-transparent\"}},'clipboard-button',_vm.clipboardProps,false)):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed gl-flex gl-items-center gl-justify-between\"},[_c('span',{staticClass:\"gl-overflow-hidden gl-text-ellipsis gl-whitespace-nowrap\",attrs:{\"title\":_vm.value}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.templateText},scopedSlots:_vm._u([{key:\"name\",fn:function(){return [_vm._v(_vm._s(_vm.name))]},proxy:true},{key:\"value\",fn:function(){return [_vm._v(_vm._s(_vm.value))]},proxy:true}])})],1),_vm._v(\" \"),(_vm.isLoading)?_c('gl-loading-icon',{attrs:{\"size\":\"sm\",\"inline\":\"\",\"label\":_vm.loadingIconLabel}}):_c('clipboard-button',_vm._b({attrs:{\"size\":\"small\"}},'clipboard-button',_vm.clipboardProps,false))],1)],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!./copyable_field.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!./copyable_field.vue?vue&type=script&lang=js\"","<script>\nimport { GlLoadingIcon, GlSprintf } from '@gitlab/ui';\nimport { s__, __, sprintf } from '~/locale';\nimport ClipboardButton from '~/vue_shared/components/clipboard_button.vue';\n\n/**\n * Renders an inline field, whose value can be copied to the clipboard,\n * for use in the GitLab sidebar (issues, MRs, etc.).\n */\nexport default {\n name: 'CopyableField',\n components: {\n ClipboardButton,\n GlLoadingIcon,\n GlSprintf,\n },\n props: {\n value: {\n type: String,\n required: true,\n },\n name: {\n type: String,\n required: true,\n },\n isLoading: {\n type: Boolean,\n required: false,\n default: false,\n },\n clipboardTooltipText: {\n type: String,\n required: false,\n default: undefined,\n },\n },\n computed: {\n clipboardProps() {\n return {\n category: 'tertiary',\n tooltipBoundary: 'viewport',\n tooltipPlacement: 'left',\n text: this.value,\n title:\n this.clipboardTooltipText ||\n sprintf(this.$options.i18n.clipboardTooltip, { name: this.name }),\n };\n },\n loadingIconLabel() {\n return sprintf(this.$options.i18n.loadingIconLabel, { name: this.name });\n },\n },\n i18n: {\n loadingIconLabel: __('Loading %{name}'),\n clipboardTooltip: __('Copy %{name}'),\n templateText: s__('Sidebar|%{name}: %{value}'),\n },\n};\n</script>\n\n<template>\n <div>\n <clipboard-button\n v-if=\"!isLoading\"\n css-class=\"sidebar-collapsed-icon js-dont-change-state !gl-rounded-none hover:gl-bg-transparent\"\n v-bind=\"clipboardProps\"\n />\n\n <div class=\"hide-collapsed gl-flex gl-items-center gl-justify-between\">\n <span class=\"gl-overflow-hidden gl-text-ellipsis gl-whitespace-nowrap\" :title=\"value\">\n <gl-sprintf :message=\"$options.i18n.templateText\">\n <template #name>{{ name }}</template>\n <template #value>{{ value }}</template>\n </gl-sprintf>\n </span>\n\n <gl-loading-icon v-if=\"isLoading\" size=\"sm\" inline :label=\"loadingIconLabel\" />\n <clipboard-button v-else size=\"small\" v-bind=\"clipboardProps\" />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./copyable_field.vue?vue&type=template&id=05f82842\"\nimport script from \"./copyable_field.vue?vue&type=script&lang=js\"\nexport * from \"./copyable_field.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-button',_vm._b({class:{ 'btn-icon': _vm.isIconButton },attrs:{\"aria-label\":_vm.buttonLabel},on:{\"click\":function($event){return _vm.onToggle($event)}}},'gl-button',_vm.$attrs,false),[_vm._t(\"default\",function(){return [_vm._v(_vm._s(_vm.buttonLabel))]})],2)\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!./todo_button.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!./todo_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { todoLabel, updateGlobalTodoCount } from '../../utils';\n\nexport default {\n components: {\n GlButton,\n },\n props: {\n isTodo: {\n type: Boolean,\n required: false,\n default: true,\n },\n isIconButton: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n buttonLabel() {\n return todoLabel(this.isTodo);\n },\n },\n methods: {\n incrementGlobalTodoCount() {\n updateGlobalTodoCount(1);\n },\n decrementGlobalTodoCount() {\n updateGlobalTodoCount(-1);\n },\n onToggle(event) {\n if (this.isTodo) {\n this.decrementGlobalTodoCount();\n } else {\n this.incrementGlobalTodoCount();\n }\n this.$emit('click', event);\n },\n },\n};\n</script>\n\n<template>\n <gl-button\n v-bind=\"$attrs\"\n :aria-label=\"buttonLabel\"\n :class=\"{ 'btn-icon': isIconButton }\"\n @click=\"onToggle($event)\"\n >\n <slot>{{ buttonLabel }}</slot>\n </gl-button>\n</template>\n","import { render, staticRenderFns } from \"./todo_button.vue?vue&type=template&id=1d8cd8ea\"\nimport script from \"./todo_button.vue?vue&type=script&lang=js\"\nexport * from \"./todo_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","'use strict';\n\nvar Type = require('../type');\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\nvar _toString = Object.prototype.toString;\n\nfunction resolveYamlOmap(data) {\n if (data === null) return true;\n\n var objectKeys = [], index, length, pair, pairKey, pairHasKey,\n object = data;\n\n for (index = 0, length = object.length; index < length; index += 1) {\n pair = object[index];\n pairHasKey = false;\n\n if (_toString.call(pair) !== '[object Object]') return false;\n\n for (pairKey in pair) {\n if (_hasOwnProperty.call(pair, pairKey)) {\n if (!pairHasKey) pairHasKey = true;\n else return false;\n }\n }\n\n if (!pairHasKey) return false;\n\n if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey);\n else return false;\n }\n\n return true;\n}\n\nfunction constructYamlOmap(data) {\n return data !== null ? data : [];\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:omap', {\n kind: 'sequence',\n resolve: resolveYamlOmap,\n construct: constructYamlOmap\n});\n","function getFileReviewsKey(mrPath) {\n return `${mrPath}-file-reviews`;\n}\n\nexport function isFileReviewed(reviews, file) {\n const fileReviews = reviews[file.file_identifier_hash];\n\n return file?.id && fileReviews?.length ? new Set(fileReviews).has(file.id) : false;\n}\n\nexport function reviewStatuses(files, reviews) {\n return files.reduce((flat, file) => {\n return {\n ...flat,\n [file.id]: isFileReviewed(reviews, file),\n };\n }, {});\n}\n\nexport function getReviewsForMergeRequest(mrPath) {\n const reviewsForMr = localStorage.getItem(getFileReviewsKey(mrPath));\n let reviews = {};\n\n if (reviewsForMr) {\n try {\n reviews = JSON.parse(reviewsForMr);\n } catch (err) {\n reviews = {};\n }\n }\n\n return reviews;\n}\n\nexport function setReviewsForMergeRequest(mrPath, reviews) {\n localStorage.setItem(getFileReviewsKey(mrPath), JSON.stringify(reviews));\n\n return reviews;\n}\n\nexport function reviewable(file) {\n return Boolean(file.id) && Boolean(file.file_identifier_hash);\n}\n\nexport function markFileReview(reviews, file, reviewed = true) {\n const usableReviews = { ...reviews };\n const updatedReviews = usableReviews;\n let fileReviews;\n\n if (reviewable(file)) {\n fileReviews = new Set(usableReviews[file.file_identifier_hash] || []);\n\n if (reviewed) {\n fileReviews.add(file.id);\n fileReviews.add(`hash:${file.file_hash}`);\n } else {\n fileReviews.delete(file.id);\n fileReviews.delete(`hash:${file.file_hash}`);\n }\n\n updatedReviews[file.file_identifier_hash] = Array.from(fileReviews);\n\n if (updatedReviews[file.file_identifier_hash].length === 0) {\n delete updatedReviews[file.file_identifier_hash];\n }\n }\n\n return updatedReviews;\n}\n","/* eslint-disable func-names, consistent-return, no-param-reassign */\n\nimport $ from 'jquery';\nimport { setCookie } from '~/lib/utils/common_utils';\nimport { hide, fixTitle } from '~/tooltips';\nimport { __ } from './locale';\n\nconst updateSidebarClasses = (layoutPage, rightSidebar, windowSize = window.innerWidth) => {\n if (windowSize >= 992) {\n layoutPage.classList.remove('right-sidebar-expanded', 'right-sidebar-collapsed');\n rightSidebar.classList.remove('right-sidebar-collapsed');\n rightSidebar.classList.add('right-sidebar-expanded');\n } else {\n layoutPage.classList.add('right-sidebar-collapsed', 'is-merge-request');\n rightSidebar.classList.add('right-sidebar-collapsed');\n rightSidebar.classList.remove('right-sidebar-expanded');\n }\n};\n\nfunction Sidebar() {\n this.sidebar = $('aside');\n\n this.isMR = /projects:merge_requests:/.test(document.body.dataset.page);\n\n this.removeListeners();\n this.addEventListeners();\n}\n\nSidebar.initialize = function () {\n if (!this.instance) {\n this.instance = new Sidebar();\n }\n};\n\nSidebar.prototype.removeListeners = function () {\n this.sidebar.off('click', '.sidebar-collapsed-icon');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.sidebar.off('hidden.gl.dropdown');\n // eslint-disable-next-line @gitlab/no-global-event-off\n this.sidebar.off('hiddenGlDropdown');\n // eslint-disable-next-line @gitlab/no-global-event-off\n $('.dropdown').off('loading.gl.dropdown');\n // eslint-disable-next-line @gitlab/no-global-event-off\n $('.dropdown').off('loaded.gl.dropdown');\n $(document).off('click', '.js-sidebar-toggle');\n};\n\nSidebar.prototype.addEventListeners = function () {\n const $document = $(document);\n\n this.sidebar.on('click', '.sidebar-collapsed-icon', this, this.sidebarCollapseClicked);\n this.sidebar.on('hidden.gl.dropdown', this, this.onSidebarDropdownHidden);\n this.sidebar.on('hiddenGlDropdown', this, this.onSidebarDropdownHidden);\n\n $document.on('click', '.js-sidebar-toggle', this.sidebarToggleClicked);\n\n const layoutPage = document.querySelector('.layout-page');\n const rightSidebar = document.querySelector('.js-right-sidebar');\n\n if (rightSidebar.classList.contains('right-sidebar-merge-requests')) {\n updateSidebarClasses(layoutPage, rightSidebar);\n\n const resizeHandler = new ResizeObserver((entries) => {\n for (const entry of entries) {\n updateSidebarClasses(layoutPage, rightSidebar, entry.contentRect.width);\n }\n });\n resizeHandler.observe(document.querySelector('html'));\n }\n};\n\nSidebar.prototype.sidebarToggleClicked = function (e, triggered) {\n const $toggleButtons = $('.js-sidebar-toggle');\n const $collapseIcon = $('.js-sidebar-collapse');\n const $expandIcon = $('.js-sidebar-expand');\n const $toggleContainer = $('.js-sidebar-toggle-container');\n const isExpanded = $toggleContainer.data('is-expanded');\n const tooltipLabel = isExpanded ? __('Expand sidebar') : __('Collapse sidebar');\n e.preventDefault();\n\n if (isExpanded) {\n $toggleContainer.data('is-expanded', false);\n $collapseIcon.addClass('hidden');\n $expandIcon.removeClass('hidden');\n $('aside.right-sidebar')\n .removeClass('right-sidebar-expanded')\n .addClass('right-sidebar-collapsed');\n\n if (!this.isMR) {\n $('.layout-page').removeClass('right-sidebar-expanded').addClass('right-sidebar-collapsed');\n }\n } else {\n $toggleContainer.data('is-expanded', true);\n $expandIcon.addClass('hidden');\n $collapseIcon.removeClass('hidden');\n $('aside.right-sidebar')\n .removeClass('right-sidebar-collapsed')\n .addClass('right-sidebar-expanded');\n\n if (!this.isMR) {\n $('.layout-page').removeClass('right-sidebar-collapsed').addClass('right-sidebar-expanded');\n }\n }\n\n $toggleButtons.attr('data-original-title', tooltipLabel);\n $toggleButtons.attr('title', tooltipLabel);\n fixTitle($toggleButtons);\n hide($toggleButtons);\n\n if (!triggered) {\n setCookie('collapsed_gutter', $('.right-sidebar').hasClass('right-sidebar-collapsed'));\n }\n};\n\nSidebar.prototype.sidebarCollapseClicked = function (e) {\n if ($(e.currentTarget).hasClass('js-dont-change-state')) {\n return;\n }\n const sidebar = e.data;\n e.preventDefault();\n const $block = $(this).closest('.block');\n return sidebar.openDropdown($block);\n};\n\nSidebar.prototype.openDropdown = function (blockOrName) {\n const $block = typeof blockOrName === 'string' ? this.getBlock(blockOrName) : blockOrName;\n if (!this.isOpen()) {\n this.setCollapseAfterUpdate($block);\n this.toggleSidebar('open');\n }\n};\n\nSidebar.prototype.setCollapseAfterUpdate = function ($block) {\n $block.addClass('collapse-after-update');\n return $('.layout-page').addClass('with-overlay');\n};\n\nSidebar.prototype.onSidebarDropdownHidden = function (e) {\n const sidebar = e.data;\n e.preventDefault();\n const $block = $(e.target).closest('.block');\n return sidebar.sidebarDropdownHidden($block);\n};\n\nSidebar.prototype.sidebarDropdownHidden = function ($block) {\n if ($block.hasClass('collapse-after-update')) {\n $block.removeClass('collapse-after-update');\n $('.layout-page').removeClass('with-overlay');\n return this.toggleSidebar('hide');\n }\n};\n\nSidebar.prototype.triggerOpenSidebar = function () {\n return this.sidebar.find('.js-sidebar-toggle').trigger('click');\n};\n\nSidebar.prototype.toggleSidebar = function (action) {\n if (action == null) {\n action = 'toggle';\n }\n if (action === 'toggle') {\n this.triggerOpenSidebar();\n }\n if (action === 'open') {\n if (!this.isOpen()) {\n this.triggerOpenSidebar();\n }\n }\n if (action === 'hide') {\n if (this.isOpen()) {\n return this.triggerOpenSidebar();\n }\n }\n};\n\nSidebar.prototype.isOpen = function () {\n return this.sidebar.is('.right-sidebar-expanded');\n};\n\nSidebar.prototype.getBlock = function (name) {\n return this.sidebar.find(`.block.${name}`);\n};\n\nexport default Sidebar;\n","import { differenceInMilliseconds } from '~/lib/utils/datetime_utility';\n\nexport default (fn, { interval = 2000, timeout = 60000 } = {}) => {\n const startTime = Date.now();\n\n return new Promise((resolve, reject) => {\n const stop = (arg) => (arg instanceof Error ? reject(arg) : resolve(arg));\n const next = () => {\n if (timeout === 0 || differenceInMilliseconds(startTime) < timeout) {\n setTimeout(fn.bind(null, next, stop), interval);\n } else {\n reject(new Error('SIMPLE_POLL_TIMEOUT'));\n }\n };\n fn(next, stop);\n });\n};\n","import { s__ } from '~/locale';\nimport { mapToListboxItems } from 'ee/security_orchestration/utils';\n\nexport const PROJECTS_WITH_FRAMEWORK = 'projects_with_framework';\nexport const ALL_PROJECTS_IN_GROUP = 'all_projects_in_group';\nexport const SPECIFIC_PROJECTS = 'specific_projects';\nexport const ALL_PROJECTS_IN_LINKED_GROUPS = 'all_projects_in_linked_groups';\n\nexport const PROJECT_SCOPE_TYPE_TEXTS = {\n [PROJECTS_WITH_FRAMEWORK]: s__('SecurityOrchestration|projects with compliance frameworks'),\n [ALL_PROJECTS_IN_GROUP]: s__('SecurityOrchestration|all projects in this group'),\n [SPECIFIC_PROJECTS]: s__('SecurityOrchestration|specific projects'),\n [ALL_PROJECTS_IN_LINKED_GROUPS]: s__('SecurityOrchestration|all projects in the linked groups'),\n};\n\nexport const PROJECT_SCOPE_TYPE_LISTBOX_ITEMS = mapToListboxItems(PROJECT_SCOPE_TYPE_TEXTS);\n\nexport const WITHOUT_EXCEPTIONS = 'without_exceptions';\nexport const EXCEPT_PROJECTS = 'except_projects';\nexport const EXCEPT_GROUPS = 'except_groups';\nexport const INCLUDING = 'including';\nexport const EXCLUDING = 'excluding';\nexport const COMPLIANCE_FRAMEWORKS_KEY = 'compliance_frameworks';\nexport const PROJECTS_KEY = 'projects';\nexport const GROUPS_KEY = 'groups';\n\nexport const EXCEPTION_TYPE_TEXTS = {\n [WITHOUT_EXCEPTIONS]: s__('SecurityOrchestration|without exceptions'),\n [EXCEPT_PROJECTS]: s__('SecurityOrchestration|except projects'),\n};\n\nexport const GROUP_EXCEPTION_TYPE_TEXTS = {\n [WITHOUT_EXCEPTIONS]: s__('SecurityOrchestration|without exceptions'),\n [EXCEPT_GROUPS]: s__('SecurityOrchestration|except groups'),\n};\n\nexport const EXCEPTION_TYPE_LISTBOX_ITEMS = mapToListboxItems(EXCEPTION_TYPE_TEXTS);\nexport const GROUP_EXCEPTION_TYPE_LISTBOX_ITEMS = mapToListboxItems(GROUP_EXCEPTION_TYPE_TEXTS);\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-participants',{staticClass:\"block participants\",attrs:{\"loading\":_vm.isLoading,\"participants\":_vm.participants,\"number-of-less-participants\":8,\"lazy\":false},on:{\"toggleSidebar\":function($event){return _vm.$emit('toggleSidebar')}}})\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!./sidebar_participants.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!./sidebar_participants.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { n__, sprintf } from '~/locale';\nimport Participants from './participants.vue';\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlIcon,\n GlLoadingIcon,\n Participants,\n },\n props: {\n loading: {\n type: Boolean,\n required: false,\n default: false,\n },\n participants: {\n type: Array,\n required: false,\n default: () => [],\n },\n numberOfLessParticipants: {\n type: Number,\n required: false,\n default: 8,\n },\n showParticipantLabel: {\n type: Boolean,\n required: false,\n default: true,\n },\n lazy: {\n type: Boolean,\n required: false,\n default: true,\n },\n },\n computed: {\n participantLabel() {\n return sprintf(\n n__('%{count} Participant', '%{count} Participants', this.participants.length),\n { count: this.loading ? '' : this.participantCount },\n );\n },\n participantCount() {\n return this.participants.length;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div\n v-if=\"showParticipantLabel\"\n v-gl-tooltip.left.viewport\n :title=\"participantLabel\"\n class=\"sidebar-collapsed-icon\"\n @click=\"$emit('toggleSidebar')\"\n >\n <gl-icon name=\"users\" />\n <gl-loading-icon v-if=\"loading\" size=\"sm\" />\n <span v-else class=\"gl-px-3 gl-pt-2 gl-text-sm\">\n {{ participantCount }}\n </span>\n </div>\n <participants\n class=\"hide-collapsed\"\n :lazy=\"lazy\"\n :loading=\"loading\"\n :number-of-less-participants=\"numberOfLessParticipants\"\n :participants=\"participants\"\n :show-participant-label=\"showParticipantLabel\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_participants.vue?vue&type=template&id=515b3a1e\"\nimport script from \"./sidebar_participants.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_participants.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('div',[(_vm.showParticipantLabel)?_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.participantLabel},on:{\"click\":function($event){return _vm.$emit('toggleSidebar')}}},[_c('gl-icon',{attrs:{\"name\":\"users\"}}),_vm._v(\" \"),(_vm.loading)?_c('gl-loading-icon',{attrs:{\"size\":\"sm\"}}):_c('span',{staticClass:\"gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.participantCount)+\"\\n \")])],1):_vm._e(),_vm._v(\" \"),_c('participants',{staticClass:\"hide-collapsed\",attrs:{\"lazy\":_vm.lazy,\"loading\":_vm.loading,\"number-of-less-participants\":_vm.numberOfLessParticipants,\"participants\":_vm.participants,\"show-participant-label\":_vm.showParticipantLabel}})],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!./sidebar_participants_widget.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!./sidebar_participants_widget.vue?vue&type=script&lang=js\"","<script>\nimport { __ } from '~/locale';\nimport { participantsQueries } from '../../queries/constants';\nimport SidebarParticipants from './sidebar_participants.vue';\n\nexport default {\n i18n: {\n fetchingError: __('An error occurred while fetching participants'),\n },\n components: {\n SidebarParticipants,\n },\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n participants: [],\n };\n },\n apollo: {\n participants: {\n query() {\n return participantsQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: this.iid,\n };\n },\n update(data) {\n return data.workspace?.issuable?.participants.nodes || [];\n },\n skip() {\n return !this.iid;\n },\n error(error) {\n this.$emit('fetch-error', {\n message: this.$options.i18n.fetchingError,\n error,\n });\n },\n },\n },\n computed: {\n isLoading() {\n return this.$apollo.queries.participants.loading;\n },\n },\n};\n</script>\n\n<template>\n <sidebar-participants\n :loading=\"isLoading\"\n :participants=\"participants\"\n :number-of-less-participants=\"8\"\n :lazy=\"false\"\n class=\"block participants\"\n @toggleSidebar=\"$emit('toggleSidebar')\"\n />\n</template>\n","import { render, staticRenderFns } from \"./sidebar_participants_widget.vue?vue&type=template&id=a1edfb52\"\nimport script from \"./sidebar_participants_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_participants_widget.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 GlClearIconButton from '../../shared_components/clear_icon_button/clear_icon_button';\nimport GlFormInput from '../form/form_input/form_input';\nimport GlIcon from '../icon/icon';\nimport GlLoadingIcon from '../loading_icon/loading_icon';\nimport { translate } from '../../../utils/i18n';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlSearchboxByType',\n components: {\n GlClearIconButton,\n GlIcon,\n GlFormInput,\n GlLoadingIcon\n },\n inheritAttrs: false,\n model: {\n prop: 'value',\n event: 'input'\n },\n props: {\n /**\n * If provided, used as value of search input\n */\n value: {\n type: String,\n required: false,\n default: ''\n },\n borderless: {\n type: Boolean,\n required: false,\n default: false\n },\n clearButtonTitle: {\n type: String,\n required: false,\n default: () => translate('GlSearchBoxByType.clearButtonTitle', 'Clear')\n },\n /**\n * If provided and true, disables the input and controls\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Puts search box into loading state, rendering spinner\n */\n isLoading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Container for tooltip. Valid values: DOM node, selector string or `false` for default\n */\n tooltipContainer: {\n required: false,\n default: false,\n validator: value => value === false || typeof value === 'string' || value instanceof HTMLElement\n }\n },\n computed: {\n inputAttributes() {\n const attributes = {\n type: 'search',\n placeholder: translate('GlSearchBoxByType.input.placeholder', 'Search'),\n ...this.$attrs\n };\n if (!attributes['aria-label']) {\n attributes['aria-label'] = attributes.placeholder;\n }\n return attributes;\n },\n hasValue() {\n return Boolean(this.value.length);\n },\n inputListeners() {\n return {\n ...this.$listeners,\n input: this.onInput,\n focusin: this.onFocusin,\n focusout: this.onFocusout\n };\n },\n showClearButton() {\n return this.hasValue && !this.disabled;\n }\n },\n methods: {\n isInputOrClearButton(element) {\n var _this$$refs$input, _this$$refs$clearButt;\n return element === ((_this$$refs$input = this.$refs.input) === null || _this$$refs$input === void 0 ? void 0 : _this$$refs$input.$el) || element === ((_this$$refs$clearButt = this.$refs.clearButton) === null || _this$$refs$clearButt === void 0 ? void 0 : _this$$refs$clearButt.$el);\n },\n clearInput() {\n this.onInput('');\n this.focusInput();\n },\n focusInput() {\n this.$refs.input.$el.focus();\n },\n onInput(value) {\n this.$emit('input', value);\n },\n onFocusout(event) {\n const {\n relatedTarget\n } = event;\n if (this.isInputOrClearButton(relatedTarget)) {\n return;\n }\n this.$emit('focusout', event);\n },\n onFocusin(event) {\n const {\n relatedTarget\n } = event;\n if (this.isInputOrClearButton(relatedTarget)) {\n return;\n }\n this.$emit('focusin', event);\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('div',{staticClass:\"gl-search-box-by-type\"},[_c('gl-icon',{staticClass:\"gl-search-box-by-type-search-icon\",attrs:{\"name\":\"search\",\"variant\":\"subtle\"}}),_vm._v(\" \"),_c('gl-form-input',_vm._g(_vm._b({ref:\"input\",class:{\n 'gl-search-box-by-type-input': !_vm.borderless,\n 'gl-search-box-by-type-input-borderless': _vm.borderless,\n },attrs:{\"value\":_vm.value,\"disabled\":_vm.disabled}},'gl-form-input',_vm.inputAttributes,false),_vm.inputListeners)),_vm._v(\" \"),(_vm.isLoading || _vm.showClearButton)?_c('div',{staticClass:\"gl-search-box-by-type-right-icons\"},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"gl-search-box-by-type-loading-icon\"}):_vm._e(),_vm._v(\" \"),(_vm.showClearButton)?_c('gl-clear-icon-button',{ref:\"clearButton\",staticClass:\"gl-search-box-by-type-clear gl-clear-icon-button\",attrs:{\"title\":_vm.clearButtonTitle,\"tooltip-container\":_vm.tooltipContainer},on:{\"click\":function($event){$event.stopPropagation();return _vm.clearInput.apply(null, arguments)},\"focusin\":_vm.onFocusin,\"focusout\":_vm.onFocusout}}):_vm._e()],1):_vm._e()],1)};\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 render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"sidebarSeverity\",staticClass:\"block\",attrs:{\"data-testid\":\"severity-block-container\"}},[_c('sidebar-editable-item',{ref:\"toggle\",attrs:{\"loading\":_vm.isUpdating,\"title\":_vm.$options.i18n.SEVERITY,\"can-edit\":_vm.canUpdate},on:{\"open\":_vm.showDropdown},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_c('div',{ref:\"severity\",staticClass:\"sidebar-collapsed-icon\"},[_c('severity-token',{attrs:{\"severity\":_vm.selectedItem,\"icon-size\":14,\"icon-only\":true}}),_vm._v(\" \"),_c('gl-tooltip',{attrs:{\"target\":() => _vm.$refs.severity,\"boundary\":\"viewport\",\"placement\":\"left\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.i18n.SEVERITY_VALUE},scopedSlots:_vm._u([{key:\"severity\",fn:function(){return [_vm._v(\"\\n \"+_vm._s(_vm.selectedItem.label)+\"\\n \")]},proxy:true}])})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed\",attrs:{\"data-testid\":\"incident-severity\"}},[_c('severity-token',{attrs:{\"severity\":_vm.selectedItem}})],1)]},proxy:true},{key:\"default\",fn:function(){return [_c('gl-collapsible-listbox',{ref:\"dropdown\",staticClass:\"gl-mt-3\",attrs:{\"block\":\"\",\"header-text\":_vm.__('Assign severity'),\"toggle-text\":_vm.selectedItem.label,\"items\":_vm.dropdownItems,\"selected\":_vm.severity},on:{\"select\":_vm.updateSeverity},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('severity-token',{attrs:{\"severity\":item.severity}})]}}])})]},proxy:true}])})],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!./sidebar_severity_widget.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!./sidebar_severity_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox, GlTooltip, GlSprintf } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { TYPE_INCIDENT } from '~/issues/constants';\nimport SidebarEditableItem from '~/sidebar/components/sidebar_editable_item.vue';\nimport updateIssuableSeverity from '../../queries/update_issuable_severity.mutation.graphql';\nimport { INCIDENT_SEVERITY, SEVERITY_I18N as I18N } from '../../constants';\nimport SeverityToken from './severity.vue';\n\nexport default {\n i18n: I18N,\n components: {\n GlTooltip,\n GlSprintf,\n GlCollapsibleListbox,\n SeverityToken,\n SidebarEditableItem,\n },\n inject: ['canUpdate'],\n props: {\n projectPath: {\n type: String,\n required: true,\n },\n iid: {\n type: String,\n required: true,\n },\n initialSeverity: {\n type: String,\n required: false,\n default: INCIDENT_SEVERITY.UNKNOWN.value,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_INCIDENT,\n validator: (value) => {\n // currently severity is supported only for incidents, but this list might be extended\n return [TYPE_INCIDENT].includes(value);\n },\n },\n },\n data() {\n return {\n isUpdating: false,\n severity: this.initialSeverity,\n };\n },\n computed: {\n severitiesList() {\n switch (this.issuableType) {\n case TYPE_INCIDENT:\n return Object.values(INCIDENT_SEVERITY);\n default:\n return [];\n }\n },\n dropdownItems() {\n return this.severitiesList.map((severity) => ({\n text: severity.label,\n value: severity.value,\n severity,\n }));\n },\n selectedItem() {\n return this.severitiesList.find((severity) => severity.value === this.severity);\n },\n },\n methods: {\n updateSeverity(value) {\n this.$refs.toggle.collapse();\n this.isUpdating = true;\n this.$apollo\n .mutate({\n mutation: updateIssuableSeverity,\n variables: {\n iid: this.iid,\n severity: value,\n projectPath: this.projectPath,\n },\n })\n .then((resp) => {\n const {\n data: {\n issueSetSeverity: {\n errors = [],\n issue: { severity },\n },\n },\n } = resp;\n\n if (errors[0]) {\n throw errors[0];\n }\n this.severity = severity;\n })\n .catch(() =>\n createAlert({\n message: `${this.$options.i18n.UPDATE_SEVERITY_ERROR} ${this.$options.i18n.TRY_AGAIN}`,\n }),\n )\n .finally(() => {\n this.isUpdating = false;\n });\n },\n showDropdown() {\n this.$refs.dropdown.open();\n },\n },\n};\n</script>\n\n<template>\n <div ref=\"sidebarSeverity\" class=\"block\" data-testid=\"severity-block-container\">\n <sidebar-editable-item\n ref=\"toggle\"\n :loading=\"isUpdating\"\n :title=\"$options.i18n.SEVERITY\"\n :can-edit=\"canUpdate\"\n @open=\"showDropdown\"\n >\n <template #collapsed>\n <div ref=\"severity\" class=\"sidebar-collapsed-icon\">\n <severity-token :severity=\"selectedItem\" :icon-size=\"14\" :icon-only=\"true\" />\n <gl-tooltip :target=\"() => $refs.severity\" boundary=\"viewport\" placement=\"left\">\n <gl-sprintf :message=\"$options.i18n.SEVERITY_VALUE\">\n <template #severity>\n {{ selectedItem.label }}\n </template>\n </gl-sprintf>\n </gl-tooltip>\n </div>\n <div class=\"hide-collapsed\" data-testid=\"incident-severity\">\n <severity-token :severity=\"selectedItem\" />\n </div>\n </template>\n\n <template #default>\n <gl-collapsible-listbox\n ref=\"dropdown\"\n class=\"gl-mt-3\"\n block\n :header-text=\"__('Assign severity')\"\n :toggle-text=\"selectedItem.label\"\n :items=\"dropdownItems\"\n :selected=\"severity\"\n @select=\"updateSeverity\"\n >\n <template #list-item=\"{ item }\">\n <severity-token :severity=\"item.severity\" />\n </template>\n </gl-collapsible-listbox>\n </template>\n </sidebar-editable-item>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_severity_widget.vue?vue&type=template&id=292f05fb\"\nimport script from \"./sidebar_severity_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_severity_widget.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\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"updatePolicy\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MutationOperationMode\"}},\"defaultValue\":{\"kind\":\"EnumValue\",\"value\":\"APPEND\"},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"policyYaml\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"scanExecutionPolicyCommit\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"operationMode\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"mode\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"policyYaml\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"policyYaml\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"branch\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"validationErrors\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"field\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"message\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"index\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":365}};\n doc.loc.source = {\"body\":\"mutation updatePolicy(\\n $fullPath: String!\\n $mode: MutationOperationMode = APPEND\\n $name: String!\\n $policyYaml: String!\\n) {\\n scanExecutionPolicyCommit(\\n input: { name: $name, fullPath: $fullPath, operationMode: $mode, policyYaml: $policyYaml }\\n ) {\\n branch\\n errors\\n validationErrors {\\n field\\n message\\n title\\n index\\n }\\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[\"updatePolicy\"] = oneQuery(doc, \"updatePolicy\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"projectEscalationPolicies\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attributes\"},\"name\":{\"kind\":\"Name\",\"value\":\"incidentManagementEscalationPolicies\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EscalationPolicyFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":304}};\n doc.loc.source = {\"body\":\"#import \\\"./escalation_policy.fragment.graphql\\\"\\n\\nquery projectEscalationPolicies($fullPath: ID!, $title: String) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n attributes: incidentManagementEscalationPolicies(name: $title) {\\n nodes {\\n ...EscalationPolicyFragment\\n }\\n }\\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(\"./escalation_policy.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[\"projectEscalationPolicies\"] = oneQuery(doc, \"projectEscalationPolicies\");\n \n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:str', {\n kind: 'scalar',\n construct: function (data) { return data !== null ? data : ''; }\n});\n","import uniqueId from 'lodash/uniqueId';\nimport { toggleLabelPosition } from '../../../utils/constants';\nimport GlIcon from '../icon/icon';\nimport GlLoadingIcon from '../loading_icon/loading_icon';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nlet uuid = 0;\nvar script = {\n name: 'GlToggle',\n components: {\n GlIcon,\n GlLoadingIcon\n },\n model: {\n prop: 'value',\n event: 'change'\n },\n props: {\n name: {\n type: String,\n required: false,\n default: null\n },\n /**\n * The toggle's state.\n * @model\n */\n value: {\n type: Boolean,\n required: false,\n default: null\n },\n /**\n * Whether the toggle should be disabled.\n */\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Whether the toggle is in the loading state.\n */\n isLoading: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * The toggle's label.\n */\n label: {\n type: String,\n required: true\n },\n /**\n * The toggle's description.\n */\n description: {\n type: String,\n required: false,\n default: undefined\n },\n /**\n * A help text to be shown below the toggle.\n */\n help: {\n type: String,\n required: false,\n default: undefined\n },\n /**\n * The label's position relative to the toggle. If 'hidden', the toggle will add the .gl-sr-only class so the label is still accessible to screen readers.\n */\n labelPosition: {\n type: String,\n required: false,\n default: 'top',\n validator(position) {\n return Object.values(toggleLabelPosition).includes(position);\n }\n }\n },\n data() {\n return {\n labelId: uniqueId('toggle-label-')\n };\n },\n computed: {\n shouldRenderDescription() {\n // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n return Boolean(this.$scopedSlots.description || this.description) && this.isVerticalLayout;\n },\n shouldRenderHelp() {\n // eslint-disable-next-line @gitlab/vue-prefer-dollar-scopedslots\n return Boolean(this.$slots.help || this.help) && this.isVerticalLayout;\n },\n toggleClasses() {\n return [{\n 'gl-sr-only': this.labelPosition === 'hidden'\n }, this.shouldRenderDescription ? 'gl-mb-2' : 'gl-mb-3'];\n },\n icon() {\n return this.value ? 'check-xs' : 'close-xs';\n },\n helpId() {\n return this.shouldRenderHelp ? `toggle-help-${this.uuid}` : undefined;\n },\n isChecked() {\n return this.value ? 'true' : 'false';\n },\n isVerticalLayout() {\n return this.labelPosition === 'top' || this.labelPosition === 'hidden';\n }\n },\n beforeCreate() {\n this.uuid = uuid;\n uuid += 1;\n },\n methods: {\n toggleFeature() {\n if (!this.disabled) {\n /**\n * Emitted when the state changes.\n *\n * @event change\n * @property {boolean} value Whether the toggle is enabled.\n */\n this.$emit('change', !this.value);\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('div',{staticClass:\"gl-toggle-wrapper gl-mb-0 gl-flex\",class:{\n 'gl-flex-col': _vm.isVerticalLayout,\n 'gl-toggle-label-inline': !_vm.isVerticalLayout,\n 'is-disabled': _vm.disabled,\n },attrs:{\"data-testid\":\"toggle-wrapper\"}},[_c('span',{staticClass:\"gl-toggle-label gl-shrink-0\",class:_vm.toggleClasses,attrs:{\"id\":_vm.labelId,\"data-testid\":\"toggle-label\"}},[_vm._t(\"label\",function(){return [_vm._v(_vm._s(_vm.label))]})],2),_vm._v(\" \"),(_vm.shouldRenderDescription)?_c('span',{staticClass:\"gl-description-label gl-mb-3\",attrs:{\"data-testid\":\"toggle-description\"}},[_vm._t(\"description\",function(){return [_vm._v(_vm._s(_vm.description))]})],2):_vm._e(),_vm._v(\" \"),(_vm.name)?_c('input',{attrs:{\"name\":_vm.name,\"type\":\"hidden\"},domProps:{\"value\":_vm.value}}):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"gl-toggle gl-shrink-0\",class:{\n 'is-checked': _vm.value,\n 'is-disabled': _vm.disabled || _vm.isLoading,\n },attrs:{\"role\":\"switch\",\"aria-checked\":_vm.isChecked,\"aria-labelledby\":_vm.labelId,\"aria-describedby\":_vm.helpId,\"aria-disabled\":_vm.disabled,\"type\":\"button\",\"disabled\":_vm.disabled},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleFeature.apply(null, arguments)}}},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"toggle-loading\",attrs:{\"color\":\"dark\"}}):_c('span',{staticClass:\"toggle-icon\"},[_c('gl-icon',{attrs:{\"name\":_vm.icon,\"size\":12}})],1)],1),_vm._v(\" \"),(_vm.shouldRenderHelp)?_c('span',{staticClass:\"gl-help-label\",attrs:{\"id\":_vm.helpId,\"data-testid\":\"toggle-help\"}},[_vm._t(\"help\",function(){return [_vm._v(_vm._s(_vm.help))]})],2):_vm._e()])};\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 { delay } from 'lodash';\nimport api from '~/api';\nimport { DEFER_DURATION, TRACKING_CAP_KEY, TRACKING_CAP_LENGTH } from '../constants';\n\nfunction shouldDispatchEvent() {\n const timestamp = parseInt(localStorage.getItem(TRACKING_CAP_KEY), 10);\n\n if (Number.isNaN(timestamp)) {\n return true;\n }\n\n return timestamp + TRACKING_CAP_LENGTH < Date.now();\n}\n\nexport function dispatchRedisHllUserEvent(event, deferDuration = 0) {\n delay(() => api.trackRedisHllUserEvent(event), deferDuration);\n}\n\nexport function queueRedisHllEvents(events, { verifyCap = false } = {}) {\n if (verifyCap) {\n if (!shouldDispatchEvent()) {\n return;\n }\n\n localStorage.setItem(TRACKING_CAP_KEY, Date.now());\n }\n\n events.forEach((event, index) => {\n dispatchRedisHllUserEvent(event, DEFER_DURATION * (index + 1));\n });\n}\n","export default function(node) {\n return (node.ownerDocument && node.ownerDocument.defaultView) // node is a Node\n || (node.document && node) // node is a Window\n || node.defaultView; // node is a Document\n}\n","import { labelColorOptions } from '../../../utils/constants';\nimport { colorFromBackground } from '../../../utils/utils';\nimport GlButton from '../button/button';\nimport GlIcon from '../icon/icon';\nimport GlLink from '../link/link';\nimport GlTooltip from '../tooltip/tooltip';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nvar script = {\n name: 'GlLabel',\n components: {\n GlButton,\n GlIcon,\n GlLink,\n GlTooltip\n },\n props: {\n backgroundColor: {\n type: String,\n required: true,\n validator: value => /^(#|rgb|rgba)/.test(value)\n },\n title: {\n type: String,\n required: true,\n default: ''\n },\n description: {\n type: String,\n required: false,\n default: ''\n },\n tooltipPlacement: {\n type: String,\n required: false,\n default: 'top'\n },\n target: {\n type: String,\n required: false,\n default: ''\n },\n scoped: {\n type: Boolean,\n required: false,\n default: false\n },\n showCloseButton: {\n type: Boolean,\n required: false,\n default: false\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n data() {\n return {\n splitScopedLabelIndex: this.title.lastIndexOf('::')\n };\n },\n computed: {\n cssClasses() {\n const textColorVariant = colorFromBackground(this.backgroundColor);\n return {\n 'gl-label-scoped': this.scoped,\n 'gl-label-text-dark': textColorVariant === labelColorOptions.dark,\n 'gl-label-text-light': textColorVariant === labelColorOptions.light\n };\n },\n cssVariables() {\n return {\n '--label-background-color': this.backgroundColor,\n '--label-inset-border': `inset 0 0 0 2px ${this.backgroundColor}`\n };\n },\n scopedKey() {\n return this.scoped ? this.title.slice(0, this.splitScopedLabelIndex) : this.title;\n },\n scopedValue() {\n return this.title.slice(this.splitScopedLabelIndex + 2);\n },\n labelComponent() {\n return this.target ? GlLink : 'span';\n },\n tooltipTarget() {\n return this.target ? this.$refs.labelTitle.$el : this.$refs.labelTitle;\n }\n },\n watch: {\n title() {\n this.splitScopedLabelIndex = this.title.lastIndexOf('::');\n }\n },\n methods: {\n onClick(e) {\n /**\n * Emitted when label is clicked\n *\n * @event click\n * @type {object}\n */\n this.$emit('click', e);\n },\n onClose(e) {\n /**\n * Emitted when x is clicked\n *\n * @event close\n * @type {object}\n */\n this.$emit('close', 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('span',_vm._b({staticClass:\"gl-label\",class:_vm.cssClasses,style:(_vm.cssVariables),on:{\"click\":_vm.onClick}},'span',_vm.$attrs,false),[_c(_vm.labelComponent,{ref:\"labelTitle\",tag:\"component\",staticClass:\"gl-label-link\",class:{ 'gl-label-link-underline': _vm.target },attrs:{\"href\":_vm.target ? _vm.target : false,\"tabindex\":\"0\"}},[_c('span',{staticClass:\"gl-label-text\"},[_vm._v(\"\\n \"+_vm._s(_vm.scopedKey)+\"\\n \")]),_vm._v(\" \"),(_vm.scoped && _vm.scopedValue)?_c('span',{staticClass:\"gl-label-text-scoped\"},[_vm._v(\"\\n \"+_vm._s(_vm.scopedValue)+\"\\n \")]):_vm._e()]),_vm._v(\" \"),(_vm.showCloseButton)?_c('gl-button',{staticClass:\"gl-label-close !gl-p-0\",attrs:{\"category\":\"tertiary\",\"size\":\"small\",\"variant\":\"reset\",\"aria-label\":\"Remove label\",\"disabled\":_vm.disabled},on:{\"click\":_vm.onClose}},[_c('gl-icon',{attrs:{\"name\":\"close-xs\",\"size\":12}})],1):_vm._e(),_vm._v(\" \"),(_vm.description)?_c('gl-tooltip',{attrs:{\"target\":function () { return _vm.tooltipTarget; },\"placement\":_vm.tooltipPlacement,\"boundary\":\"viewport\"}},[(_vm.scoped)?_c('span',{staticClass:\"gl-label-tooltip-title\"},[_vm._v(\"Scoped label\")]):_vm._e(),_vm._v(\"\\n \"+_vm._s(_vm.description)+\"\\n \")]):_vm._e()],1)};\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","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadyToMerge\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Project\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"onlyAllowMergeIfPipelineSucceeds\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestsFfOnlyEnabled\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"squashReadOnly\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadyToMergeMergeRequest\"},\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":246}};\n doc.loc.source = {\"body\":\"#import \\\"./ready_to_merge_merge_request.fragment.graphql\\\"\\n\\nfragment ReadyToMerge on Project {\\n id\\n onlyAllowMergeIfPipelineSucceeds\\n mergeRequestsFfOnlyEnabled\\n squashReadOnly\\n mergeRequest(iid: $iid) {\\n ...ReadyToMergeMergeRequest\\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(\"./ready_to_merge_merge_request.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[\"ReadyToMerge\"] = oneQuery(doc, \"ReadyToMerge\");\n \n","'use strict';\nvar globalThis = require('../internals/global-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar defineBuiltInAccessor = require('../internals/define-built-in-accessor');\nvar regExpFlags = require('../internals/regexp-flags');\nvar fails = require('../internals/fails');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 'd') -> /./d and it causes SyntaxError\nvar RegExp = globalThis.RegExp;\nvar RegExpPrototype = RegExp.prototype;\n\nvar FORCED = DESCRIPTORS && fails(function () {\n var INDICES_SUPPORT = true;\n try {\n RegExp('.', 'd');\n } catch (error) {\n INDICES_SUPPORT = false;\n }\n\n var O = {};\n // modern V8 bug\n var calls = '';\n var expected = INDICES_SUPPORT ? 'dgimsy' : 'gimsy';\n\n var addGetter = function (key, chr) {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty(O, key, { get: function () {\n calls += chr;\n return true;\n } });\n };\n\n var pairs = {\n dotAll: 's',\n global: 'g',\n ignoreCase: 'i',\n multiline: 'm',\n sticky: 'y'\n };\n\n if (INDICES_SUPPORT) pairs.hasIndices = 'd';\n\n for (var key in pairs) addGetter(key, pairs[key]);\n\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n var result = Object.getOwnPropertyDescriptor(RegExpPrototype, 'flags').get.call(O);\n\n return result !== expected || calls !== expected;\n});\n\n// `RegExp.prototype.flags` getter\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nif (FORCED) defineBuiltInAccessor(RegExpPrototype, 'flags', {\n configurable: true,\n get: regExpFlags\n});\n","import { extend, isVue3 } from '../vue';\nimport { isUndefined, isArray } from '../utils/inspect';\n\n// Mixin to determine if an event listener has been registered\n\n// @vue/component\nconst hasListenerMixin = extend({\n methods: {\n hasListener(name) {\n if (isVue3) {\n return true;\n }\n // Only includes listeners registered via `v-on:name`\n const $listeners = this.$listeners || {};\n // Includes `v-on:name` and `this.$on('name')` registered listeners\n // Note this property is not part of the public Vue API, but it is\n // the only way to determine if a listener was added via `vm.$on`\n const $events = this._events || {};\n // Registered listeners in `this._events` are always an array,\n // but might be zero length\n return !isUndefined($listeners[name]) || isArray($events[name]) && $events[name].length > 0;\n }\n }\n});\n\nexport { hasListenerMixin };\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"readyToMergeSubscription\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestMergeStatusUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"ReadyToMergeMergeRequest\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":257}};\n doc.loc.source = {\"body\":\"#import \\\"./ready_to_merge_merge_request.fragment.graphql\\\"\\n\\nsubscription readyToMergeSubscription($issuableId: IssuableID!) {\\n mergeRequestMergeStatusUpdated(issuableId: $issuableId) {\\n ... on MergeRequest {\\n ...ReadyToMergeMergeRequest\\n }\\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(\"./ready_to_merge_merge_request.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[\"readyToMergeSubscription\"] = oneQuery(doc, \"readyToMergeSubscription\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"configureSastIac\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ConfigureSastIacInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"configureSastIac\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"successPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":129}};\n doc.loc.source = {\"body\":\"mutation configureSastIac($input: ConfigureSastIacInput!) {\\n configureSastIac(input: $input) {\\n successPath\\n errors\\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[\"configureSastIac\"] = oneQuery(doc, \"configureSastIac\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeTrainPosition\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeTrains\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cars\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeTrainCar\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"index\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":202}};\n doc.loc.source = {\"body\":\"fragment MergeTrainPosition on MergeRequest {\\n id\\n project {\\n id\\n mergeTrains {\\n nodes {\\n cars {\\n count\\n }\\n }\\n }\\n }\\n mergeTrainCar {\\n id\\n index\\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[\"MergeTrainPosition\"] = oneQuery(doc, \"MergeTrainPosition\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"gl-flex gl-items-center gl-font-bold gl-leading-20 gl-text-default\",on:{\"click\":function($event){if($event.target !== $event.currentTarget)return null;return _vm.collapse.apply(null, arguments)}}},[_c('span',{staticClass:\"hide-collapsed\",attrs:{\"data-testid\":\"title\"},on:{\"click\":_vm.collapse}},[_vm._v(\"\\n \"+_vm._s(_vm.title)+\"\\n \")]),_vm._v(\" \"),_vm._t(\"title-extra\"),_vm._v(\" \"),(_vm.loading || _vm.initialLoading)?_c('gl-loading-icon',{staticClass:\"hide-collapsed gl-ml-2\",attrs:{\"size\":\"sm\",\"inline\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.loading && _vm.isClassicSidebar)?_c('gl-loading-icon',{staticClass:\"hide-expanded gl-mx-auto gl-my-0\",attrs:{\"size\":\"sm\",\"inline\":\"\"}}):_vm._e(),_vm._v(\" \"),_vm._t(\"collapsed-right\"),_vm._v(\" \"),(_vm.canUpdate && !_vm.initialLoading && _vm.canEdit)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.html\",modifiers:{\"viewport\":true,\"html\":true}}],staticClass:\"hide-collapsed shortcut-sidebar-dropdown-toggle -gl-mr-2 gl-ml-auto\",attrs:{\"id\":_vm.buttonId,\"category\":\"tertiary\",\"size\":\"small\",\"title\":_vm.editTooltipText,\"aria-label\":_vm.editAriaLabelText,\"aria-keyshortcuts\":_vm.editKeyshortcutsText,\"data-testid\":\"edit-button\",\"data-track-action\":_vm.tracking.event,\"data-track-label\":_vm.tracking.label,\"data-track-property\":_vm.tracking.property},on:{\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.toggle.apply(null, arguments)},\"click\":_vm.toggle}},[_vm._v(\"\\n \"+_vm._s(_vm.editButtonText)+\"\\n \")]):_vm._e()],2),_vm._v(\" \"),(!_vm.initialLoading)?[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.edit),expression:\"!edit\"}],attrs:{\"data-testid\":\"collapsed-content\"}},[_vm._t(\"collapsed\",function(){return [_vm._v(_vm._s(_vm.__('None')))]})],2),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.edit),expression:\"edit\"}],class:{ 'gl-mt-3': !_vm.isClassicSidebar },attrs:{\"data-testid\":\"expanded-content\"}},[_vm._t(\"default\",null,{\"edit\":_vm.edit,\"toggle\":_vm.toggle})],2)]:_vm._e()],2)\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!./sidebar_editable_item.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!./sidebar_editable_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n i18n: {\n unassigned: __('Unassigned'),\n },\n components: { GlButton, GlLoadingIcon },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n inject: {\n canUpdate: {},\n isClassicSidebar: {\n default: false,\n },\n },\n props: {\n buttonId: {\n type: String,\n required: false,\n default: '',\n },\n title: {\n type: String,\n required: false,\n default: '',\n },\n loading: {\n type: Boolean,\n required: false,\n default: false,\n },\n initialLoading: {\n type: Boolean,\n required: false,\n default: false,\n },\n isDirty: {\n type: Boolean,\n required: false,\n default: false,\n },\n tracking: {\n type: Object,\n required: false,\n default: () => ({\n event: null,\n label: null,\n property: null,\n }),\n },\n canEdit: {\n type: Boolean,\n required: false,\n default: true,\n },\n shouldShowConfirmationPopover: {\n type: Boolean,\n required: false,\n default: false,\n },\n editTooltip: {\n type: String,\n required: false,\n default: '',\n },\n editAriaLabel: {\n type: String,\n required: false,\n default: '',\n },\n editKeyshortcuts: {\n type: String,\n required: false,\n default: '',\n },\n },\n data() {\n return {\n edit: false,\n };\n },\n computed: {\n editButtonText() {\n return this.isDirty ? __('Apply') : __('Edit');\n },\n editTooltipText() {\n return this.isDirty ? '' : this.editTooltip;\n },\n editAriaLabelText() {\n return this.isDirty ? this.editButtonText : this.editAriaLabel;\n },\n editKeyshortcutsText() {\n return this.isDirty ? __('Escape') : this.editKeyshortcuts;\n },\n },\n destroyed() {\n window.removeEventListener('click', this.collapseWhenOffClick);\n window.removeEventListener('keyup', this.collapseOnEscape);\n },\n methods: {\n collapseWhenOffClick({ target }) {\n if (!this.$el.contains(target)) {\n this.collapse();\n }\n },\n collapseOnEscape({ key }) {\n if (key === 'Escape') {\n this.collapse();\n }\n },\n expand() {\n if (this.edit) {\n return;\n }\n\n if (this.canEdit && this.canUpdate) {\n this.edit = true;\n }\n this.$emit('open');\n window.addEventListener('click', this.collapseWhenOffClick);\n window.addEventListener('keyup', this.collapseOnEscape);\n },\n collapse({ emitEvent = true } = {}) {\n if (!this.edit) {\n return;\n }\n\n this.edit = false;\n if (emitEvent) {\n this.$emit('close');\n }\n window.removeEventListener('click', this.collapseWhenOffClick);\n window.removeEventListener('keyup', this.collapseOnEscape);\n },\n toggle({ emitEvent = true } = {}) {\n if (this.shouldShowConfirmationPopover) {\n this.$emit('edit-confirm');\n return;\n }\n\n if (this.edit) {\n this.collapse({ emitEvent });\n } else {\n this.expand();\n }\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div\n class=\"gl-flex gl-items-center gl-font-bold gl-leading-20 gl-text-default\"\n @click.self=\"collapse\"\n >\n <span class=\"hide-collapsed\" data-testid=\"title\" @click=\"collapse\">\n {{ title }}\n </span>\n <slot name=\"title-extra\"></slot>\n <gl-loading-icon\n v-if=\"loading || initialLoading\"\n size=\"sm\"\n inline\n class=\"hide-collapsed gl-ml-2\"\n />\n <gl-loading-icon\n v-if=\"loading && isClassicSidebar\"\n size=\"sm\"\n inline\n class=\"hide-expanded gl-mx-auto gl-my-0\"\n />\n <slot name=\"collapsed-right\"></slot>\n <gl-button\n v-if=\"canUpdate && !initialLoading && canEdit\"\n :id=\"buttonId\"\n v-gl-tooltip.viewport.html\n category=\"tertiary\"\n size=\"small\"\n class=\"hide-collapsed shortcut-sidebar-dropdown-toggle -gl-mr-2 gl-ml-auto\"\n :title=\"editTooltipText\"\n :aria-label=\"editAriaLabelText\"\n :aria-keyshortcuts=\"editKeyshortcutsText\"\n data-testid=\"edit-button\"\n :data-track-action=\"tracking.event\"\n :data-track-label=\"tracking.label\"\n :data-track-property=\"tracking.property\"\n @keyup.esc=\"toggle\"\n @click=\"toggle\"\n >\n {{ editButtonText }}\n </gl-button>\n </div>\n <template v-if=\"!initialLoading\">\n <div v-show=\"!edit\" data-testid=\"collapsed-content\">\n <slot name=\"collapsed\">{{ __('None') }}</slot>\n </div>\n <div v-show=\"edit\" data-testid=\"expanded-content\" :class=\"{ 'gl-mt-3': !isClassicSidebar }\">\n <slot :edit=\"edit\" :toggle=\"toggle\"></slot>\n </div>\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_editable_item.vue?vue&type=template&id=6046ea02\"\nimport script from \"./sidebar_editable_item.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_editable_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","import { __, s__ } from '~/locale';\n\nexport const forwardDeploymentFailureModalId = 'forward-deployment-failure';\n\nexport const BUTTON_TOOLTIP_RETRY = __('Retry all failed or cancelled jobs');\nexport const BUTTON_TOOLTIP_CANCEL = __('Cancel the running pipeline');\nexport const BUTTON_TOOLTIP_DELETE = __('Delete the pipeline');\n\nexport const FILTER_TAG_IDENTIFIER = 'tag';\n\nexport const JOB_GRAPHQL_ERRORS = {\n jobMutationErrorText: __('There was an error running the job. Please try again.'),\n jobQueryErrorText: __('There was an error fetching the job.'),\n};\n\nexport const ICONS = {\n TAG: 'tag',\n MR: 'merge-request',\n BRANCH: 'branch',\n RETRY: 'retry',\n SUCCESS: 'success',\n};\n\nexport const SUCCESS_STATUS = 'SUCCESS';\nexport const PASSED_STATUS = 'passed';\nexport const MANUAL_STATUS = 'manual';\n\nexport const PIPELINE_ID_KEY = 'id';\nexport const PIPELINE_IID_KEY = 'iid';\n\nexport const RAW_TEXT_WARNING = s__(\n 'Pipeline|Raw text search is not currently supported. Please use the available search tokens.',\n);\n\nexport const TRACKING_CATEGORIES = {\n table: 'pipelines_table_component',\n tabs: 'pipelines_filter_tabs',\n search: 'pipelines_filtered_search',\n failed: 'pipeline_failed_jobs_tab',\n tests: 'pipeline_tests_tab',\n listbox: 'pipeline_id_iid_listbox',\n};\n\n// For pipeline polling\nexport const PIPELINE_POLL_INTERVAL_DEFAULT = 1000 * 8;\nexport const PIPELINE_POLL_INTERVAL_BACKOFF = 1.2;\nexport const FOUR_MINUTES_IN_MS = 1000 * 60 * 4;\n\nexport const NETWORK_STATUS_READY = 7;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"getParent\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":224}};\n doc.loc.source = {\"body\":\"query getParent($id: WorkItemID!) {\\n workItem(id: $id) {\\n id\\n widgets {\\n ... on WorkItemWidgetHierarchy {\\n type\\n parent {\\n id\\n title\\n webUrl\\n }\\n }\\n }\\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[\"getParent\"] = oneQuery(doc, \"getParent\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"diff-stats\",class:{\n 'is-compare-versions-header gl-hidden lg:gl-inline-flex': _vm.isCompareVersionsHeader,\n 'gl-hidden sm:!gl-inline-flex': !_vm.isCompareVersionsHeader,\n }},[(_vm.notDiffable)?_c('div',{class:_vm.fileStats.classes},[_vm._v(\"\\n \"+_vm._s(_vm.fileStats.text)+\"\\n \")]):_c('div',{staticClass:\"diff-stats-contents\"},[(_vm.hasDiffFiles)?_c('div',{staticClass:\"diff-stats-group\"},[_c('gl-icon',{staticClass:\"diff-stats-icon\",attrs:{\"name\":\"doc-code\",\"variant\":\"subtle\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-font-bold gl-text-subtle\"},[_vm._v(_vm._s(_vm.diffsCount)+\" \"+_vm._s(_vm.filesText))])],1):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"diff-stats-group gl-flex gl-items-center gl-text-success\",class:{ 'gl-font-bold': _vm.isCompareVersionsHeader }},[_c('span',[_vm._v(\"+\")]),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"js-file-addition-line\"}},[_vm._v(_vm._s(_vm.addedLines))])]),_vm._v(\" \"),_c('div',{staticClass:\"diff-stats-group gl-flex gl-items-center gl-text-danger\",class:{ 'gl-font-bold': _vm.isCompareVersionsHeader }},[_c('span',[_vm._v(\"−\")]),_vm._v(\" \"),_c('span',{attrs:{\"data-testid\":\"js-file-deletion-line\"}},[_vm._v(_vm._s(_vm.removedLines))])])])])\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!./diff_stats.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!./diff_stats.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { isNumber } from 'lodash';\nimport { n__ } from '~/locale';\nimport { isNotDiffable, stats } from '../utils/diff_file';\n\nexport default {\n components: { GlIcon },\n props: {\n diffFile: {\n type: Object,\n required: false,\n default: () => null,\n },\n addedLines: {\n type: Number,\n required: true,\n },\n removedLines: {\n type: Number,\n required: true,\n },\n diffsCount: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n diffFilesLength() {\n return parseInt(this.diffsCount, 10);\n },\n filesText() {\n return n__('file', 'files', this.diffFilesLength);\n },\n isCompareVersionsHeader() {\n return Boolean(this.diffsCount);\n },\n hasDiffFiles() {\n return isNumber(this.diffFilesLength) && this.diffFilesLength >= 0;\n },\n notDiffable() {\n return isNotDiffable(this.diffFile);\n },\n fileStats() {\n return stats(this.diffFile);\n },\n },\n};\n</script>\n\n<template>\n <div\n class=\"diff-stats\"\n :class=\"{\n 'is-compare-versions-header gl-hidden lg:gl-inline-flex': isCompareVersionsHeader,\n 'gl-hidden sm:!gl-inline-flex': !isCompareVersionsHeader,\n }\"\n >\n <div v-if=\"notDiffable\" :class=\"fileStats.classes\">\n {{ fileStats.text }}\n </div>\n <div v-else class=\"diff-stats-contents\">\n <div v-if=\"hasDiffFiles\" class=\"diff-stats-group\">\n <gl-icon name=\"doc-code\" class=\"diff-stats-icon\" variant=\"subtle\" />\n <span class=\"gl-font-bold gl-text-subtle\">{{ diffsCount }} {{ filesText }}</span>\n </div>\n <div\n class=\"diff-stats-group gl-flex gl-items-center gl-text-success\"\n :class=\"{ 'gl-font-bold': isCompareVersionsHeader }\"\n >\n <span>+</span>\n <span data-testid=\"js-file-addition-line\">{{ addedLines }}</span>\n </div>\n <div\n class=\"diff-stats-group gl-flex gl-items-center gl-text-danger\"\n :class=\"{ 'gl-font-bold': isCompareVersionsHeader }\"\n >\n <span>−</span>\n <span data-testid=\"js-file-deletion-line\">{{ removedLines }}</span>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./diff_stats.vue?vue&type=template&id=7e7e1790\"\nimport script from \"./diff_stats.vue?vue&type=script&lang=js\"\nexport * from \"./diff_stats.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('div',{attrs:{\"data-testid\":\"assignees-widget\"}},[(_vm.shouldEnableRealtime)?_c('sidebar-assignees-realtime',{attrs:{\"issuable-type\":_vm.issuableType,\"issuable-id\":_vm.issuableId,\"query-variables\":_vm.queryVariables},on:{\"assigneesUpdated\":function($event){return _vm.$emit('assignees-updated', $event)}}}):_vm._e(),_vm._v(\" \"),_c('sidebar-editable-item',{ref:\"toggle\",attrs:{\"loading\":_vm.isSettingAssignees,\"initial-loading\":_vm.isAssigneesLoading,\"title\":_vm.assigneeText,\"edit-tooltip\":_vm.assigneeTooltip,\"edit-aria-label\":_vm.assigneeShortcutDescription,\"edit-keyshortcuts\":_vm.assigneeShortcutKey,\"is-dirty\":_vm.isDirty},on:{\"open\":_vm.showDropdown,\"close\":_vm.saveAssignees},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_vm._t(\"collapsed\",null,{\"users\":_vm.assignees}),_vm._v(\" \"),_c('issuable-assignees',{attrs:{\"users\":_vm.assignees,\"issuable-type\":_vm.issuableType,\"signed-in\":_vm.signedIn,\"editable\":_vm.editable},on:{\"assign-self\":_vm.assignSelf,\"expand-widget\":_vm.expandWidget}})]},proxy:true},{key:\"default\",fn:function({ edit }){return [_c('user-select',{ref:\"userSelect\",staticClass:\"dropdown-menu-user -gl-mt-3 gl-w-full\",attrs:{\"text\":_vm.$options.i18n.assignees,\"header-text\":_vm.$options.i18n.assignTo,\"iid\":_vm.iid,\"issuable-id\":_vm.issuableId,\"full-path\":_vm.fullPath,\"allow-multiple-assignees\":_vm.allowMultipleAssignees,\"current-user\":_vm.currentUser,\"issuable-type\":_vm.issuableType,\"is-editing\":edit,\"issuable-author\":_vm.issuableAuthor},on:{\"toggle\":_vm.collapseWidget,\"error\":_vm.showError,\"input\":_vm.setDirtyState},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [(_vm.directlyInviteMembers)?_c('gl-dropdown-item',[_c('sidebar-invite-members',{attrs:{\"issuable-type\":_vm.issuableType}})],1):_vm._e()]},proxy:true}],null,true),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})]}}],null,true)})],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!./assignees_realtime.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!./assignees_realtime.vue?vue&type=script&lang=js\"","<script>\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { assigneesQueries } from '../../queries/constants';\n\nexport default {\n subscription: null,\n name: 'AssigneesRealtime',\n props: {\n mediator: {\n type: Object,\n required: false,\n default: null,\n },\n issuableType: {\n type: String,\n required: true,\n },\n queryVariables: {\n type: Object,\n required: true,\n },\n },\n computed: {\n issuableId() {\n return this.issuable?.id;\n },\n },\n apollo: {\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n issuable: {\n query() {\n return assigneesQueries[this.issuableType].query;\n },\n variables() {\n return this.queryVariables;\n },\n update(data) {\n return data.workspace?.issuable;\n },\n subscribeToMore: {\n document() {\n return assigneesQueries[this.issuableType].subscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return !this.issuableId;\n },\n updateQuery(\n _,\n {\n subscriptionData: {\n data: { issuableAssigneesUpdated },\n },\n },\n ) {\n if (issuableAssigneesUpdated) {\n const {\n id,\n assignees: { nodes },\n } = issuableAssigneesUpdated;\n if (this.mediator) {\n this.handleFetchResult(nodes);\n }\n this.$emit('assigneesUpdated', { id, assignees: nodes });\n }\n },\n },\n },\n },\n methods: {\n handleFetchResult(nodes) {\n const assignees = nodes.map((n) => ({\n ...n,\n avatar_url: n.avatarUrl,\n id: getIdFromGraphQLId(n.id),\n }));\n\n this.mediator.store.setAssigneesFromRealtime(assignees);\n },\n },\n render() {\n return null;\n },\n};\n</script>\n","var render, staticRenderFns\nimport script from \"./assignees_realtime.vue?vue&type=script&lang=js\"\nexport * from \"./assignees_realtime.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--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./issuable_assignees.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!./issuable_assignees.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { n__ } from '~/locale';\nimport UncollapsedAssigneeList from './uncollapsed_assignee_list.vue';\n\nexport default {\n components: {\n GlButton,\n UncollapsedAssigneeList,\n },\n props: {\n users: {\n type: Array,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n signedIn: {\n type: Boolean,\n required: false,\n default: false,\n },\n editable: {\n type: Boolean,\n required: true,\n },\n },\n computed: {\n assigneesText() {\n return n__('Assignee', '%d Assignees', this.users.length);\n },\n emptyUsers() {\n return this.users.length === 0;\n },\n },\n};\n</script>\n\n<template>\n <div class=\"issuable-assignees gl-flex gl-flex-col\">\n <div\n v-if=\"emptyUsers\"\n class=\"hide-collapsed gl-flex gl-items-center gl-text-subtle\"\n data-testid=\"none\"\n >\n <span> {{ __('None') }}</span>\n <template v-if=\"signedIn && editable\">\n <span class=\"gl-ml-2\">-</span>\n <gl-button\n data-testid=\"assign-yourself\"\n category=\"tertiary\"\n variant=\"link\"\n class=\"gl-ml-2\"\n @click=\"$emit('assign-self')\"\n >\n <span class=\"gl-text-subtle hover:gl-text-blue-800\">{{ __('assign yourself') }}</span>\n </gl-button>\n </template>\n </div>\n <uncollapsed-assignee-list\n v-else\n :users=\"users\"\n :issuable-type=\"issuableType\"\n class=\"hide-collapsed gl-pt-2\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./issuable_assignees.vue?vue&type=template&id=6fdfb102\"\nimport script from \"./issuable_assignees.vue?vue&type=script&lang=js\"\nexport * from \"./issuable_assignees.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('div',{staticClass:\"issuable-assignees gl-flex gl-flex-col\"},[(_vm.emptyUsers)?_c('div',{staticClass:\"hide-collapsed gl-flex gl-items-center gl-text-subtle\",attrs:{\"data-testid\":\"none\"}},[_c('span',[_vm._v(\" \"+_vm._s(_vm.__('None')))]),_vm._v(\" \"),(_vm.signedIn && _vm.editable)?[_c('span',{staticClass:\"gl-ml-2\"},[_vm._v(\"-\")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-ml-2\",attrs:{\"data-testid\":\"assign-yourself\",\"category\":\"tertiary\",\"variant\":\"link\"},on:{\"click\":function($event){return _vm.$emit('assign-self')}}},[_c('span',{staticClass:\"gl-text-subtle hover:gl-text-blue-800\"},[_vm._v(_vm._s(_vm.__('assign yourself')))])])]:_vm._e()],2):_c('uncollapsed-assignee-list',{staticClass:\"hide-collapsed gl-pt-2\",attrs:{\"users\":_vm.users,\"issuable-type\":_vm.issuableType}})],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!./sidebar_invite_members.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!./sidebar_invite_members.vue?vue&type=script&lang=js\"","<script>\nimport InviteMembersTrigger from '~/invite_members/components/invite_members_trigger.vue';\nimport { __ } from '~/locale';\n\nexport default {\n displayText: __('Invite members'),\n components: {\n InviteMembersTrigger,\n },\n props: {\n issuableType: {\n type: String,\n required: true,\n },\n },\n computed: {\n triggerSource() {\n return `${this.issuableType}_assignee_dropdown`;\n },\n },\n};\n</script>\n\n<template>\n <invite-members-trigger\n trigger-element=\"anchor\"\n :display-text=\"$options.displayText\"\n :trigger-source=\"triggerSource\"\n classes=\"gl-block gl-pl-0 hover:gl-no-underline hover:!gl-text-blue-800\"\n />\n</template>\n","import { render, staticRenderFns } from \"./sidebar_invite_members.vue?vue&type=template&id=3178adca\"\nimport script from \"./sidebar_invite_members.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_invite_members.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('invite-members-trigger',{attrs:{\"trigger-element\":\"anchor\",\"display-text\":_vm.$options.displayText,\"trigger-source\":_vm.triggerSource,\"classes\":\"gl-block gl-pl-0 hover:gl-no-underline hover:!gl-text-blue-800\"}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlDropdownItem } from '@gitlab/ui';\nimport Vue from 'vue';\nimport { createAlert } from '~/alert';\nimport { TYPE_ALERT, TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { __, n__ } from '~/locale';\nimport UserSelect from '~/vue_shared/components/user_select/user_select.vue';\nimport glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { keysFor, ISSUE_MR_CHANGE_ASSIGNEE } from '~/behaviors/shortcuts/keybindings';\nimport { shouldDisableShortcuts } from '~/behaviors/shortcuts/shortcuts_toggle';\nimport { sanitize } from '~/lib/dompurify';\nimport { assigneesQueries } from '../../queries/constants';\nimport SidebarEditableItem from '../sidebar_editable_item.vue';\nimport SidebarAssigneesRealtime from './assignees_realtime.vue';\nimport IssuableAssignees from './issuable_assignees.vue';\nimport SidebarInviteMembers from './sidebar_invite_members.vue';\n\nexport const assigneesWidget = Vue.observable({\n updateAssignees: null,\n});\n\nconst hideDropdownEvent = new CustomEvent('hiddenGlDropdown', {\n bubbles: true,\n});\n\nexport default {\n i18n: {\n unassigned: __('Unassigned'),\n assignee: __('Assignee'),\n assignees: __('Assignees'),\n assignTo: __('Select assignees'),\n },\n components: {\n SidebarEditableItem,\n IssuableAssignees,\n GlDropdownItem,\n SidebarInviteMembers,\n SidebarAssigneesRealtime,\n UserSelect,\n },\n mixins: [glFeatureFlagsMixin()],\n inject: {\n directlyInviteMembers: {\n default: false,\n },\n },\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n initialAssignees: {\n type: Array,\n required: false,\n default: null,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n validator(value) {\n return [TYPE_ISSUE, TYPE_MERGE_REQUEST, TYPE_ALERT].includes(value);\n },\n },\n issuableId: {\n type: Number,\n required: false,\n default: null,\n },\n allowMultipleAssignees: {\n type: Boolean,\n required: true,\n },\n editable: {\n type: Boolean,\n required: true,\n },\n },\n data() {\n return {\n issuable: {},\n selected: [],\n isSettingAssignees: false,\n isDirty: false,\n oldIid: null,\n oldSelected: null,\n };\n },\n apollo: {\n issuable: {\n query() {\n return assigneesQueries[this.issuableType].query;\n },\n variables() {\n return this.queryVariables;\n },\n update(data) {\n return data.workspace?.issuable;\n },\n skip() {\n return !this.iid;\n },\n result({ data }) {\n if (!data) {\n return;\n }\n const issuable = data.workspace?.issuable;\n if (issuable) {\n this.selected = issuable.assignees.nodes.map((node) => ({\n ...node,\n canMerge: node.mergeRequestInteraction?.canMerge || false,\n }));\n }\n },\n error() {\n createAlert({ message: __('An error occurred while fetching participants.') });\n },\n },\n },\n computed: {\n shouldEnableRealtime() {\n // Note: Realtime is only available on issues right now, future support for MR wil be built later.\n return this.issuableType === TYPE_ISSUE;\n },\n queryVariables() {\n return {\n iid: this.iid,\n fullPath: this.fullPath,\n };\n },\n assignees() {\n const currentAssignees = this.$apollo.queries.issuable.loading\n ? this.initialAssignees\n : this.issuable?.assignees?.nodes;\n return currentAssignees || [];\n },\n assigneeText() {\n const items = this.$apollo.queries.issuable.loading ? this.initialAssignees : this.selected;\n if (!items) {\n return __('Assignee');\n }\n return n__('Assignee', '%d Assignees', items.length);\n },\n isAssigneesLoading() {\n return !this.initialAssignees && this.$apollo.queries.issuable.loading;\n },\n currentUser() {\n return {\n username: gon?.current_username,\n name: gon?.current_user_fullname,\n avatarUrl: gon?.current_user_avatar_url,\n canMerge: this.issuable?.userPermissions?.canMerge || false,\n };\n },\n signedIn() {\n return this.currentUser.username !== undefined;\n },\n issuableAuthor() {\n return this.issuable?.author;\n },\n assigneeShortcutDescription() {\n return shouldDisableShortcuts() ? null : ISSUE_MR_CHANGE_ASSIGNEE.description;\n },\n assigneeShortcutKey() {\n return shouldDisableShortcuts() ? null : keysFor(ISSUE_MR_CHANGE_ASSIGNEE)[0];\n },\n assigneeTooltip() {\n const description = this.assigneeShortcutDescription;\n const key = this.assigneeShortcutKey;\n return shouldDisableShortcuts()\n ? null\n : sanitize(`${description} <kbd class=\"flat gl-ml-1\" aria-hidden=true>${key}</kbd>`);\n },\n },\n watch: {\n iid(_, oldIid) {\n if (this.isDirty) {\n this.oldIid = oldIid;\n this.oldSelected = this.selected;\n }\n },\n },\n created() {\n assigneesWidget.updateAssignees = this.updateAssignees;\n },\n destroyed() {\n assigneesWidget.updateAssignees = null;\n },\n methods: {\n updateAssignees(assigneeUsernames) {\n this.isSettingAssignees = true;\n return this.$apollo\n .mutate({\n mutation: assigneesQueries[this.issuableType].mutation,\n variables: {\n ...this.queryVariables,\n assigneeUsernames,\n iid: this.oldIid || this.iid,\n },\n })\n .then(({ data }) => {\n this.$emit('assignees-updated', {\n id: data.issuableSetAssignees.issuable.id,\n assignees: data.issuableSetAssignees.issuable.assignees.nodes,\n });\n return data;\n })\n .catch(() => {\n createAlert({ message: __('An error occurred while updating assignees.') });\n })\n .finally(() => {\n this.isSettingAssignees = false;\n });\n },\n assignSelf() {\n this.updateAssignees([this.currentUser.username]);\n },\n saveAssignees() {\n if (this.isDirty) {\n this.isDirty = false;\n const usernames = this.oldSelected || this.selected;\n this.updateAssignees(usernames.map(({ username }) => username));\n this.oldIid = null;\n this.oldSelected = null;\n }\n this.$el.dispatchEvent(hideDropdownEvent);\n },\n collapseWidget() {\n this.$refs.toggle.collapse();\n },\n expandWidget() {\n this.$refs.toggle.expand();\n },\n showDropdown() {\n this.$refs.userSelect.showDropdown();\n },\n showError() {\n createAlert({ message: __('An error occurred while fetching participants.') });\n },\n setDirtyState() {\n this.isDirty = true;\n if (!this.allowMultipleAssignees) {\n this.collapseWidget();\n }\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"assignees-widget\">\n <sidebar-assignees-realtime\n v-if=\"shouldEnableRealtime\"\n :issuable-type=\"issuableType\"\n :issuable-id=\"issuableId\"\n :query-variables=\"queryVariables\"\n @assigneesUpdated=\"$emit('assignees-updated', $event)\"\n />\n <sidebar-editable-item\n ref=\"toggle\"\n :loading=\"isSettingAssignees\"\n :initial-loading=\"isAssigneesLoading\"\n :title=\"assigneeText\"\n :edit-tooltip=\"assigneeTooltip\"\n :edit-aria-label=\"assigneeShortcutDescription\"\n :edit-keyshortcuts=\"assigneeShortcutKey\"\n :is-dirty=\"isDirty\"\n @open=\"showDropdown\"\n @close=\"saveAssignees\"\n >\n <template #collapsed>\n <slot name=\"collapsed\" :users=\"assignees\"></slot>\n <issuable-assignees\n :users=\"assignees\"\n :issuable-type=\"issuableType\"\n :signed-in=\"signedIn\"\n :editable=\"editable\"\n @assign-self=\"assignSelf\"\n @expand-widget=\"expandWidget\"\n />\n </template>\n <template #default=\"{ edit }\">\n <user-select\n ref=\"userSelect\"\n v-model=\"selected\"\n :text=\"$options.i18n.assignees\"\n :header-text=\"$options.i18n.assignTo\"\n :iid=\"iid\"\n :issuable-id=\"issuableId\"\n :full-path=\"fullPath\"\n :allow-multiple-assignees=\"allowMultipleAssignees\"\n :current-user=\"currentUser\"\n :issuable-type=\"issuableType\"\n :is-editing=\"edit\"\n :issuable-author=\"issuableAuthor\"\n class=\"dropdown-menu-user -gl-mt-3 gl-w-full\"\n @toggle=\"collapseWidget\"\n @error=\"showError\"\n @input=\"setDirtyState\"\n >\n <template #footer>\n <gl-dropdown-item v-if=\"directlyInviteMembers\">\n <sidebar-invite-members :issuable-type=\"issuableType\" />\n </gl-dropdown-item> </template\n ></user-select>\n </template>\n </sidebar-editable-item>\n </div>\n</template>\n","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!./sidebar_assignees_widget.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!./sidebar_assignees_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_assignees_widget.vue?vue&type=template&id=66077c2e\"\nimport script from \"./sidebar_assignees_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_assignees_widget.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","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:map', {\n kind: 'mapping',\n construct: function (data) { return data !== null ? data : {}; }\n});\n","'use strict';\n\nvar Type = require('../type');\n\nmodule.exports = new Type('tag:yaml.org,2002:seq', {\n kind: 'sequence',\n construct: function (data) { return data !== null ? data : []; }\n});\n","var baseIsRegExp = require('./_baseIsRegExp'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsRegExp = nodeUtil && nodeUtil.isRegExp;\n\n/**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\nvar isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\nmodule.exports = isRegExp;\n","/** Used to detect strings that need a more robust regexp to match words. */\nvar reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n/**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\nfunction hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n}\n\nmodule.exports = hasUnicodeWord;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-dropdown-widget',_vm._g(_vm._b({attrs:{\"icon\":_vm.icon,\"issuable-type\":_vm.issuableType,\"attr-workspace-path\":_vm.attrWorkspacePath,\"issuable-attribute\":_vm.issuableAttribute,\"iid\":_vm.iid,\"workspace-path\":_vm.workspacePath,\"show-work-item-epics\":_vm.showWorkItemEpics,\"is-epic-attribute\":_vm.isEpic,\"issuable-parent\":_vm.issuable},on:{\"updateAttribute\":_vm.updateAttribute},scopedSlots:_vm._u([_vm._l((_vm.$scopedSlots),function(_,name){return {key:name,fn:function(slotData){return [_vm._t(name,null,null,slotData)]}}})],null,true)},'sidebar-dropdown-widget',_vm.$attrs,false),_vm.$listeners))\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { __ } from '~/locale';\nimport SidebarDropdownWidget from '~/sidebar/components/sidebar_dropdown_widget.vue';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST, TYPE_EPIC } from '~/issues/constants';\nimport { WORK_ITEM_TYPE_VALUE_EPIC } from '~/work_items/constants';\nimport { getIdFromGraphQLId, convertToGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_WORK_ITEM, TYPENAME_ISSUE } from '~/graphql_shared/constants';\nimport { createAlert } from '~/alert';\nimport {\n dropdowni18nText,\n IssuableAttributeType,\n IssuableAttributeState,\n LocalizedIssuableAttributeType,\n IssuableAttributeTypeKeyMap,\n SIDEBAR_ESCALATION_POLICY_TITLE,\n} from 'ee_else_ce/sidebar/constants';\nimport { issuableAttributesQueries } from '../queries/constants';\n\nconst widgetTitleText = {\n [IssuableAttributeType.Milestone]: __('Milestone'),\n [IssuableAttributeType.Iteration]: __('Iteration'),\n [IssuableAttributeType.Epic]: __('Epic'),\n [IssuableAttributeType.EscalationPolicy]: SIDEBAR_ESCALATION_POLICY_TITLE,\n none: __('None'),\n expired: __('(expired)'),\n};\n\nexport default {\n components: { SidebarDropdownWidget },\n provide: {\n issuableAttributesQueries,\n widgetTitleText,\n issuableAttributesState: IssuableAttributeState,\n },\n inheritAttrs: false,\n props: {\n issuableAttribute: {\n type: String,\n required: true,\n validator(value) {\n return [\n IssuableAttributeType.Milestone,\n IssuableAttributeType.Iteration,\n IssuableAttributeType.Epic,\n IssuableAttributeType.EscalationPolicy,\n ].includes(value);\n },\n },\n workspacePath: {\n required: true,\n type: String,\n },\n iid: {\n required: true,\n type: String,\n },\n attrWorkspacePath: {\n required: true,\n type: String,\n },\n issuableType: {\n type: String,\n required: true,\n validator(value) {\n return [TYPE_ISSUE, TYPE_MERGE_REQUEST].includes(value);\n },\n },\n icon: {\n type: String,\n required: false,\n default: undefined,\n },\n issueId: {\n type: String,\n required: false,\n default: '',\n },\n showWorkItemEpics: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n apollo: {\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n issuable: {\n query() {\n const { current } = this.issuableAttributeQuery;\n const { query } = current[this.issuableType];\n\n return query;\n },\n variables() {\n return {\n fullPath: this.workspacePath,\n iid: this.iid,\n };\n },\n update(data) {\n return data.workspace?.issuable || {};\n },\n result({ data }) {\n this.hasWorkItemParent = data?.workspace?.issuable?.hasParent && this.showWorkItemEpics;\n },\n error(error) {\n createAlert({\n message: this.i18n.currentFetchError,\n captureError: true,\n error,\n });\n },\n },\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n workItem: {\n query() {\n return issuableAttributesQueries[IssuableAttributeType.Parent].current[this.issuableType]\n .query;\n },\n variables() {\n return {\n id: this.issuableId,\n };\n },\n update(data) {\n return data.workspace?.workItems?.nodes[0] || {};\n },\n skip() {\n return !this.hasWorkItemParent;\n },\n result({ data }) {\n if (data?.workItem) {\n this.setParentData(data.workItem);\n }\n },\n error(error) {\n createAlert({\n message: this.i18n.currentFetchError,\n captureError: true,\n error,\n });\n },\n subscribeToMore: {\n document() {\n return issuableAttributesQueries[IssuableAttributeType.Parent].subscription;\n },\n variables() {\n return {\n workItemId: convertToGraphQLId(TYPENAME_WORK_ITEM, getIdFromGraphQLId(this.issuableId)),\n };\n },\n skip() {\n return this.skipRealTimeWorkItemParentUpdates;\n },\n updateQuery(_, { subscriptionData }) {\n if (subscriptionData.data?.workItem) {\n this.setParentData(subscriptionData.data.workItem);\n }\n },\n },\n },\n },\n data() {\n return {\n hasWorkItemParent: false,\n };\n },\n computed: {\n issuableId() {\n return this.issuableType === TYPE_ISSUE\n ? convertToGraphQLId(TYPENAME_ISSUE, this.issueId)\n : this.issueId;\n },\n issuableAttributeQuery() {\n return issuableAttributesQueries[this.issuableAttribute];\n },\n skipRealTimeWorkItemParentUpdates() {\n return this.isEpic && !this.showWorkItemEpics && !this.issuableId;\n },\n i18n() {\n const localizedAttribute =\n LocalizedIssuableAttributeType[IssuableAttributeTypeKeyMap[this.issuableAttribute]];\n return dropdowni18nText(localizedAttribute, this.issuableType);\n },\n isEpic() {\n return this.issuableAttribute === TYPE_EPIC;\n },\n },\n methods: {\n async updateAttribute({ id, workItemType }) {\n this.updating = true;\n let response;\n try {\n if (this.hasWorkItemParent) {\n // setting null if there is parent already assigned\n // to avoid parent already assigned error\n await this.updateWorkItem({\n input: {\n id: this.issuableId,\n hierarchyWidget: { parentId: null },\n },\n });\n } else if (this.isEpic && this.showWorkItemEpics && !this.issuable?.hasParent) {\n // Added checks to avoid getting it fired unnecessarily for other widgets\n\n // setting null if there is epic already assigned\n // to avoid epic already assigned error\n await this.updateIssuable({\n fullPath: this.workspacePath,\n attributeId: null,\n iid: this.iid,\n });\n }\n\n // Set actual data for work item epic or legacy epic\n if (workItemType?.name === WORK_ITEM_TYPE_VALUE_EPIC) {\n response = await this.updateWorkItem({\n input: {\n id: this.issuableId,\n hierarchyWidget: { parentId: id },\n },\n });\n } else {\n response = await this.updateIssuable({\n fullPath: this.workspacePath,\n attributeId: id,\n iid: this.iid,\n });\n }\n\n if (response.data.issuableSetAttribute?.errors?.length) {\n createAlert({\n message: response.data.issuableSetAttribute.errors[0],\n captureError: true,\n error: response.data.issuableSetAttribute.errors[0],\n });\n } else {\n this.hasWorkItemParent =\n workItemType?.name === WORK_ITEM_TYPE_VALUE_EPIC && this.showWorkItemEpics;\n this.$emit('attribute-updated', response.data);\n }\n } catch (error) {\n createAlert({ message: this.i18n.updateError, captureError: true, error });\n } finally {\n this.updating = false;\n }\n },\n updateWorkItem(variables) {\n const { current } = issuableAttributesQueries[IssuableAttributeType.Parent];\n const { mutation } = current[this.issuableType];\n\n return this.$apollo.mutate({\n mutation,\n variables,\n });\n },\n updateIssuable(variables) {\n const { current } = this.issuableAttributeQuery;\n const { mutation } = current[this.issuableType];\n\n return this.$apollo.mutate({\n mutation,\n variables,\n });\n },\n setParentData(workItem) {\n const parent = workItem?.widgets?.find((widget) => widget.type === 'HIERARCHY')?.parent;\n\n this.issuable = {\n ...this.issuable,\n attribute: parent\n ? {\n id: parent.id,\n title: parent.title,\n webUrl: parent.webUrl,\n }\n : null,\n };\n },\n },\n};\n</script>\n<template>\n <sidebar-dropdown-widget\n :icon=\"icon\"\n :issuable-type=\"issuableType\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :issuable-attribute=\"issuableAttribute\"\n :iid=\"iid\"\n :workspace-path=\"workspacePath\"\n :show-work-item-epics=\"showWorkItemEpics\"\n :is-epic-attribute=\"isEpic\"\n :issuable-parent=\"issuable\"\n v-bind=\"$attrs\"\n @updateAttribute=\"updateAttribute\"\n v-on=\"$listeners\"\n >\n <template v-for=\"(_, name) in $scopedSlots\" #[name]=\"slotData\">\n <slot :name=\"name\" v-bind=\"slotData\"></slot>\n </template>\n </sidebar-dropdown-widget>\n</template>\n","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!./sidebar_dropdown_widget.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!./sidebar_dropdown_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_dropdown_widget.vue?vue&type=template&id=dd4f7e04\"\nimport script from \"./sidebar_dropdown_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_dropdown_widget.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 GlLink from '../link/link';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'AvatarLink',\n components: {\n GlLink\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('gl-link',_vm._g(_vm._b({staticClass:\"gl-avatar-link\"},'gl-link',_vm.$attrs,false),_vm.$listeners),[_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 { extend } from '../../vue';\nimport { NAME_TR } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { listenersMixin } from '../../mixins/listeners';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\n\n// --- Constants ---\n\nconst LIGHT = 'light';\nconst DARK = 'dark';\n\n// --- Props ---\n\nconst props = makePropsConfigurable({\n variant: makeProp(PROP_TYPE_STRING)\n}, NAME_TR);\n\n// --- Main component ---\n\n// TODO:\n// In Bootstrap v5, we won't need \"sniffing\" as table element variants properly inherit\n// to the child elements, so this can be converted to a functional component\n// @vue/component\nconst BTr = /*#__PURE__*/extend({\n name: NAME_TR,\n mixins: [attrsMixin, listenersMixin, normalizeSlotMixin],\n provide() {\n return {\n getBvTableTr: () => this\n };\n },\n inject: {\n getBvTableRowGroup: {\n default: /* istanbul ignore next */() => () => ({})\n }\n },\n inheritAttrs: false,\n props,\n computed: {\n bvTableRowGroup() {\n return this.getBvTableRowGroup();\n },\n // Sniffed by `<b-td>` / `<b-th>`\n inTbody() {\n return this.bvTableRowGroup.isTbody;\n },\n // Sniffed by `<b-td>` / `<b-th>`\n inThead() {\n return this.bvTableRowGroup.isThead;\n },\n // Sniffed by `<b-td>` / `<b-th>`\n inTfoot() {\n return this.bvTableRowGroup.isTfoot;\n },\n // Sniffed by `<b-td>` / `<b-th>`\n isDark() {\n return this.bvTableRowGroup.isDark;\n },\n // Sniffed by `<b-td>` / `<b-th>`\n isStacked() {\n return this.bvTableRowGroup.isStacked;\n },\n // Sniffed by `<b-td>` / `<b-th>`\n isResponsive() {\n return this.bvTableRowGroup.isResponsive;\n },\n // Sniffed by `<b-td>` / `<b-th>`\n // Sticky headers are only supported in thead\n isStickyHeader() {\n return this.bvTableRowGroup.isStickyHeader;\n },\n // Sniffed by <b-tr> / `<b-td>` / `<b-th>`\n // Needed to handle header background classes, due to lack of\n // background color inheritance with Bootstrap v4 table CSS\n hasStickyHeader() {\n return !this.isStacked && this.bvTableRowGroup.hasStickyHeader;\n },\n // Sniffed by `<b-td>` / `<b-th>`\n tableVariant() {\n return this.bvTableRowGroup.tableVariant;\n },\n // Sniffed by `<b-td>` / `<b-th>`\n headVariant() {\n return this.inThead ? this.bvTableRowGroup.headVariant : null;\n },\n // Sniffed by `<b-td>` / `<b-th>`\n footVariant() {\n return this.inTfoot ? this.bvTableRowGroup.footVariant : null;\n },\n isRowDark() {\n return this.headVariant === LIGHT || this.footVariant === LIGHT ? /* istanbul ignore next */false : this.headVariant === DARK || this.footVariant === DARK ? /* istanbul ignore next */true : this.isDark;\n },\n trClasses() {\n const {\n variant\n } = this;\n return [variant ? `${this.isRowDark ? 'bg' : 'table'}-${variant}` : null];\n },\n trAttrs() {\n return {\n role: 'row',\n ...this.bvAttrs\n };\n }\n },\n render(h) {\n return h('tr', {\n class: this.trClasses,\n attrs: this.trAttrs,\n // Pass native listeners to child\n on: this.bvListeners\n }, this.normalizeSlot());\n }\n});\n\nexport { BTr, props };\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestId\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"diffStatsSummary\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"fileCount\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"preparedAt\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":219}};\n doc.loc.source = {\"body\":\"query mergeRequestId($projectPath: ID!, $iid: String!) {\\n project(fullPath: $projectPath) {\\n id\\n mergeRequest(iid: $iid) {\\n id\\n diffStatsSummary {\\n fileCount\\n }\\n preparedAt\\n }\\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[\"mergeRequestId\"] = oneQuery(doc, \"mergeRequestId\");\n \n","var baseProperty = require('./_baseProperty');\n\n/**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\nvar asciiSize = baseProperty('length');\n\nmodule.exports = asciiSize;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var baseSlice = require('./_baseSlice');\n\n/**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n}\n\nmodule.exports = baseWhile;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-editable-item',{ref:\"editable\",staticClass:\"block\",attrs:{\"title\":_vm.dateLabel,\"tracking\":_vm.tracking,\"loading\":_vm.isLoading,\"data-testid\":_vm.dataTestId},on:{\"open\":_vm.openDatePicker},scopedSlots:_vm._u([(_vm.canInherit)?{key:\"title-extra\",fn:function(){return [_c('help-icon',{ref:\"epicDatePopover\",staticClass:\"hide-collapsed gl-ml-3 gl-cursor-pointer\",attrs:{\"tabindex\":\"0\",\"aria-label\":_vm.$options.i18n.help,\"data-testid\":\"inherit-date-popover\"}}),_vm._v(\" \"),_c('gl-popover',{attrs:{\"target\":_vm.epicDatePopoverEl,\"triggers\":\"focus\",\"placement\":\"left\",\"boundary\":\"viewport\"}},[_c('p',[_vm._v(_vm._s(_vm.$options.i18n.dateHelpValidMessage))]),_vm._v(\" \"),_c('gl-link',{attrs:{\"href\":_vm.$options.dateHelpUrl,\"target\":\"_blank\"}},[_vm._v(_vm._s(_vm.$options.i18n.learnMore))])],1)]},proxy:true}:null,{key:\"collapsed\",fn:function(){return [_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.dateLabel}},[_c('gl-icon',{attrs:{\"size\":16,\"name\":\"calendar\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(_vm._s(_vm.formattedDate))])],1),_vm._v(\" \"),(_vm.canInherit && !_vm.initialLoading)?_c('sidebar-inherit-date',{attrs:{\"issuable\":_vm.issuable,\"date-type\":_vm.dateType,\"is-loading\":_vm.isLoading},on:{\"reset-date\":function($event){return _vm.setDate(null)},\"set-date\":_vm.setFixedDate}}):_c('sidebar-formatted-date',{attrs:{\"has-date\":_vm.hasDate,\"formatted-date\":_vm.formattedDate,\"reset-text\":_vm.removeDateLabel,\"is-loading\":_vm.isLoading},on:{\"reset-date\":function($event){return _vm.setDate(null)}}})]},proxy:true},{key:\"default\",fn:function(){return [(!_vm.isLoading)?_c('gl-datepicker',{ref:\"datePicker\",staticClass:\"gl-relative\",attrs:{\"value\":_vm.parsedDate,\"min-date\":_vm.minDate,\"max-date\":_vm.maxDate,\"default-date\":_vm.parsedDate,\"first-day\":_vm.firstDay,\"show-clear-button\":\"\",\"autocomplete\":\"off\"},on:{\"input\":_vm.setDate,\"clear\":function($event){return _vm.setDate(null)}}}):_vm._e()]},proxy:true}],null,true)})\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!./sidebar_formatted_date.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!./sidebar_formatted_date.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\n\nexport default {\n components: {\n GlButton,\n },\n inject: ['canUpdate'],\n props: {\n formattedDate: {\n required: true,\n type: String,\n },\n hasDate: {\n required: true,\n type: Boolean,\n },\n resetText: {\n required: true,\n type: String,\n },\n isLoading: {\n required: true,\n type: Boolean,\n },\n canDelete: {\n required: false,\n type: Boolean,\n default: true,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"hide-collapsed gl-flex gl-items-center\">\n <span :class=\"hasDate ? 'gl-text-default' : 'gl-text-subtle'\" data-testid=\"sidebar-date-value\">\n {{ formattedDate }}\n </span>\n <div v-if=\"hasDate && canUpdate && canDelete\" class=\"gl-flex\">\n <span class=\"gl-px-2\">-</span>\n <gl-button\n variant=\"link\"\n class=\"!gl-text-subtle\"\n data-testid=\"reset-button\"\n :disabled=\"isLoading\"\n @click=\"$emit('reset-date', $event)\"\n >\n {{ resetText }}\n </gl-button>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_formatted_date.vue?vue&type=template&id=551d23d8\"\nimport script from \"./sidebar_formatted_date.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_formatted_date.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('div',{staticClass:\"hide-collapsed gl-flex gl-items-center\"},[_c('span',{class:_vm.hasDate ? 'gl-text-default' : 'gl-text-subtle',attrs:{\"data-testid\":\"sidebar-date-value\"}},[_vm._v(\"\\n \"+_vm._s(_vm.formattedDate)+\"\\n \")]),_vm._v(\" \"),(_vm.hasDate && _vm.canUpdate && _vm.canDelete)?_c('div',{staticClass:\"gl-flex\"},[_c('span',{staticClass:\"gl-px-2\"},[_vm._v(\"-\")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"!gl-text-subtle\",attrs:{\"variant\":\"link\",\"data-testid\":\"reset-button\",\"disabled\":_vm.isLoading},on:{\"click\":function($event){return _vm.$emit('reset-date', $event)}}},[_vm._v(\"\\n \"+_vm._s(_vm.resetText)+\"\\n \")])],1):_vm._e()])\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!./sidebar_inherit_date.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!./sidebar_inherit_date.vue?vue&type=script&lang=js\"","<script>\nimport { GlFormRadio } from '@gitlab/ui';\nimport { localeDateFormat, newDate } from '~/lib/utils/datetime_utility';\nimport { __ } from '~/locale';\nimport { dateFields } from '../../constants';\nimport SidebarFormattedDate from './sidebar_formatted_date.vue';\n\nexport default {\n components: {\n GlFormRadio,\n SidebarFormattedDate,\n },\n inject: ['canUpdate'],\n props: {\n issuable: {\n required: true,\n type: Object,\n },\n isLoading: {\n required: false,\n type: Boolean,\n default: false,\n },\n dateType: {\n type: String,\n required: true,\n },\n },\n computed: {\n dateIsFixed: {\n get() {\n return this.issuable?.[dateFields[this.dateType].isDateFixed] || false;\n },\n set(fixed) {\n if (fixed === this.issuable[dateFields[this.dateType].isDateFixed]) return;\n this.$emit('set-date', fixed);\n },\n },\n hasFixedDate() {\n return this.issuable[dateFields[this.dateType].dateFixed] !== null;\n },\n formattedFixedDate() {\n const dateFixed = this.issuable[dateFields[this.dateType].dateFixed];\n if (!dateFixed) {\n return this.$options.i18n.noDate;\n }\n\n return localeDateFormat.asDate.format(newDate(dateFixed));\n },\n formattedInheritedDate() {\n const dateFromMilestones = this.issuable[dateFields[this.dateType].dateFromMilestones];\n if (!dateFromMilestones) {\n return this.$options.i18n.noDate;\n }\n\n return localeDateFormat.asDate.format(newDate(dateFromMilestones));\n },\n },\n i18n: {\n fixed: __('Fixed:'),\n inherited: __('Inherited:'),\n remove: __('remove'),\n noDate: __('None'),\n },\n};\n</script>\n\n<template>\n <div class=\"hide-collapsed gl-mt-3\">\n <div class=\"gl-flex gl-items-baseline\" data-testid=\"sidebar-fixed-date\">\n <gl-form-radio\n v-model=\"dateIsFixed\"\n :value=\"true\"\n :disabled=\"!canUpdate || isLoading\"\n class=\"gl-pr-2\"\n >\n <span :class=\"dateIsFixed ? 'gl-font-bold gl-text-default' : 'gl-text-subtle'\">\n {{ $options.i18n.fixed }}\n </span>\n </gl-form-radio>\n <sidebar-formatted-date\n :has-date=\"dateIsFixed\"\n :formatted-date=\"formattedFixedDate\"\n :reset-text=\"$options.i18n.remove\"\n :is-loading=\"isLoading\"\n :can-delete=\"dateIsFixed && hasFixedDate\"\n class=\"gl-leading-normal\"\n @reset-date=\"$emit('reset-date', $event)\"\n />\n </div>\n <div class=\"gl-flex gl-items-baseline\" data-testid=\"sidebar-inherited-date\">\n <gl-form-radio\n v-model=\"dateIsFixed\"\n :value=\"false\"\n :disabled=\"!canUpdate || isLoading\"\n class=\"gl-pr-2\"\n >\n <span :class=\"!dateIsFixed ? 'gl-font-bold gl-text-default' : 'gl-text-disalbed'\">\n {{ $options.i18n.inherited }}\n </span>\n </gl-form-radio>\n <sidebar-formatted-date\n :has-date=\"!dateIsFixed\"\n :formatted-date=\"formattedInheritedDate\"\n :reset-text=\"$options.i18n.remove\"\n :is-loading=\"isLoading\"\n :can-delete=\"false\"\n class=\"gl-leading-normal\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_inherit_date.vue?vue&type=template&id=144fb6f1\"\nimport script from \"./sidebar_inherit_date.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_inherit_date.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('div',{staticClass:\"hide-collapsed gl-mt-3\"},[_c('div',{staticClass:\"gl-flex gl-items-baseline\",attrs:{\"data-testid\":\"sidebar-fixed-date\"}},[_c('gl-form-radio',{staticClass:\"gl-pr-2\",attrs:{\"value\":true,\"disabled\":!_vm.canUpdate || _vm.isLoading},model:{value:(_vm.dateIsFixed),callback:function ($$v) {_vm.dateIsFixed=$$v},expression:\"dateIsFixed\"}},[_c('span',{class:_vm.dateIsFixed ? 'gl-font-bold gl-text-default' : 'gl-text-subtle'},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.fixed)+\"\\n \")])]),_vm._v(\" \"),_c('sidebar-formatted-date',{staticClass:\"gl-leading-normal\",attrs:{\"has-date\":_vm.dateIsFixed,\"formatted-date\":_vm.formattedFixedDate,\"reset-text\":_vm.$options.i18n.remove,\"is-loading\":_vm.isLoading,\"can-delete\":_vm.dateIsFixed && _vm.hasFixedDate},on:{\"reset-date\":function($event){return _vm.$emit('reset-date', $event)}}})],1),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-items-baseline\",attrs:{\"data-testid\":\"sidebar-inherited-date\"}},[_c('gl-form-radio',{staticClass:\"gl-pr-2\",attrs:{\"value\":false,\"disabled\":!_vm.canUpdate || _vm.isLoading},model:{value:(_vm.dateIsFixed),callback:function ($$v) {_vm.dateIsFixed=$$v},expression:\"dateIsFixed\"}},[_c('span',{class:!_vm.dateIsFixed ? 'gl-font-bold gl-text-default' : 'gl-text-disalbed'},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.inherited)+\"\\n \")])]),_vm._v(\" \"),_c('sidebar-formatted-date',{staticClass:\"gl-leading-normal\",attrs:{\"has-date\":!_vm.dateIsFixed,\"formatted-date\":_vm.formattedInheritedDate,\"reset-text\":_vm.$options.i18n.remove,\"is-loading\":_vm.isLoading,\"can-delete\":false}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlIcon, GlDatepicker, GlTooltipDirective, GlLink, GlPopover } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { localeDateFormat, newDate, toISODateFormat } from '~/lib/utils/datetime_utility';\nimport { __, sprintf } from '~/locale';\nimport { dateFields, dateTypes, Tracking } from '../../constants';\nimport { dueDateQueries, startDateQueries } from '../../queries/constants';\nimport SidebarEditableItem from '../sidebar_editable_item.vue';\nimport SidebarFormattedDate from './sidebar_formatted_date.vue';\nimport SidebarInheritDate from './sidebar_inherit_date.vue';\n\nconst hideDropdownEvent = new CustomEvent('hiddenGlDropdown', {\n bubbles: true,\n});\n\nexport default {\n tracking: {\n event: Tracking.editEvent,\n label: Tracking.rightSidebarLabel,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlIcon,\n GlDatepicker,\n GlLink,\n GlPopover,\n SidebarEditableItem,\n SidebarFormattedDate,\n SidebarInheritDate,\n HelpIcon,\n },\n inject: ['canUpdate'],\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n dateType: {\n type: String,\n required: false,\n default: dateTypes.due,\n },\n issuableType: {\n required: true,\n type: String,\n },\n canInherit: {\n required: false,\n type: Boolean,\n default: false,\n },\n minDate: {\n required: false,\n type: Date,\n default: null,\n },\n maxDate: {\n required: false,\n type: Date,\n default: null,\n },\n },\n data() {\n return {\n issuable: {},\n loading: false,\n tracking: {\n ...this.$options.tracking,\n property: this.dateType === dateTypes.start ? 'startDate' : 'dueDate',\n },\n };\n },\n apollo: {\n issuable: {\n query() {\n return this.dateQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.iid),\n };\n },\n skip() {\n return !this.iid;\n },\n update(data) {\n return data.workspace?.issuable || {};\n },\n result({ data }) {\n if (!data) {\n return;\n }\n this.$emit(`${this.dateType}Updated`, data.workspace?.issuable?.[this.dateType]);\n },\n error() {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} %{dateType} date.'),\n {\n issuableType: this.issuableType,\n dateType: this.dateType === dateTypes.start ? 'start' : 'due',\n },\n ),\n });\n },\n subscribeToMore: {\n document() {\n return this.dateQueries[this.issuableType].subscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return this.skipIssueDueDateSubscription;\n },\n },\n },\n },\n computed: {\n dateQueries() {\n return this.dateType === dateTypes.start ? startDateQueries : dueDateQueries;\n },\n dateLabel() {\n return this.dateType === dateTypes.start\n ? this.$options.i18n.startDate\n : this.$options.i18n.dueDate;\n },\n removeDateLabel() {\n return this.dateType === dateTypes.start\n ? this.$options.i18n.removeStartDate\n : this.$options.i18n.removeDueDate;\n },\n dateValue() {\n return this.issuable?.[this.dateType] || null;\n },\n firstDay() {\n return gon.first_day_of_week;\n },\n isLoading() {\n return this.$apollo.queries.issuable.loading || this.loading;\n },\n initialLoading() {\n return this.$apollo.queries.issuable.loading;\n },\n hasDate() {\n return this.dateValue !== null;\n },\n parsedDate() {\n if (!this.hasDate) {\n return null;\n }\n\n return newDate(this.dateValue);\n },\n formattedDate() {\n if (!this.hasDate) {\n return this.$options.i18n.noDate;\n }\n\n return localeDateFormat.asDate.format(this.parsedDate);\n },\n workspacePath() {\n return this.issuableType === TYPE_ISSUE\n ? {\n projectPath: this.fullPath,\n }\n : {\n groupPath: this.fullPath,\n };\n },\n dataTestId() {\n return this.dateType === dateTypes.start ? 'sidebar-start-date' : 'sidebar-due-date';\n },\n issuableId() {\n return this.issuable.id;\n },\n skipIssueDueDateSubscription() {\n return this.issuableType !== TYPE_ISSUE || !this.issuableId || this.isLoading;\n },\n },\n methods: {\n epicDatePopoverEl() {\n return this.$refs?.epicDatePopover?.$el;\n },\n closeForm() {\n this.$refs.editable.collapse();\n this.$el.dispatchEvent(hideDropdownEvent);\n this.$emit('closeForm');\n },\n openDatePicker() {\n this.$refs.datePicker.show();\n },\n setFixedDate(isFixed) {\n const date = this.issuable[dateFields[this.dateType].dateFixed];\n this.setDate(date, isFixed);\n },\n setDate(date, isFixed = true) {\n const formattedDate = date ? toISODateFormat(date) : null;\n this.loading = true;\n this.$refs.editable.collapse();\n this.$apollo\n .mutate({\n mutation: this.dateQueries[this.issuableType].mutation,\n variables: {\n input: {\n ...this.workspacePath,\n iid: this.iid,\n ...(this.canInherit\n ? {\n [dateFields[this.dateType].dateFixed]: isFixed ? formattedDate : undefined,\n [dateFields[this.dateType].isDateFixed]: isFixed,\n }\n : {\n [this.dateType]: formattedDate,\n }),\n },\n },\n })\n .then(\n ({\n data: {\n issuableSetDate: { errors },\n },\n }) => {\n if (errors.length) {\n createAlert({\n message: errors[0],\n });\n } else {\n this.$emit('closeForm');\n }\n },\n )\n .catch(() => {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} %{dateType} date.'),\n {\n issuableType: this.issuableType,\n dateType: this.dateType === dateTypes.start ? 'start' : 'due',\n },\n ),\n });\n })\n .finally(() => {\n this.loading = false;\n });\n },\n },\n i18n: {\n dueDate: __('Due date'),\n startDate: __('Start date'),\n noDate: __('None'),\n removeDueDate: __('remove due date'),\n removeStartDate: __('remove start date'),\n dateHelpValidMessage: __(\n 'These dates affect how your epics appear in the roadmap. Set a fixed date or one inherited from the milestones assigned to issues in this epic.',\n ),\n help: __('Help'),\n learnMore: __('Learn more'),\n },\n dateHelpUrl: '/help/user/group/epics/manage_epics.md#start-and-due-date-inheritance',\n};\n</script>\n\n<template>\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"dateLabel\"\n :tracking=\"tracking\"\n :loading=\"isLoading\"\n class=\"block\"\n :data-testid=\"dataTestId\"\n @open=\"openDatePicker\"\n >\n <template v-if=\"canInherit\" #title-extra>\n <help-icon\n ref=\"epicDatePopover\"\n class=\"hide-collapsed gl-ml-3 gl-cursor-pointer\"\n tabindex=\"0\"\n :aria-label=\"$options.i18n.help\"\n data-testid=\"inherit-date-popover\"\n />\n <gl-popover :target=\"epicDatePopoverEl\" triggers=\"focus\" placement=\"left\" boundary=\"viewport\">\n <p>{{ $options.i18n.dateHelpValidMessage }}</p>\n <gl-link :href=\"$options.dateHelpUrl\" target=\"_blank\">{{\n $options.i18n.learnMore\n }}</gl-link>\n </gl-popover>\n </template>\n <template #collapsed>\n <div v-gl-tooltip.viewport.left :title=\"dateLabel\" class=\"sidebar-collapsed-icon\">\n <gl-icon :size=\"16\" name=\"calendar\" />\n <span class=\"gl-px-3 gl-pt-2 gl-text-sm\">{{ formattedDate }}</span>\n </div>\n <sidebar-inherit-date\n v-if=\"canInherit && !initialLoading\"\n :issuable=\"issuable\"\n :date-type=\"dateType\"\n :is-loading=\"isLoading\"\n @reset-date=\"setDate(null)\"\n @set-date=\"setFixedDate\"\n />\n <sidebar-formatted-date\n v-else\n :has-date=\"hasDate\"\n :formatted-date=\"formattedDate\"\n :reset-text=\"removeDateLabel\"\n :is-loading=\"isLoading\"\n @reset-date=\"setDate(null)\"\n />\n </template>\n <template #default>\n <gl-datepicker\n v-if=\"!isLoading\"\n ref=\"datePicker\"\n class=\"gl-relative\"\n :value=\"parsedDate\"\n :min-date=\"minDate\"\n :max-date=\"maxDate\"\n :default-date=\"parsedDate\"\n :first-day=\"firstDay\"\n show-clear-button\n autocomplete=\"off\"\n @input=\"setDate\"\n @clear=\"setDate(null)\"\n />\n </template>\n </sidebar-editable-item>\n</template>\n","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!./sidebar_date_widget.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!./sidebar_date_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_date_widget.vue?vue&type=template&id=7f43361a\"\nimport script from \"./sidebar_date_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_date_widget.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\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemParentUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workItem\"},\"name\":{\"kind\":\"Name\",\"value\":\"workItemUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"workItemId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetHierarchy\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"parent\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":284}};\n doc.loc.source = {\"body\":\"subscription workItemParentUpdated($workItemId: WorkItemID!) {\\n workItem: workItemUpdated(workItemId: $workItemId) {\\n id\\n widgets {\\n ... on WorkItemWidgetHierarchy {\\n type\\n parent {\\n id\\n title\\n webUrl\\n }\\n }\\n }\\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[\"workItemParentUpdated\"] = oneQuery(doc, \"workItemParentUpdated\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',{staticClass:\"gl-flex gl-items-center\"},[_c('ci-icon',{staticClass:\"gl-leading-0\",attrs:{\"size\":_vm.iconSize,\"status\":_vm.status,\"show-tooltip\":false,\"use-link\":false}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-line-clamp-2 gl-pl-3 gl-wrap-anywhere\",attrs:{\"title\":_vm.name}},[_vm._v(\"\\n \"+_vm._s(_vm.name)+\"\\n \")])],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!./job_name_component.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!./job_name_component.vue?vue&type=script&lang=js\"","<script>\nimport CiIcon from '~/vue_shared/components/ci_icon/ci_icon.vue';\n\n/**\n * Component that renders both the CI icon status and the job name.\n * Used in\n * - Badge component\n * - Dropdown badge components\n */\nexport default {\n components: {\n CiIcon,\n },\n props: {\n name: {\n type: String,\n required: true,\n },\n status: {\n type: Object,\n required: true,\n },\n iconSize: {\n type: Number,\n required: false,\n default: 16,\n },\n },\n};\n</script>\n<template>\n <span class=\"gl-flex gl-items-center\">\n <ci-icon\n :size=\"iconSize\"\n :status=\"status\"\n :show-tooltip=\"false\"\n :use-link=\"false\"\n class=\"gl-leading-0\"\n />\n <span class=\"gl-line-clamp-2 gl-pl-3 gl-wrap-anywhere\" :title=\"name\">\n {{ name }}\n </span>\n </span>\n</template>\n","import { render, staticRenderFns } from \"./job_name_component.vue?vue&type=template&id=10612be2\"\nimport script from \"./job_name_component.vue?vue&type=script&lang=js\"\nexport * from \"./job_name_component.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","'use strict';\n\nvar esprima;\n\n// Browserified version does not have esprima\n//\n// 1. For node.js just require module as deps\n// 2. For browser try to require mudule via external AMD system.\n// If not found - try to fallback to window.esprima. If not\n// found too - then fail to parse.\n//\ntry {\n // workaround to exclude package from browserify list.\n var _require = require;\n esprima = _require('esprima');\n} catch (_) {\n /* eslint-disable no-redeclare */\n /* global window */\n if (typeof window !== 'undefined') esprima = window.esprima;\n}\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptFunction(data) {\n if (data === null) return false;\n\n try {\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true });\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n return false;\n }\n\n return true;\n } catch (err) {\n return false;\n }\n}\n\nfunction constructJavascriptFunction(data) {\n /*jslint evil:true*/\n\n var source = '(' + data + ')',\n ast = esprima.parse(source, { range: true }),\n params = [],\n body;\n\n if (ast.type !== 'Program' ||\n ast.body.length !== 1 ||\n ast.body[0].type !== 'ExpressionStatement' ||\n (ast.body[0].expression.type !== 'ArrowFunctionExpression' &&\n ast.body[0].expression.type !== 'FunctionExpression')) {\n throw new Error('Failed to resolve function');\n }\n\n ast.body[0].expression.params.forEach(function (param) {\n params.push(param.name);\n });\n\n body = ast.body[0].expression.body.range;\n\n // Esprima's ranges include the first '{' and the last '}' characters on\n // function expressions. So cut them out.\n if (ast.body[0].expression.body.type === 'BlockStatement') {\n /*eslint-disable no-new-func*/\n return new Function(params, source.slice(body[0] + 1, body[1] - 1));\n }\n // ES6 arrow functions can omit the BlockStatement. In that case, just return\n // the body.\n /*eslint-disable no-new-func*/\n return new Function(params, 'return ' + source.slice(body[0], body[1]));\n}\n\nfunction representJavascriptFunction(object /*, style*/) {\n return object.toString();\n}\n\nfunction isFunction(object) {\n return Object.prototype.toString.call(object) === '[object Function]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/function', {\n kind: 'scalar',\n resolve: resolveJavascriptFunction,\n construct: constructJavascriptFunction,\n predicate: isFunction,\n represent: representJavascriptFunction\n});\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"autoMergeEnabled\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"autoMergeStrategy\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeUser\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"username\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"avatarUrl\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"targetBranch\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"shouldRemoveSourceBranch\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"forceRemoveSourceBranch\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"removeSourceBranch\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":258}};\n doc.loc.source = {\"body\":\"fragment autoMergeEnabled on MergeRequest {\\n id\\n autoMergeStrategy\\n mergeUser {\\n id\\n name\\n username\\n webUrl\\n avatarUrl\\n }\\n targetBranch\\n shouldRemoveSourceBranch\\n forceRemoveSourceBranch\\n userPermissions {\\n removeSourceBranch\\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[\"autoMergeEnabled\"] = oneQuery(doc, \"autoMergeEnabled\");\n \n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","export default {\n computed: {\n mergeRequestQueryVariables() {\n return {\n projectPath: this.mr.targetProjectFullPath,\n iid: `${this.mr.iid}`,\n };\n },\n },\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"configureSast\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ConfigureSastInput\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"configureSast\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"successPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":120}};\n doc.loc.source = {\"body\":\"mutation configureSast($input: ConfigureSastInput!) {\\n configureSast(input: $input) {\\n successPath\\n errors\\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[\"configureSast\"] = oneQuery(doc, \"configureSast\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeChecks\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canMerge\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeabilityChecks\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"identifier\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":266}};\n doc.loc.source = {\"body\":\"query mergeChecks($projectPath: ID!, $iid: String!) {\\n project(fullPath: $projectPath) {\\n id\\n mergeRequest(iid: $iid) {\\n id\\n userPermissions {\\n canMerge\\n }\\n mergeabilityChecks {\\n identifier\\n status\\n }\\n }\\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[\"mergeChecks\"] = oneQuery(doc, \"mergeChecks\");\n \n","import {\n relativePathToAbsolute,\n isAbsolute,\n isRootRelative,\n isBlobUrl,\n} from '~/lib/utils/url_utility';\nimport { commitActionTypes } from '../constants';\n\nexport const dataStructure = () => ({\n id: '',\n // Key will contain a mixture of ID and path\n // it can also contain a prefix `pending-` for files opened in review mode\n key: '',\n type: '',\n name: '',\n path: '',\n tempFile: false,\n tree: [],\n loading: false,\n opened: false,\n active: false,\n changed: false,\n staged: false,\n lastCommitSha: '',\n rawPath: '',\n raw: '',\n content: '',\n size: 0,\n parentPath: null,\n lastOpenedAt: 0,\n mrChange: null,\n deleted: false,\n prevPath: undefined,\n mimeType: '',\n});\n\nexport const decorateData = (entity) => {\n const {\n id,\n type,\n name,\n path,\n content = '',\n tempFile = false,\n active = false,\n opened = false,\n changed = false,\n rawPath = '',\n file_lock,\n parentPath = '',\n mimeType = '',\n } = entity;\n\n return Object.assign(dataStructure(), {\n id,\n key: `${name}-${type}-${id}`,\n type,\n name,\n path,\n tempFile,\n opened,\n active,\n changed,\n content,\n rawPath,\n file_lock,\n parentPath,\n mimeType,\n });\n};\n\nexport const setPageTitle = (title) => {\n document.title = title;\n};\n\nexport const setPageTitleForFile = (state, file) => {\n const title = [file.path, state.currentBranchId, state.currentProjectId, 'GitLab'].join(' · ');\n setPageTitle(title);\n};\n\nexport const commitActionForFile = (file) => {\n if (file.prevPath) {\n return commitActionTypes.move;\n }\n if (file.deleted) {\n return commitActionTypes.delete;\n }\n if (file.tempFile) {\n return commitActionTypes.create;\n }\n\n return commitActionTypes.update;\n};\n\nexport const getCommitFiles = (stagedFiles) =>\n stagedFiles.reduce((acc, file) => {\n if (file.type === 'tree') return acc;\n\n return acc.concat({\n ...file,\n });\n }, []);\n\nexport const createCommitPayload = ({\n branch,\n getters,\n newBranch,\n state,\n rootState,\n rootGetters,\n}) => ({\n branch,\n commit_message: state.commitMessage || getters.preBuiltCommitMessage,\n actions: getCommitFiles(rootState.stagedFiles).map((f) => {\n const isBlob = isBlobUrl(f.rawPath);\n const content = isBlob ? btoa(f.content) : f.content;\n\n return {\n action: commitActionForFile(f),\n file_path: f.path,\n previous_path: f.prevPath || undefined,\n content: content || undefined,\n encoding: isBlob ? 'base64' : 'text',\n last_commit_id: newBranch || f.deleted || f.prevPath ? undefined : f.lastCommitSha,\n };\n }),\n start_sha: newBranch ? rootGetters.lastCommit.id : undefined,\n});\n\nexport const createNewMergeRequestUrl = (projectUrl, source, target) =>\n `${projectUrl}/-/merge_requests/new?merge_request[source_branch]=${source}&merge_request[target_branch]=${target}&nav_source=webide`;\n\nconst sortTreesByTypeAndName = (a, b) => {\n if (a.type === 'tree' && b.type === 'blob') {\n return -1;\n }\n if (a.type === 'blob' && b.type === 'tree') {\n return 1;\n }\n if (a.name < b.name) return -1;\n if (a.name > b.name) return 1;\n return 0;\n};\n\nexport const sortTree = (sortedTree) =>\n sortedTree\n .map((entity) =>\n Object.assign(entity, {\n tree: entity.tree.length ? sortTree(entity.tree) : [],\n }),\n )\n .sort(sortTreesByTypeAndName);\n\nexport const filePathMatches = (filePath, path) => filePath.indexOf(`${path}/`) === 0;\n\nexport const getChangesCountForFiles = (files, path) =>\n files.filter((f) => filePathMatches(f.path, path)).length;\n\nexport const mergeTrees = (fromTree, toTree) => {\n if (!fromTree || !fromTree.length) {\n return toTree;\n }\n\n const recurseTree = (n, t) => {\n if (!n) {\n return t;\n }\n const existingTreeNode = t.find((el) => el.path === n.path);\n\n if (existingTreeNode && n.tree.length > 0) {\n existingTreeNode.opened = true;\n recurseTree(n.tree[0], existingTreeNode.tree);\n } else if (!existingTreeNode) {\n const sorted = sortTree(t.concat(n));\n t.splice(0, t.length + 1, ...sorted);\n }\n return t;\n };\n\n for (let i = 0, l = fromTree.length; i < l; i += 1) {\n recurseTree(fromTree[i], toTree);\n }\n\n return toTree;\n};\n\n// eslint-disable-next-line max-params\nexport const swapInStateArray = (state, arr, key, entryPath) =>\n Object.assign(state, {\n [arr]: state[arr].map((f) => (f.key === key ? state.entries[entryPath] : f)),\n });\n\nexport const getEntryOrRoot = (state, path) =>\n path ? state.entries[path] : state.trees[`${state.currentProjectId}/${state.currentBranchId}`];\n\n// eslint-disable-next-line max-params\nexport const swapInParentTreeWithSorting = (state, oldKey, newPath, parentPath) => {\n if (!newPath) {\n return;\n }\n\n const parent = getEntryOrRoot(state, parentPath);\n\n if (parent) {\n const tree = parent.tree\n // filter out old entry && new entry\n .filter(({ key, path }) => key !== oldKey && path !== newPath)\n // concat new entry\n .concat(state.entries[newPath]);\n\n parent.tree = sortTree(tree);\n }\n};\n\nexport const removeFromParentTree = (state, oldKey, parentPath) => {\n const parent = getEntryOrRoot(state, parentPath);\n\n if (parent) {\n parent.tree = sortTree(parent.tree.filter(({ key }) => key !== oldKey));\n }\n};\n\nexport const updateFileCollections = (state, key, entryPath) => {\n ['openFiles', 'changedFiles', 'stagedFiles'].forEach((fileCollection) => {\n swapInStateArray(state, fileCollection, key, entryPath);\n });\n};\n\nexport const cleanTrailingSlash = (path) => path.replace(/\\/$/, '');\n\nexport const pathsAreEqual = (a, b) => {\n const cleanA = a ? cleanTrailingSlash(a) : '';\n const cleanB = b ? cleanTrailingSlash(b) : '';\n\n return cleanA === cleanB;\n};\n\nexport function extractMarkdownImagesFromEntries(mdFile, entries) {\n /**\n * Regex to identify an image tag in markdown, like:\n *\n * \n * \n * \n *\n */\n const reMdImage = /!\\[([^\\]]*)\\]\\((.*?)(?:(?=\"|\\))\"([^\"]*)\")?\\)/gi;\n const prefix = 'gl_md_img_';\n const images = {};\n\n let content = mdFile.content || mdFile.raw;\n let i = 0;\n\n // eslint-disable-next-line max-params\n content = content.replace(reMdImage, (_, alt, path, title) => {\n const imagePath = (isRootRelative(path) ? path : relativePathToAbsolute(path, mdFile.path))\n .substr(1)\n .trim();\n\n const imageContent = entries[imagePath]?.content || entries[imagePath]?.raw;\n const imageRawPath = entries[imagePath]?.rawPath;\n\n if (!isAbsolute(path) && imageContent) {\n const src = imageRawPath;\n i += 1;\n const key = `{{${prefix}${i}}}`;\n images[key] = { alt, src, title };\n return key;\n }\n return title ? `` : ``;\n });\n\n return { content, images };\n}\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"value issuable-show-labels js-value\",class:{\n 'has-labels': _vm.selectedLabels.length,\n },attrs:{\"data-testid\":\"value-wrapper\"}},[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.labelsList},on:{\"click\":_vm.handleCollapsedClick}},[_c('gl-icon',{attrs:{\"name\":\"labels\"}}),_vm._v(\" \"),_c('span',{staticClass:\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(_vm._s(_vm.selectedLabels.length))])],1),_vm._v(\" \"),(!_vm.selectedLabels.length)?_c('span',{staticClass:\"hide-collapsed gl-text-subtle\",attrs:{\"data-testid\":\"empty-placeholder\"}},[_vm._t(\"default\")],2):_vm._l((_vm.sortedSelectedLabels),function(label){return _c('gl-label',{key:label.id,staticClass:\"hide-collapsed\",attrs:{\"data-testid\":\"selected-label-content\",\"data-qa-label-name\":label.title,\"title\":label.title,\"description\":label.description,\"background-color\":label.color,\"target\":_vm.labelFilterUrl(label),\"scoped\":_vm.scopedLabel(label),\"show-close-button\":_vm.showCloseButton(label),\"disabled\":_vm.disableLabels,\"tooltip-placement\":\"top\"},on:{\"close\":function($event){return _vm.removeLabel(label.id)}}})})],2)\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!./dropdown_value.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!./dropdown_value.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlLabel, GlTooltipDirective } from '@gitlab/ui';\nimport { sortBy } from 'lodash';\nimport { isScopedLabel } from '~/lib/utils/common_utils';\nimport { s__, sprintf } from '~/locale';\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlIcon,\n GlLabel,\n },\n inject: ['allowScopedLabels'],\n props: {\n disableLabels: {\n type: Boolean,\n required: false,\n default: false,\n },\n selectedLabels: {\n type: Array,\n required: true,\n },\n allowLabelRemove: {\n type: Boolean,\n required: true,\n },\n supportsLockOnMerge: {\n type: Boolean,\n required: false,\n default: false,\n },\n labelsFilterBasePath: {\n type: String,\n required: true,\n },\n labelsFilterParam: {\n type: String,\n required: true,\n },\n },\n computed: {\n sortedSelectedLabels() {\n return sortBy(this.selectedLabels, (label) => (isScopedLabel(label) ? 0 : 1));\n },\n labelsList() {\n const labelsString = this.selectedLabels.length\n ? this.selectedLabels\n .slice(0, 5)\n .map((label) => label.title)\n .join(', ')\n : s__('LabelSelect|Labels');\n\n if (this.selectedLabels.length > 5) {\n return sprintf(s__('LabelSelect|%{labelsString}, and %{remainingLabelCount} more'), {\n labelsString,\n remainingLabelCount: this.selectedLabels.length - 5,\n });\n }\n\n return labelsString;\n },\n },\n methods: {\n labelFilterUrl(label) {\n return `${this.labelsFilterBasePath}?${this.labelsFilterParam}[]=${encodeURIComponent(\n label.title,\n )}`;\n },\n scopedLabel(label) {\n return this.allowScopedLabels && isScopedLabel(label);\n },\n isLabelLocked(label) {\n return label.lockOnMerge && this.supportsLockOnMerge;\n },\n showCloseButton(label) {\n return this.allowLabelRemove && !this.isLabelLocked(label);\n },\n removeLabel(labelId) {\n this.$emit('onLabelRemove', labelId);\n },\n handleCollapsedClick() {\n this.$emit('onCollapsedValueClick');\n },\n },\n};\n</script>\n\n<template>\n <div\n :class=\"{\n 'has-labels': selectedLabels.length,\n }\"\n class=\"value issuable-show-labels js-value\"\n data-testid=\"value-wrapper\"\n >\n <div\n v-gl-tooltip.left.viewport\n :title=\"labelsList\"\n class=\"sidebar-collapsed-icon\"\n @click=\"handleCollapsedClick\"\n >\n <gl-icon name=\"labels\" />\n <span class=\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\">{{\n selectedLabels.length\n }}</span>\n </div>\n <span\n v-if=\"!selectedLabels.length\"\n class=\"hide-collapsed gl-text-subtle\"\n data-testid=\"empty-placeholder\"\n >\n <slot></slot>\n </span>\n <template v-else>\n <gl-label\n v-for=\"label in sortedSelectedLabels\"\n :key=\"label.id\"\n class=\"hide-collapsed\"\n data-testid=\"selected-label-content\"\n :data-qa-label-name=\"label.title\"\n :title=\"label.title\"\n :description=\"label.description\"\n :background-color=\"label.color\"\n :target=\"labelFilterUrl(label)\"\n :scoped=\"scopedLabel(label)\"\n :show-close-button=\"showCloseButton(label)\"\n :disabled=\"disableLabels\"\n tooltip-placement=\"top\"\n @close=\"removeLabel(label.id)\"\n />\n </template>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./dropdown_value.vue?vue&type=template&id=029da1af\"\nimport script from \"./dropdown_value.vue?vue&type=script&lang=js\"\nexport * from \"./dropdown_value.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 { __, s__ } from '~/locale';\nimport { STATUS_LABELS } from './constants';\n\nexport const getStatusLabel = (status) => STATUS_LABELS[status] ?? s__('IncidentManagement|None');\n\nexport const todoLabel = (hasTodo) => {\n return hasTodo ? __('Mark as done') : __('Add a to-do item');\n};\n\nexport const updateGlobalTodoCount = (delta) => {\n // Optimistic update of user counts\n document.dispatchEvent(new CustomEvent('todo:toggle', { detail: { delta } }));\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueEscalationPolicy\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"escalationPolicy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EscalationPolicyFragment\"},\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":294}};\n doc.loc.source = {\"body\":\"#import \\\"./escalation_policy.fragment.graphql\\\"\\n\\nquery issueEscalationPolicy($fullPath: ID!, $iid: String!) {\\n workspace: project(fullPath: $fullPath) {\\n id\\n issuable: issue(iid: $iid) {\\n id\\n attribute: escalationPolicy {\\n ...EscalationPolicyFragment\\n }\\n }\\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(\"./escalation_policy.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[\"issueEscalationPolicy\"] = oneQuery(doc, \"issueEscalationPolicy\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalRulesApprovalStateUpdatedEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestApprovalStateUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestApprovalRule\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":295}};\n doc.loc.source = {\"body\":\"#import \\\"ee/graphql_shared/fragments/merge_request.approval_rule.fragment.graphql\\\"\\n\\nsubscription approvalRulesApprovalStateUpdatedEE($issuableId: IssuableID!) {\\n mergeRequestApprovalStateUpdated(issuableId: $issuableId) {\\n ... on MergeRequest {\\n ...MergeRequestApprovalRule\\n }\\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/graphql_shared/fragments/merge_request.approval_rule.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[\"approvalRulesApprovalStateUpdatedEE\"] = oneQuery(doc, \"approvalRulesApprovalStateUpdatedEE\");\n \n","// JS-YAML's default schema for `load` function.\n// It is not described in the YAML specification.\n//\n// This schema is based on JS-YAML's default safe schema and includes\n// JavaScript-specific types: !!js/undefined, !!js/regexp and !!js/function.\n//\n// Also this schema is used as default base schema at `Schema.create` function.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = Schema.DEFAULT = new Schema({\n include: [\n require('./default_safe')\n ],\n explicit: [\n require('../type/js/undefined'),\n require('../type/js/regexp'),\n require('../type/js/function')\n ]\n});\n","import * as Sentry from '~/sentry/sentry_browser_wrapper';\n\nexport const reportToSentry = (component, failureType) => {\n Sentry.captureException(failureType, {\n tags: {\n component,\n },\n });\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-shrink-0\",attrs:{\"icon\":\"lock\",\"title\":_vm.title,\"aria-label\":_vm.title,\"variant\":\"warning\",\"data-testid\":\"locked-badge\"}})\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!./locked_badge.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!./locked_badge.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlTooltipDirective } from '@gitlab/ui';\nimport { issuableTypeText } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n components: {\n GlBadge,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n issuableType: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n title() {\n return sprintf(\n __('The discussion in this %{issuable} is locked. Only project members can comment.'),\n {\n issuable: issuableTypeText[this.issuableType],\n },\n );\n },\n },\n};\n</script>\n\n<template>\n <gl-badge\n v-gl-tooltip\n icon=\"lock\"\n :title=\"title\"\n :aria-label=\"title\"\n variant=\"warning\"\n data-testid=\"locked-badge\"\n class=\"gl-shrink-0\"\n />\n</template>\n","import { render, staticRenderFns } from \"./locked_badge.vue?vue&type=template&id=42bccf50\"\nimport script from \"./locked_badge.vue?vue&type=script&lang=js\"\nexport * from \"./locked_badge.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--13-0!../../../../../../node_modules/babel-loader/lib/index.js??ref--13-1!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./collapsed_assignee.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!./collapsed_assignee.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton } from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport AssigneeAvatar from './assignee_avatar.vue';\nimport UserNameWithStatus from './user_name_with_status.vue';\n\nexport default {\n components: {\n GlButton,\n AssigneeAvatar,\n UserNameWithStatus,\n },\n props: {\n user: {\n type: Object,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n },\n computed: {\n availability() {\n return this.user?.availability || '';\n },\n },\n};\n</script>\n<template>\n <gl-button variant=\"link\" class=\"!gl-bg-transparent\">\n <assignee-avatar :user=\"user\" :img-size=\"24\" :issuable-type=\"issuableType\" />\n <user-name-with-status\n :name=\"user.name\"\n :availability=\"availability\"\n container-classes=\"author\"\n />\n </gl-button>\n</template>\n","import { render, staticRenderFns } from \"./collapsed_assignee.vue?vue&type=template&id=e2ee50c4\"\nimport script from \"./collapsed_assignee.vue?vue&type=script&lang=js\"\nexport * from \"./collapsed_assignee.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-button',{staticClass:\"!gl-bg-transparent\",attrs:{\"variant\":\"link\"}},[_c('assignee-avatar',{attrs:{\"user\":_vm.user,\"img-size\":24,\"issuable-type\":_vm.issuableType}}),_vm._v(\" \"),_c('user-name-with-status',{attrs:{\"name\":_vm.user.name,\"availability\":_vm.availability,\"container-classes\":\"author\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\nimport { isUserBusy } from '~/set_status_modal/utils';\nimport CollapsedAssignee from './collapsed_assignee.vue';\n\nconst DEFAULT_MAX_COUNTER = 99;\nconst DEFAULT_RENDER_COUNT = 5;\n\nconst generateCollapsedAssigneeTooltip = ({ renderUsers, allUsers, tooltipTitleMergeStatus }) => {\n const names = renderUsers.map(({ name, availability }) => {\n if (availability && isUserBusy(availability)) {\n return sprintf(__('%{name} (Busy)'), { name });\n }\n return name;\n });\n\n if (!allUsers.length) {\n return __('Assignees');\n }\n if (allUsers.length > names.length) {\n names.push(sprintf(__('+ %{amount} more'), { amount: allUsers.length - names.length }));\n }\n const text = names.join(', ');\n return tooltipTitleMergeStatus ? `${text} (${tooltipTitleMergeStatus})` : text;\n};\n\nexport default {\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlButton,\n CollapsedAssignee,\n GlIcon,\n },\n props: {\n users: {\n type: Array,\n required: true,\n },\n issuableType: {\n type: String,\n required: false,\n default: TYPE_ISSUE,\n },\n },\n computed: {\n isMergeRequest() {\n return this.issuableType === TYPE_MERGE_REQUEST;\n },\n hasNoUsers() {\n return !this.users.length;\n },\n hasMoreThanOneAssignee() {\n return this.users.length > 1;\n },\n hasMoreThanTwoAssignees() {\n return this.users.length > 2;\n },\n allAssigneesCanMerge() {\n return this.users.every((user) => user.can_merge || user.mergeRequestInteraction?.canMerge);\n },\n sidebarAvatarCounter() {\n if (this.users.length > DEFAULT_MAX_COUNTER) {\n return `${DEFAULT_MAX_COUNTER}+`;\n }\n\n return `+${this.users.length - 1}`;\n },\n collapsedUsers() {\n const collapsedLength = this.hasMoreThanTwoAssignees ? 1 : this.users.length;\n\n return this.users.slice(0, collapsedLength);\n },\n tooltipTitleMergeStatus() {\n if (!this.isMergeRequest) {\n return '';\n }\n\n const mergeLength = this.users.filter(\n (u) => u.can_merge || u.mergeRequestInteraction?.canMerge,\n ).length;\n\n if (mergeLength === this.users.length) {\n return '';\n }\n if (mergeLength > 0) {\n return sprintf(__('%{mergeLength}/%{usersLength} can merge'), {\n mergeLength,\n usersLength: this.users.length,\n });\n }\n\n return this.users.length === 1 ? __('cannot merge') : __('no one can merge');\n },\n tooltipTitle() {\n const maxRender = Math.min(DEFAULT_RENDER_COUNT, this.users.length);\n const renderUsers = this.users.slice(0, maxRender);\n return generateCollapsedAssigneeTooltip({\n renderUsers,\n allUsers: this.users,\n tooltipTitleMergeStatus: this.tooltipTitleMergeStatus,\n });\n },\n\n tooltipOptions() {\n return { container: 'body', placement: 'left', boundary: 'viewport' };\n },\n },\n};\n</script>\n\n<template>\n <div\n v-gl-tooltip=\"tooltipOptions\"\n :class=\"{ 'multiple-users gl-relative': hasMoreThanOneAssignee }\"\n :title=\"tooltipTitle\"\n class=\"sidebar-collapsed-icon sidebar-collapsed-user\"\n >\n <gl-icon v-if=\"hasNoUsers\" name=\"user\" :aria-label=\"__('None')\" />\n <collapsed-assignee\n v-for=\"user in collapsedUsers\"\n :key=\"user.id\"\n :user=\"user\"\n :issuable-type=\"issuableType\"\n />\n <gl-button v-if=\"hasMoreThanTwoAssignees\" variant=\"link\" class=\"!gl-bg-transparent\">\n <span class=\"avatar-counter sidebar-avatar-counter gl-flex gl-items-center gl-pl-3\">\n {{ sidebarAvatarCounter }}\n </span>\n <gl-icon\n v-if=\"isMergeRequest && !allAssigneesCanMerge\"\n name=\"warning-solid\"\n aria-hidden=\"true\"\n class=\"merge-icon\"\n />\n </gl-button>\n </div>\n</template>\n","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!./collapsed_assignee_list.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!./collapsed_assignee_list.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./collapsed_assignee_list.vue?vue&type=template&id=483c5258\"\nimport script from \"./collapsed_assignee_list.vue?vue&type=script&lang=js\"\nexport * from \"./collapsed_assignee_list.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('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.tooltipOptions),expression:\"tooltipOptions\"}],staticClass:\"sidebar-collapsed-icon sidebar-collapsed-user\",class:{ 'multiple-users gl-relative': _vm.hasMoreThanOneAssignee },attrs:{\"title\":_vm.tooltipTitle}},[(_vm.hasNoUsers)?_c('gl-icon',{attrs:{\"name\":\"user\",\"aria-label\":_vm.__('None')}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.collapsedUsers),function(user){return _c('collapsed-assignee',{key:user.id,attrs:{\"user\":user,\"issuable-type\":_vm.issuableType}})}),_vm._v(\" \"),(_vm.hasMoreThanTwoAssignees)?_c('gl-button',{staticClass:\"!gl-bg-transparent\",attrs:{\"variant\":\"link\"}},[_c('span',{staticClass:\"avatar-counter sidebar-avatar-counter gl-flex gl-items-center gl-pl-3\"},[_vm._v(\"\\n \"+_vm._s(_vm.sidebarAvatarCounter)+\"\\n \")]),_vm._v(\" \"),(_vm.isMergeRequest && !_vm.allAssigneesCanMerge)?_c('gl-icon',{staticClass:\"merge-icon\",attrs:{\"name\":\"warning-solid\",\"aria-hidden\":\"true\"}}):_vm._e()],1):_vm._e()],2)\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!./copy_email_to_clipboard.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!./copy_email_to_clipboard.vue?vue&type=script&lang=js\"","<script>\nimport CopyableField from './copyable_field.vue';\n\nexport default {\n components: {\n CopyableField,\n },\n props: {\n issueEmailAddress: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <copyable-field\n data-testid=\"copy-forward-email\"\n :name=\"s__('RightSidebar|Issue email')\"\n :clipboard-tooltip-text=\"s__('RightSidebar|Copy email address')\"\n :value=\"issueEmailAddress\"\n />\n</template>\n","import { render, staticRenderFns } from \"./copy_email_to_clipboard.vue?vue&type=template&id=7ed445fa\"\nimport script from \"./copy_email_to_clipboard.vue?vue&type=script&lang=js\"\nexport * from \"./copy_email_to_clipboard.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('copyable-field',{attrs:{\"data-testid\":\"copy-forward-email\",\"name\":_vm.s__('RightSidebar|Issue email'),\"clipboard-tooltip-text\":_vm.s__('RightSidebar|Copy email address'),\"value\":_vm.issueEmailAddress}})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport {\n INCIDENTS_I18N as i18n,\n STATUS_ACKNOWLEDGED,\n STATUS_TRIGGERED,\n STATUS_RESOLVED,\n} from '../../constants';\nimport { getStatusLabel } from '../../utils';\n\nconst STATUS_LIST = [STATUS_TRIGGERED, STATUS_ACKNOWLEDGED, STATUS_RESOLVED];\n\nexport default {\n i18n,\n STATUS_LIST,\n components: {\n GlCollapsibleListbox,\n },\n props: {\n value: {\n type: String,\n required: false,\n default: null,\n validator(value) {\n return [...STATUS_LIST, null].includes(value);\n },\n },\n headerText: {\n type: String,\n required: false,\n default: null,\n },\n statusSubtexts: {\n type: Object,\n required: false,\n default() {\n return {};\n },\n },\n },\n data() {\n return {\n selected: this.value,\n };\n },\n computed: {\n statusDropdownOptions() {\n return this.$options.STATUS_LIST.map((status) => ({\n text: this.getStatusLabel(status),\n subtext: this.statusSubtexts[status],\n value: status,\n }));\n },\n currentStatusLabel() {\n return this.getStatusLabel(this.value);\n },\n },\n\n methods: {\n show() {\n this.$refs.dropdown.open();\n },\n hide() {\n this.$refs.dropdown.close();\n },\n getStatusLabel,\n },\n};\n</script>\n\n<template>\n <gl-collapsible-listbox\n ref=\"dropdown\"\n v-model=\"selected\"\n :header-text=\"headerText\"\n block\n :toggle-text=\"currentStatusLabel\"\n :items=\"statusDropdownOptions\"\n toggle-class=\"dropdown-menu-toggle gl-mb-2\"\n data-testid=\"escalation-status-dropdown\"\n @select=\"$emit('input', selected)\"\n >\n <template #list-item=\"{ item }\">\n <span class=\"gl-block\">{{ item.text }}</span>\n <span v-if=\"item.subtext\" class=\"gl-text-sm gl-text-subtle\">{{ item.subtext }}</span>\n </template>\n </gl-collapsible-listbox>\n</template>\n","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!./escalation_status.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!./escalation_status.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./escalation_status.vue?vue&type=template&id=2b732154\"\nimport script from \"./escalation_status.vue?vue&type=script&lang=js\"\nexport * from \"./escalation_status.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-collapsible-listbox',{ref:\"dropdown\",attrs:{\"header-text\":_vm.headerText,\"block\":\"\",\"toggle-text\":_vm.currentStatusLabel,\"items\":_vm.statusDropdownOptions,\"toggle-class\":\"dropdown-menu-toggle gl-mb-2\",\"data-testid\":\"escalation-status-dropdown\"},on:{\"select\":function($event){return _vm.$emit('input', _vm.selected)}},scopedSlots:_vm._u([{key:\"list-item\",fn:function({ item }){return [_c('span',{staticClass:\"gl-block\"},[_vm._v(_vm._s(item.text))]),_vm._v(\" \"),(item.subtext)?_c('span',{staticClass:\"gl-text-sm gl-text-subtle\"},[_vm._v(_vm._s(item.subtext))]):_vm._e()]}}]),model:{value:(_vm.selected),callback:function ($$v) {_vm.selected=$$v},expression:\"selected\"}})\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!./escalation_status.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!./escalation_status.vue?vue&type=script&lang=js\"","<script>\nimport EscalationStatus from '~/sidebar/components/incidents/escalation_status.vue';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport { i18nStatusHeaderText, STATUS_SUBTEXTS } from '../../constants';\n\nexport default {\n i18n: i18nStatusHeaderText,\n\n components: {\n EscalationStatus,\n },\n mixins: [glFeatureFlagMixin()],\n props: {\n // eslint-disable-next-line @gitlab/vue-require-required-key\n value: EscalationStatus.props.value,\n },\n computed: {\n headerText() {\n return this.escalationPoliciesEnabled ? this.$options.i18n : '';\n },\n statusSubtexts() {\n return this.escalationPoliciesEnabled ? STATUS_SUBTEXTS : {};\n },\n\n escalationPoliciesEnabled() {\n return this.glFeatures.escalationPolicies;\n },\n },\n methods: {\n show() {\n this.$refs.escalationStatus.show();\n },\n // Pass through to wrapped component\n hide() {\n this.$refs.escalationStatus.hide();\n },\n },\n};\n</script>\n\n<template>\n <escalation-status\n ref=\"escalationStatus\"\n :header-text=\"headerText\"\n :status-subtexts=\"statusSubtexts\"\n :value=\"value\"\n v-bind=\"$attrs\"\n v-on=\"$listeners\"\n />\n</template>\n","import { render, staticRenderFns } from \"./escalation_status.vue?vue&type=template&id=69cc828d\"\nimport script from \"./escalation_status.vue?vue&type=script&lang=js\"\nexport * from \"./escalation_status.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('escalation-status',_vm._g(_vm._b({ref:\"escalationStatus\",attrs:{\"header-text\":_vm.headerText,\"status-subtexts\":_vm.statusSubtexts,\"value\":_vm.value}},'escalation-status',_vm.$attrs,false),_vm.$listeners))\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!./sidebar_escalation_status.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!./sidebar_escalation_status.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { logError } from '~/lib/logger';\nimport EscalationStatus from 'ee_else_ce/sidebar/components/incidents/escalation_status.vue';\nimport { INCIDENTS_I18N as i18n } from '../../constants';\nimport { escalationStatusQuery, escalationStatusMutation } from '../../queries/constants';\nimport { getStatusLabel } from '../../utils';\nimport SidebarEditableItem from '../sidebar_editable_item.vue';\n\nexport default {\n i18n,\n components: {\n EscalationStatus,\n SidebarEditableItem,\n GlIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n iid: {\n type: String,\n required: true,\n },\n projectPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n status: null,\n isUpdating: false,\n };\n },\n apollo: {\n status: {\n query() {\n return escalationStatusQuery;\n },\n variables() {\n return {\n fullPath: this.projectPath,\n iid: this.iid,\n };\n },\n update(data) {\n return data.workspace?.issuable?.escalationStatus;\n },\n error(error) {\n const message = this.$options.i18n.fetchError;\n createAlert({ message });\n logError(message, error);\n },\n },\n },\n computed: {\n isLoading() {\n return this.$apollo.queries.status.loading;\n },\n currentStatusLabel() {\n return getStatusLabel(this.status);\n },\n tooltipText() {\n return `${this.$options.i18n.title}: ${this.currentStatusLabel}`;\n },\n },\n methods: {\n updateStatus(status) {\n this.isUpdating = true;\n this.closeSidebar();\n return this.$apollo\n .mutate({\n mutation: escalationStatusMutation,\n variables: {\n status,\n iid: this.iid,\n projectPath: this.projectPath,\n },\n })\n .then(({ data: { issueSetEscalationStatus } }) => {\n this.status = issueSetEscalationStatus.issue.escalationStatus;\n })\n .catch((error) => {\n const message = this.$options.i18n.updateError;\n createAlert({ message });\n logError(message, error);\n })\n .finally(() => {\n this.isUpdating = false;\n });\n },\n closeSidebar() {\n this.close();\n this.$refs.editable.collapse();\n },\n open() {\n this.$refs.escalationStatus.show();\n },\n close() {\n this.$refs.escalationStatus.hide();\n },\n },\n};\n</script>\n\n<template>\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"$options.i18n.title\"\n :initial-loading=\"isLoading\"\n :loading=\"isUpdating\"\n @open=\"open\"\n @close=\"close\"\n >\n <template #default>\n <escalation-status ref=\"escalationStatus\" :value=\"status\" @input=\"updateStatus\" />\n </template>\n <template #collapsed>\n <div\n v-gl-tooltip.viewport.left=\"tooltipText\"\n class=\"sidebar-collapsed-icon\"\n data-testid=\"status-icon\"\n >\n <gl-icon name=\"status\" :size=\"16\" />\n </div>\n <span class=\"hide-collapsed gl-text-subtle\">{{ currentStatusLabel }}</span>\n </template>\n </sidebar-editable-item>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_escalation_status.vue?vue&type=template&id=62aac7a7\"\nimport script from \"./sidebar_escalation_status.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_escalation_status.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('sidebar-editable-item',{ref:\"editable\",attrs:{\"title\":_vm.$options.i18n.title,\"initial-loading\":_vm.isLoading,\"loading\":_vm.isUpdating},on:{\"open\":_vm.open,\"close\":_vm.close},scopedSlots:_vm._u([{key:\"default\",fn:function(){return [_c('escalation-status',{ref:\"escalationStatus\",attrs:{\"value\":_vm.status},on:{\"input\":_vm.updateStatus}})]},proxy:true},{key:\"collapsed\",fn:function(){return [_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",value:(_vm.tooltipText),expression:\"tooltipText\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"data-testid\":\"status-icon\"}},[_c('gl-icon',{attrs:{\"name\":\"status\",\"size\":16}})],1),_vm._v(\" \"),_c('span',{staticClass:\"hide-collapsed gl-text-subtle\"},[_vm._v(_vm._s(_vm.currentStatusLabel))])]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlDropdownItem } from '@gitlab/ui';\nimport { TYPENAME_MILESTONE } from '~/graphql_shared/constants';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport {\n TYPE_ISSUE,\n TYPE_MERGE_REQUEST,\n WORKSPACE_GROUP,\n WORKSPACE_PROJECT,\n} from '~/issues/constants';\nimport { __ } from '~/locale';\nimport { IssuableAttributeType } from '../../constants';\nimport SidebarDropdown from '../sidebar_dropdown.vue';\n\nconst noMilestone = {\n id: 0,\n title: __('No milestone'),\n};\n\nconst placeholderMilestone = {\n id: -1,\n title: __('Select milestone'),\n};\n\nexport default {\n issuableAttribute: IssuableAttributeType.Milestone,\n components: {\n GlDropdownItem,\n SidebarDropdown,\n },\n props: {\n attrWorkspacePath: {\n required: true,\n type: String,\n },\n canAdminMilestone: {\n type: Boolean,\n required: false,\n default: false,\n },\n issuableType: {\n type: String,\n required: true,\n validator(value) {\n return [TYPE_ISSUE, TYPE_MERGE_REQUEST].includes(value);\n },\n },\n inputName: {\n type: String,\n required: false,\n default: 'update[milestone_id]',\n },\n milestoneId: {\n type: String,\n required: false,\n default: '',\n },\n milestoneTitle: {\n type: String,\n required: false,\n default: '',\n },\n projectMilestonesPath: {\n type: String,\n required: false,\n default: '',\n },\n workspaceType: {\n type: String,\n required: true,\n validator(value) {\n return [WORKSPACE_GROUP, WORKSPACE_PROJECT].includes(value);\n },\n },\n },\n data() {\n return {\n milestone: this.milestoneId\n ? {\n id: convertToGraphQLId(TYPENAME_MILESTONE, this.milestoneId),\n title: this.milestoneTitle,\n }\n : placeholderMilestone,\n };\n },\n computed: {\n footerItemText() {\n return this.canAdminMilestone ? __('Manage milestones') : __('View milestones');\n },\n value() {\n return this.milestone.id === placeholderMilestone.id\n ? undefined\n : getIdFromGraphQLId(this.milestone.id);\n },\n },\n methods: {\n handleChange(milestone) {\n this.milestone = milestone.id === null ? noMilestone : milestone;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <input type=\"hidden\" :name=\"inputName\" :value=\"value\" />\n <sidebar-dropdown\n :attr-workspace-path=\"attrWorkspacePath\"\n :current-attribute=\"milestone\"\n :issuable-attribute=\"$options.issuableAttribute\"\n :issuable-type=\"issuableType\"\n :workspace-type=\"workspaceType\"\n data-testid=\"issuable-milestone-dropdown\"\n @change=\"handleChange\"\n >\n <template #footer>\n <gl-dropdown-item v-if=\"projectMilestonesPath\" :href=\"projectMilestonesPath\">\n {{ footerItemText }}\n </gl-dropdown-item>\n </template>\n </sidebar-dropdown>\n </div>\n</template>\n","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!./milestone_dropdown.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!./milestone_dropdown.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./milestone_dropdown.vue?vue&type=template&id=d7d922a8\"\nimport script from \"./milestone_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./milestone_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('input',{attrs:{\"type\":\"hidden\",\"name\":_vm.inputName},domProps:{\"value\":_vm.value}}),_vm._v(\" \"),_c('sidebar-dropdown',{attrs:{\"attr-workspace-path\":_vm.attrWorkspacePath,\"current-attribute\":_vm.milestone,\"issuable-attribute\":_vm.$options.issuableAttribute,\"issuable-type\":_vm.issuableType,\"workspace-type\":_vm.workspaceType,\"data-testid\":\"issuable-milestone-dropdown\"},on:{\"change\":_vm.handleChange},scopedSlots:_vm._u([{key:\"footer\",fn:function(){return [(_vm.projectMilestonesPath)?_c('gl-dropdown-item',{attrs:{\"href\":_vm.projectMilestonesPath}},[_vm._v(\"\\n \"+_vm._s(_vm.footerItemText)+\"\\n \")]):_vm._e()]},proxy:true}])})],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!./move_issues_button.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!./move_issues_button.vue?vue&type=script&lang=js\"","<script>\nimport { GlAlert } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { logError } from '~/lib/logger';\nimport { s__ } from '~/locale';\nimport {\n WORK_ITEM_TYPE_ENUM_ISSUE,\n WORK_ITEM_TYPE_ENUM_INCIDENT,\n WORK_ITEM_TYPE_ENUM_TASK,\n WORK_ITEM_TYPE_ENUM_TEST_CASE,\n} from '~/work_items/constants';\nimport issuableEventHub from '~/issues/list/eventhub';\nimport getIssuesQuery from 'ee_else_ce/issues/list/queries/get_issues.query.graphql';\nimport getIssuesCountQuery from 'ee_else_ce/issues/list/queries/get_issues_counts.query.graphql';\nimport moveIssueMutation from '../../queries/move_issue.mutation.graphql';\nimport IssuableMoveDropdown from './issuable_move_dropdown.vue';\n\nexport default {\n name: 'MoveIssuesButton',\n components: {\n IssuableMoveDropdown,\n GlAlert,\n },\n props: {\n projectFullPath: {\n type: String,\n required: true,\n },\n projectsFetchPath: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n selectedIssuables: [],\n moveInProgress: false,\n };\n },\n computed: {\n cannotMoveTasksWarningTitle() {\n if (this.tasksSelected && this.testCasesSelected) {\n return s__('Issues|Tasks and test cases can not be moved.');\n }\n\n if (this.testCasesSelected) {\n return s__('Issues|Test cases can not be moved.');\n }\n\n return s__('Issues|Tasks can not be moved.');\n },\n issuesSelected() {\n return this.selectedIssuables.some((item) => item.type === WORK_ITEM_TYPE_ENUM_ISSUE);\n },\n incidentsSelected() {\n return this.selectedIssuables.some((item) => item.type === WORK_ITEM_TYPE_ENUM_INCIDENT);\n },\n tasksSelected() {\n return this.selectedIssuables.some((item) => item.type === WORK_ITEM_TYPE_ENUM_TASK);\n },\n testCasesSelected() {\n return this.selectedIssuables.some((item) => item.type === WORK_ITEM_TYPE_ENUM_TEST_CASE);\n },\n },\n mounted() {\n issuableEventHub.$on('issuables:issuableChecked', this.handleIssuableChecked);\n },\n beforeDestroy() {\n issuableEventHub.$off('issuables:issuableChecked', this.handleIssuableChecked);\n },\n methods: {\n handleIssuableChecked(issuable, value) {\n if (value) {\n this.selectedIssuables.push(issuable);\n } else {\n const index = this.selectedIssuables.indexOf(issuable);\n if (index > -1) {\n this.selectedIssuables.splice(index, 1);\n }\n }\n },\n moveIssues(targetProject) {\n const iids = this.selectedIssuables.reduce((result, issueData) => {\n if (\n issueData.type === WORK_ITEM_TYPE_ENUM_ISSUE ||\n issueData.type === WORK_ITEM_TYPE_ENUM_INCIDENT\n ) {\n result.push(issueData.iid);\n }\n return result;\n }, []);\n\n if (iids.length === 0) {\n return;\n }\n\n this.moveInProgress = true;\n issuableEventHub.$emit('issuables:bulkMoveStarted');\n\n const promises = iids.map((id) => {\n return this.moveIssue(id, targetProject);\n });\n\n Promise.all(promises)\n .then((promisesResult) => {\n let foundError = false;\n\n for (const promiseResult of promisesResult) {\n if (promiseResult.data.issueMove?.errors?.length) {\n foundError = true;\n logError(\n `Error moving issue. Error message: ${promiseResult.data.issueMove.errors[0].message}`,\n );\n }\n }\n\n if (!foundError) {\n const client = this.$apollo.provider.defaultClient;\n client.refetchQueries({\n include: [getIssuesQuery, getIssuesCountQuery],\n });\n this.moveInProgress = false;\n this.selectedIssuables = [];\n issuableEventHub.$emit('issuables:bulkMoveEnded');\n } else {\n throw new Error();\n }\n })\n .catch(() => {\n this.moveInProgress = false;\n issuableEventHub.$emit('issuables:bulkMoveEnded');\n\n createAlert({\n message: s__(`Issues|There was an error while moving the issues.`),\n });\n });\n },\n moveIssue(issueIid, targetProject) {\n return this.$apollo.mutate({\n mutation: moveIssueMutation,\n variables: {\n moveIssueInput: {\n projectPath: this.projectFullPath,\n iid: issueIid,\n targetProjectPath: targetProject.full_path,\n },\n },\n });\n },\n },\n i18n: {\n dropdownButtonTitle: s__('Issues|Move selected'),\n },\n};\n</script>\n<template>\n <div>\n <issuable-move-dropdown\n :project-full-path=\"projectFullPath\"\n :projects-fetch-path=\"projectsFetchPath\"\n :move-in-progress=\"moveInProgress\"\n :disabled=\"!issuesSelected && !incidentsSelected\"\n :dropdown-header-title=\"$options.i18n.dropdownButtonTitle\"\n :dropdown-button-title=\"$options.i18n.dropdownButtonTitle\"\n @move-issuable=\"moveIssues\"\n />\n <gl-alert v-if=\"tasksSelected || testCasesSelected\" :dismissible=\"false\" variant=\"warning\">\n {{ cannotMoveTasksWarningTitle }}\n </gl-alert>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./move_issues_button.vue?vue&type=template&id=7ae2c75c\"\nimport script from \"./move_issues_button.vue?vue&type=script&lang=js\"\nexport * from \"./move_issues_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('issuable-move-dropdown',{attrs:{\"project-full-path\":_vm.projectFullPath,\"projects-fetch-path\":_vm.projectsFetchPath,\"move-in-progress\":_vm.moveInProgress,\"disabled\":!_vm.issuesSelected && !_vm.incidentsSelected,\"dropdown-header-title\":_vm.$options.i18n.dropdownButtonTitle,\"dropdown-button-title\":_vm.$options.i18n.dropdownButtonTitle},on:{\"move-issuable\":_vm.moveIssues}}),_vm._v(\" \"),(_vm.tasksSelected || _vm.testCasesSelected)?_c('gl-alert',{attrs:{\"dismissible\":false,\"variant\":\"warning\"}},[_vm._v(\"\\n \"+_vm._s(_vm.cannotMoveTasksWarningTitle)+\"\\n \")]):_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!./sidebar_reference_widget.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!./sidebar_reference_widget.vue?vue&type=script&lang=js\"","<script>\nimport { __ } from '~/locale';\nimport { referenceQueries } from '../../queries/constants';\nimport CopyableField from './copyable_field.vue';\n\nexport default {\n components: {\n CopyableField,\n },\n inject: ['fullPath', 'iid'],\n props: {\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n reference: '',\n };\n },\n apollo: {\n reference: {\n query() {\n return referenceQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: this.iid,\n };\n },\n update(data) {\n return data.workspace?.issuable?.reference || '';\n },\n error(error) {\n this.$emit('fetch-error', {\n message: __('An error occurred while fetching reference'),\n error,\n });\n },\n },\n },\n computed: {\n isLoading() {\n return this.$apollo.queries.reference.loading;\n },\n },\n};\n</script>\n\n<template>\n <copyable-field\n class=\"sub-block\"\n :is-loading=\"isLoading\"\n :name=\"__('Reference')\"\n :value=\"reference\"\n />\n</template>\n","import { render, staticRenderFns } from \"./sidebar_reference_widget.vue?vue&type=template&id=4906c7c8\"\nimport script from \"./sidebar_reference_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_reference_widget.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('copyable-field',{staticClass:\"sub-block\",attrs:{\"is-loading\":_vm.isLoading,\"name\":_vm.__('Reference'),\"value\":_vm.reference}})\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!./sidebar_reviewers_inputs.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!./sidebar_reviewers_inputs.vue?vue&type=script&lang=js\"","<script>\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { state } from './sidebar_reviewers.vue';\n\nexport default {\n data() {\n return state;\n },\n computed: {\n reviewers() {\n return this.issuable?.reviewers?.nodes || [];\n },\n },\n methods: {\n getIdFromGraphQLId,\n },\n};\n</script>\n\n<template>\n <div>\n <input\n v-for=\"reviewer in reviewers\"\n :key=\"reviewer.id\"\n type=\"hidden\"\n name=\"merge_request[reviewer_ids][]\"\n :value=\"getIdFromGraphQLId(reviewer.id)\"\n :data-avatar-url=\"reviewer.avatarUrl\"\n :data-name=\"reviewer.name\"\n :data-username=\"reviewer.username\"\n :data-can_merge=\"reviewer.mergeRequestInteraction.canMerge\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_reviewers_inputs.vue?vue&type=template&id=21442096\"\nimport script from \"./sidebar_reviewers_inputs.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_reviewers_inputs.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('div',_vm._l((_vm.reviewers),function(reviewer){return _c('input',{key:reviewer.id,attrs:{\"type\":\"hidden\",\"name\":\"merge_request[reviewer_ids][]\",\"data-avatar-url\":reviewer.avatarUrl,\"data-name\":reviewer.name,\"data-username\":reviewer.username,\"data-can_merge\":reviewer.mergeRequestInteraction.canMerge},domProps:{\"value\":_vm.getIdFromGraphQLId(reviewer.id)}})}),0)\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!./status_dropdown.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!./status_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport { statusDropdownOptions } from '../../constants';\n\nexport default {\n components: {\n GlCollapsibleListbox,\n },\n data() {\n return {\n status: null,\n selectedValue: undefined,\n };\n },\n computed: {\n dropdownText() {\n const selected = this.$options.statusDropdownOptions.find(\n (option) => option.value === this.selectedValue,\n );\n return selected?.text || this.$options.i18n.defaultDropdownText;\n },\n },\n methods: {\n handleReset() {\n this.selectedValue = undefined;\n },\n },\n i18n: {\n dropdownTitle: __('Change status'),\n defaultDropdownText: __('Select status'),\n resetText: __('Reset'),\n },\n statusDropdownOptions,\n};\n</script>\n<template>\n <div>\n <input type=\"hidden\" name=\"update[state_event]\" :value=\"selectedValue\" />\n <gl-collapsible-listbox\n v-model=\"selectedValue\"\n block\n :header-text=\"$options.i18n.dropdownTitle\"\n :reset-button-label=\"$options.i18n.resetText\"\n :toggle-text=\"dropdownText\"\n :items=\"$options.statusDropdownOptions\"\n @reset=\"handleReset\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./status_dropdown.vue?vue&type=template&id=bede5c70\"\nimport script from \"./status_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./status_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"update[state_event]\"},domProps:{\"value\":_vm.selectedValue}}),_vm._v(\" \"),_c('gl-collapsible-listbox',{attrs:{\"block\":\"\",\"header-text\":_vm.$options.i18n.dropdownTitle,\"reset-button-label\":_vm.$options.i18n.resetText,\"toggle-text\":_vm.dropdownText,\"items\":_vm.$options.statusDropdownOptions},on:{\"reset\":_vm.handleReset},model:{value:(_vm.selectedValue),callback:function ($$v) {_vm.selectedValue=$$v},expression:\"selectedValue\"}})],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!./subscriptions_dropdown.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!./subscriptions_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport { __ } from '~/locale';\nimport { subscriptionsDropdownOptions } from '../../constants';\n\nexport default {\n subscriptionsDropdownOptions,\n i18n: {\n defaultDropdownText: __('Select subscription'),\n headerText: __('Change subscription'),\n resetText: __('Reset'),\n },\n components: {\n GlCollapsibleListbox,\n },\n data() {\n return {\n selectedValue: undefined,\n };\n },\n computed: {\n dropdownText() {\n const selected = this.$options.subscriptionsDropdownOptions.find(\n (option) => option.value === this.selectedValue,\n );\n return selected?.text || this.$options.i18n.defaultDropdownText;\n },\n },\n methods: {\n handleReset() {\n this.selectedValue = undefined;\n },\n },\n};\n</script>\n<template>\n <div>\n <input type=\"hidden\" name=\"update[subscription_event]\" :value=\"selectedValue\" />\n <gl-collapsible-listbox\n v-model=\"selectedValue\"\n block\n :header-text=\"$options.i18n.headerText\"\n :reset-button-label=\"$options.i18n.resetText\"\n :toggle-text=\"dropdownText\"\n :items=\"$options.subscriptionsDropdownOptions\"\n @reset=\"handleReset\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./subscriptions_dropdown.vue?vue&type=template&id=ac9e51ba\"\nimport script from \"./subscriptions_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./subscriptions_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"update[subscription_event]\"},domProps:{\"value\":_vm.selectedValue}}),_vm._v(\" \"),_c('gl-collapsible-listbox',{attrs:{\"block\":\"\",\"header-text\":_vm.$options.i18n.headerText,\"reset-button-label\":_vm.$options.i18n.resetText,\"toggle-text\":_vm.dropdownText,\"items\":_vm.$options.subscriptionsDropdownOptions},on:{\"reset\":_vm.handleReset},model:{value:(_vm.selectedValue),callback:function ($$v) {_vm.selectedValue=$$v},expression:\"selectedValue\"}})],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!./sidebar_time_tracking.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!./sidebar_time_tracking.vue?vue&type=script&lang=js\"","<script>\nimport $ from 'jquery';\nimport { intersection } from 'lodash';\n\nimport '~/smart_interval';\n\nimport eventHub from '../../event_hub';\nimport IssuableTimeTracker from './time_tracker.vue';\n\nexport default {\n components: {\n IssuableTimeTracker,\n },\n props: {\n fullPath: {\n type: String,\n required: false,\n default: '',\n },\n issuableId: {\n type: String,\n required: true,\n },\n issuableIid: {\n type: String,\n required: true,\n },\n limitToHours: {\n type: Boolean,\n required: false,\n default: false,\n },\n canAddTimeEntries: {\n type: Boolean,\n required: false,\n default: true,\n },\n canSetTimeEstimate: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n mounted() {\n this.listenForQuickActions();\n },\n methods: {\n listenForQuickActions() {\n $(document).on('ajax:success', '.gfm-form', this.quickActionListened);\n\n eventHub.$on('timeTrackingUpdated', (data) => {\n this.quickActionListened({ detail: [data] });\n });\n },\n quickActionListened(e) {\n const data = e.detail[0];\n\n const subscribedCommands = ['spend_time', 'time_estimate'];\n let changedCommands;\n if (data !== undefined) {\n changedCommands = data.commands_changes ? Object.keys(data.commands_changes) : [];\n } else {\n changedCommands = [];\n }\n if (changedCommands && intersection(subscribedCommands, changedCommands).length) {\n eventHub.$emit('timeTracker:refresh');\n }\n },\n },\n};\n</script>\n\n<template>\n <div class=\"block time-tracking\">\n <issuable-time-tracker\n :full-path=\"fullPath\"\n :issuable-id=\"issuableId\"\n :issuable-iid=\"issuableIid\"\n :limit-to-hours=\"limitToHours\"\n :can-add-time-entries=\"canAddTimeEntries\"\n :can-set-time-estimate=\"canSetTimeEstimate\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_time_tracking.vue?vue&type=template&id=22c1b5e0\"\nimport script from \"./sidebar_time_tracking.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_time_tracking.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('div',{staticClass:\"block time-tracking\"},[_c('issuable-time-tracker',{attrs:{\"full-path\":_vm.fullPath,\"issuable-id\":_vm.issuableId,\"issuable-iid\":_vm.issuableIid,\"limit-to-hours\":_vm.limitToHours,\"can-add-time-entries\":_vm.canAddTimeEntries,\"can-set-time-estimate\":_vm.canSetTimeEstimate}})],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!./crm_contacts.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!./crm_contacts.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlLink, GlPopover, GlTooltipDirective } from '@gitlab/ui';\nimport { __, n__, sprintf } from '~/locale';\nimport { createAlert } from '~/alert';\nimport HelpIcon from '~/vue_shared/components/help_icon/help_icon.vue';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPENAME_ISSUE } from '~/graphql_shared/constants';\nimport { DOCS_URL_IN_EE_DIR } from 'jh_else_ce/lib/utils/url_utility';\nimport getIssueCrmContactsQuery from '../../queries/get_issue_crm_contacts.query.graphql';\nimport issueCrmContactsSubscription from '../../queries/issue_crm_contacts.subscription.graphql';\n\nexport default {\n crmDocsLink: `${DOCS_URL_IN_EE_DIR}/user/crm/`,\n components: {\n GlIcon,\n GlLink,\n GlPopover,\n HelpIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n issueId: {\n type: String,\n required: true,\n },\n groupIssuesPath: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n contacts: [],\n };\n },\n apollo: {\n contacts: {\n query: getIssueCrmContactsQuery,\n variables() {\n return this.queryVariables;\n },\n update(data) {\n return data?.issue?.customerRelationsContacts?.nodes;\n },\n error(error) {\n createAlert({\n message: __('Something went wrong trying to load issue contacts.'),\n error,\n captureError: true,\n });\n },\n subscribeToMore: {\n document: issueCrmContactsSubscription,\n variables() {\n return this.queryVariables;\n },\n updateQuery(prev, { subscriptionData }) {\n const draftData = subscriptionData?.data?.issueCrmContactsUpdated;\n if (prev && draftData) return { issue: draftData };\n return prev;\n },\n },\n },\n },\n computed: {\n shouldShowContacts() {\n return this.contacts?.length;\n },\n queryVariables() {\n return { id: convertToGraphQLId(TYPENAME_ISSUE, this.issueId) };\n },\n contactsLabel() {\n return sprintf(n__('%{count} contact', '%{count} contacts', this.contactCount), {\n count: this.contactCount,\n });\n },\n contactCount() {\n return this.contacts?.length || 0;\n },\n },\n methods: {\n shouldShowPopover(contact) {\n return this.popOverData(contact).length > 0;\n },\n divider(index) {\n if (index < this.contactCount - 1) return ',';\n return '';\n },\n popOverData(contact) {\n return [contact.organization?.name, contact.email, contact.phone, contact.description].filter(\n Boolean,\n );\n },\n getIssuesPath(contactId) {\n const id = getIdFromGraphQLId(contactId);\n return `${this.groupIssuesPath}?crm_contact_id=${id}`;\n },\n },\n};\n</script>\n\n<template>\n <div>\n <div v-gl-tooltip.left.viewport :title=\"contactsLabel\" class=\"sidebar-collapsed-icon\">\n <gl-icon name=\"users\" />\n <span> {{ contactCount }} </span>\n </div>\n <div class=\"hide-collapsed help-button gl-float-right\">\n <gl-link :href=\"$options.crmDocsLink\" target=\"_blank\"><help-icon /></gl-link>\n </div>\n <div class=\"hide-collapsed gl-font-bold gl-leading-20\">\n {{ contactsLabel }}\n </div>\n <div v-if=\"shouldShowContacts\" class=\"hide-collapsed gl-mt-2 gl-flex gl-flex-wrap\">\n <div\n v-for=\"(contact, index) in contacts\"\n :id=\"`contact_container_${index}`\"\n :key=\"index\"\n class=\"gl-pr-2\"\n >\n <gl-link :id=\"`contact_${index}`\" :href=\"getIssuesPath(contact.id)\"\n >{{ contact.firstName }} {{ contact.lastName }}{{ divider(index) }}</gl-link\n >\n <gl-popover\n v-if=\"shouldShowPopover(contact)\"\n :target=\"`contact_${index}`\"\n :container=\"`contact_container_${index}`\"\n triggers=\"hover focus\"\n placement=\"top\"\n >\n <div v-for=\"row in popOverData(contact)\" :key=\"row\">{{ row }}</div>\n </gl-popover>\n </div>\n </div>\n <div\n v-else\n data-testid=\"crm-empty-message\"\n class=\"hide-collapsed gl-flex gl-items-center gl-text-subtle\"\n >\n {{ __('To add active contacts, use /add_contacts.') }}\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./crm_contacts.vue?vue&type=template&id=fde89430\"\nimport script from \"./crm_contacts.vue?vue&type=script&lang=js\"\nexport * from \"./crm_contacts.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('div',[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.contactsLabel}},[_c('gl-icon',{attrs:{\"name\":\"users\"}}),_vm._v(\" \"),_c('span',[_vm._v(\" \"+_vm._s(_vm.contactCount)+\" \")])],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed help-button gl-float-right\"},[_c('gl-link',{attrs:{\"href\":_vm.$options.crmDocsLink,\"target\":\"_blank\"}},[_c('help-icon')],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed gl-font-bold gl-leading-20\"},[_vm._v(\"\\n \"+_vm._s(_vm.contactsLabel)+\"\\n \")]),_vm._v(\" \"),(_vm.shouldShowContacts)?_c('div',{staticClass:\"hide-collapsed gl-mt-2 gl-flex gl-flex-wrap\"},_vm._l((_vm.contacts),function(contact,index){return _c('div',{key:index,staticClass:\"gl-pr-2\",attrs:{\"id\":`contact_container_${index}`}},[_c('gl-link',{attrs:{\"id\":`contact_${index}`,\"href\":_vm.getIssuesPath(contact.id)}},[_vm._v(_vm._s(contact.firstName)+\" \"+_vm._s(contact.lastName)+_vm._s(_vm.divider(index)))]),_vm._v(\" \"),(_vm.shouldShowPopover(contact))?_c('gl-popover',{attrs:{\"target\":`contact_${index}`,\"container\":`contact_container_${index}`,\"triggers\":\"hover focus\",\"placement\":\"top\"}},_vm._l((_vm.popOverData(contact)),function(row){return _c('div',{key:row},[_vm._v(_vm._s(row))])}),0):_vm._e()],1)}),0):_c('div',{staticClass:\"hide-collapsed gl-flex gl-items-center gl-text-subtle\",attrs:{\"data-testid\":\"crm-empty-message\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('To add active contacts, use /add_contacts.'))+\"\\n \")])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('project-select',{attrs:{\"projects-fetch-path\":_vm.projectsAutocompleteEndpoint,\"dropdown-button-title\":_vm.dropdownButtonTitle,\"dropdown-header-title\":_vm.$options.i18n.title,\"move-in-progress\":_vm.moveInProgress},on:{\"move-issuable\":_vm.moveIssue}})\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!./move_issue_button.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!./move_issue_button.vue?vue&type=script&lang=js\"","<script>\nimport ProjectSelect from '~/sidebar/components/move/issuable_move_dropdown.vue';\nimport { __ } from '~/locale';\nimport { createAlert } from '~/alert';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport moveIssueMutation from '../../queries/move_issue.mutation.graphql';\n\nexport default {\n name: 'MoveIssueButton',\n components: { ProjectSelect },\n inject: ['projectsAutocompleteEndpoint', 'projectFullPath', 'issueIid'],\n\n i18n: {\n title: __('Move issue'),\n titleInProgress: __('Moving issue'),\n moveErrorMessage: __('An error occurred while moving the issue.'),\n },\n data() {\n return {\n moveInProgress: false,\n };\n },\n computed: {\n dropdownButtonTitle() {\n return this.moveInProgress ? this.$options.i18n.titleInProgress : this.$options.i18n.title;\n },\n },\n methods: {\n async moveIssue(targetProject) {\n this.moveInProgress = true;\n\n try {\n const { data } = await this.$apollo.mutate({\n mutation: moveIssueMutation,\n variables: {\n moveIssueInput: {\n projectPath: this.projectFullPath,\n iid: this.issueIid,\n targetProjectPath: targetProject.full_path,\n },\n },\n });\n\n if (!data.issueMove) return;\n\n const { errors } = data.issueMove;\n if (errors?.length > 0) {\n throw new Error(`Error moving the issue. Error message: ${errors[0].message}`);\n }\n\n visitUrl(data.issueMove?.issue.webUrl);\n } catch (error) {\n createAlert({\n message: this.$options.i18n.moveErrorMessage,\n captureError: true,\n error,\n });\n } finally {\n this.moveInProgress = false;\n }\n },\n },\n};\n</script>\n<template>\n <project-select\n :projects-fetch-path=\"projectsAutocompleteEndpoint\"\n :dropdown-button-title=\"dropdownButtonTitle\"\n :dropdown-header-title=\"$options.i18n.title\"\n :move-in-progress=\"moveInProgress\"\n @move-issuable=\"moveIssue\"\n />\n</template>\n","import { render, staticRenderFns } from \"./move_issue_button.vue?vue&type=template&id=f71528c0\"\nimport script from \"./move_issue_button.vue?vue&type=script&lang=js\"\nexport * from \"./move_issue_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","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!./confidentiality_dropdown.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!./confidentiality_dropdown.vue?vue&type=script&lang=js\"","<script>\nimport { GlCollapsibleListbox } from '@gitlab/ui';\nimport { __ } from '~/locale';\n\nexport default {\n components: {\n GlCollapsibleListbox,\n },\n data() {\n return {\n value: null,\n };\n },\n i18n: {\n defaultDropdownText: __('Select confidentiality'),\n headerText: __('Change confidentiality'),\n resetText: __('Reset'),\n },\n computed: {\n toggleText() {\n return this.value ? null : this.$options.i18n.defaultDropdownText;\n },\n },\n methods: {\n handleReset() {\n this.value = null;\n },\n },\n dropdownOptions: [\n {\n text: __('Confidential'),\n value: 'true',\n },\n {\n text: __('Not confidential'),\n value: 'false',\n },\n ],\n};\n</script>\n\n<template>\n <div>\n <input type=\"hidden\" name=\"update[confidentiality]\" :value=\"value\" />\n <gl-collapsible-listbox\n v-model=\"value\"\n block\n :header-text=\"$options.i18n.headerText\"\n :reset-button-label=\"$options.i18n.resetText\"\n :toggle-text=\"toggleText\"\n :items=\"$options.dropdownOptions\"\n @reset=\"handleReset\"\n />\n </div>\n</template>\n","import { render, staticRenderFns } from \"./confidentiality_dropdown.vue?vue&type=template&id=06b73f4c\"\nimport script from \"./confidentiality_dropdown.vue?vue&type=script&lang=js\"\nexport * from \"./confidentiality_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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('input',{attrs:{\"type\":\"hidden\",\"name\":\"update[confidentiality]\"},domProps:{\"value\":_vm.value}}),_vm._v(\" \"),_c('gl-collapsible-listbox',{attrs:{\"block\":\"\",\"header-text\":_vm.$options.i18n.headerText,\"reset-button-label\":_vm.$options.i18n.resetText,\"toggle-text\":_vm.toggleText,\"items\":_vm.$options.dropdownOptions},on:{\"reset\":_vm.handleReset},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport VueApollo from 'vue-apollo';\nimport { TYPENAME_ISSUE, TYPENAME_MERGE_REQUEST } from '~/graphql_shared/constants';\nimport { convertToGraphQLId, getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { gqlClient } from '~/issues/list/graphql';\nimport {\n isInDesignPage,\n isInIncidentPage,\n isInIssuePage,\n parseBoolean,\n} from '~/lib/utils/common_utils';\nimport { __ } from '~/locale';\nimport { apolloProvider } from '~/graphql_shared/issuable_client';\nimport Translate from '~/vue_shared/translate';\nimport UserSelect from '~/vue_shared/components/user_select/user_select.vue';\nimport CollapsedAssigneeList from './components/assignees/collapsed_assignee_list.vue';\nimport SidebarAssigneesWidget from './components/assignees/sidebar_assignees_widget.vue';\nimport CopyEmailToClipboard from './components/copy/copy_email_to_clipboard.vue';\nimport SidebarDueDateWidget from './components/date/sidebar_date_widget.vue';\nimport SidebarEscalationStatus from './components/incidents/sidebar_escalation_status.vue';\nimport LabelsSelectWidget from './components/labels/labels_select_widget/labels_select_root.vue';\nimport IssuableLockForm from './components/lock/issuable_lock_form.vue';\nimport MilestoneDropdown from './components/milestone/milestone_dropdown.vue';\nimport MoveIssuesButton from './components/move/move_issues_button.vue';\nimport SidebarParticipantsWidget from './components/participants/sidebar_participants_widget.vue';\nimport SidebarReferenceWidget from './components/copy/sidebar_reference_widget.vue';\nimport SidebarReviewers from './components/reviewers/sidebar_reviewers.vue';\nimport SidebarReviewersInputs from './components/reviewers/sidebar_reviewers_inputs.vue';\nimport SidebarSeverityWidget from './components/severity/sidebar_severity_widget.vue';\nimport SidebarDropdownWidget from './components/sidebar_dropdown_widget.vue';\nimport StatusDropdown from './components/status/status_dropdown.vue';\nimport SidebarSubscriptionsWidget from './components/subscriptions/sidebar_subscriptions_widget.vue';\nimport SubscriptionsDropdown from './components/subscriptions/subscriptions_dropdown.vue';\nimport SidebarTimeTracking from './components/time_tracking/sidebar_time_tracking.vue';\nimport SidebarTodoWidget from './components/todo_toggle/sidebar_todo_widget.vue';\nimport { IssuableAttributeType } from './constants';\nimport CrmContacts from './components/crm_contacts/crm_contacts.vue';\nimport trackShowInviteMemberLink from './track_invite_members';\nimport MoveIssueButton from './components/move/move_issue_button.vue';\nimport ConfidentialityDropdown from './components/confidential/confidentiality_dropdown.vue';\n\nVue.use(Translate);\nVue.use(VueApollo);\n\nfunction getSidebarOptions(sidebarOptEl = document.querySelector('.js-sidebar-options')) {\n return JSON.parse(sidebarOptEl.innerHTML);\n}\n\nfunction mountSidebarTodoWidget() {\n const el = document.querySelector('.js-sidebar-todo-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { projectPath, iid, id } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarTodoWidgetRoot',\n apolloProvider,\n provide: {\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(SidebarTodoWidget, {\n props: {\n fullPath: projectPath,\n issuableId:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? convertToGraphQLId(TYPENAME_ISSUE, id)\n : convertToGraphQLId(TYPENAME_MERGE_REQUEST, id),\n issuableIid: iid,\n issuableType:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? TYPE_ISSUE\n : TYPE_MERGE_REQUEST,\n },\n }),\n });\n}\n\nfunction mountSidebarAssigneesWidget() {\n const el = document.querySelector('.js-sidebar-assignees-root');\n\n if (!el) {\n return;\n }\n\n const { id, iid, fullPath, editable } = getSidebarOptions();\n const isIssuablePage = isInIssuePage() || isInIncidentPage() || isInDesignPage();\n const issuableType = isIssuablePage ? TYPE_ISSUE : TYPE_MERGE_REQUEST;\n // eslint-disable-next-line no-new\n new Vue({\n el,\n name: 'SidebarAssigneesRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(editable),\n directlyInviteMembers: Object.prototype.hasOwnProperty.call(\n el.dataset,\n 'directlyInviteMembers',\n ),\n },\n render: (createElement) =>\n createElement(SidebarAssigneesWidget, {\n props: {\n iid: String(iid),\n fullPath,\n issuableType,\n issuableId: id,\n allowMultipleAssignees: !el.dataset.maxAssignees || el.dataset.maxAssignees > 1,\n editable: parseBoolean(editable),\n },\n scopedSlots: {\n collapsed: ({ users }) =>\n createElement(CollapsedAssigneeList, {\n props: {\n users,\n issuableType,\n },\n }),\n },\n }),\n });\n}\n\nfunction mountSidebarReviewers(mediator) {\n const el = document.querySelector('.js-sidebar-reviewers-root');\n\n if (!el) {\n return;\n }\n\n const {\n id,\n iid,\n fullPath,\n multipleApprovalRulesAvailable = false,\n directlyInviteMembers = false,\n } = getSidebarOptions();\n // eslint-disable-next-line no-new\n new Vue({\n el,\n name: 'SidebarReviewersRoot',\n apolloProvider,\n provide: {\n issuableIid: String(iid),\n issuableId: String(id),\n projectPath: fullPath,\n multipleApprovalRulesAvailable: parseBoolean(multipleApprovalRulesAvailable),\n directlyInviteMembers: parseBoolean(directlyInviteMembers),\n },\n render: (createElement) =>\n createElement(SidebarReviewers, {\n props: {\n mediator,\n issuableIid: String(iid),\n projectPath: fullPath,\n field: el.dataset.field,\n issuableType: isInIssuePage() || isInDesignPage() ? TYPE_ISSUE : TYPE_MERGE_REQUEST,\n },\n }),\n });\n\n const reviewersInputEl = document.querySelector('.js-reviewers-inputs');\n\n if (reviewersInputEl) {\n // eslint-disable-next-line no-new\n new Vue({\n el: reviewersInputEl,\n render(createElement) {\n return createElement(SidebarReviewersInputs);\n },\n });\n }\n\n const reviewerDropdown = document.querySelector('.js-sidebar-reviewer-dropdown');\n\n if (reviewerDropdown) {\n trackShowInviteMemberLink(reviewerDropdown);\n }\n}\n\nfunction mountSidebarCrmContacts() {\n const el = document.querySelector('.js-sidebar-crm-contacts-root');\n\n if (!el) {\n return null;\n }\n\n const { issueId, groupIssuesPath } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarCrmContactsRoot',\n apolloProvider,\n render: (createElement) =>\n createElement(CrmContacts, {\n props: {\n issueId,\n groupIssuesPath,\n },\n }),\n });\n}\n\nfunction mountSidebarMilestoneWidget() {\n const el = document.querySelector('.js-sidebar-milestone-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { canEdit, projectPath, issueIid } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarMilestoneWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canEdit),\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(SidebarDropdownWidget, {\n props: {\n attrWorkspacePath: projectPath,\n workspacePath: projectPath,\n iid: issueIid,\n issuableType:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? TYPE_ISSUE\n : TYPE_MERGE_REQUEST,\n issuableAttribute: IssuableAttributeType.Milestone,\n icon: 'milestone',\n },\n }),\n });\n}\n\nexport function mountMilestoneDropdown() {\n const el = document.querySelector('.js-milestone-dropdown-root');\n\n if (!el) {\n return null;\n }\n\n Vue.use(VueApollo);\n\n const {\n canAdminMilestone,\n fullPath,\n inputName,\n milestoneId,\n milestoneTitle,\n projectMilestonesPath,\n workspaceType,\n } = el.dataset;\n\n return new Vue({\n el,\n name: 'MilestoneDropdownRoot',\n apolloProvider,\n render(createElement) {\n return createElement(MilestoneDropdown, {\n props: {\n attrWorkspacePath: fullPath,\n canAdminMilestone,\n inputName,\n issuableType: isInIssuePage() ? TYPE_ISSUE : TYPE_MERGE_REQUEST,\n milestoneId,\n milestoneTitle,\n projectMilestonesPath,\n workspaceType,\n },\n });\n },\n });\n}\n\nexport function mountSidebarLabelsWidget() {\n const el = document.querySelector('.js-sidebar-labels-widget-root');\n\n if (!el) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'SidebarLabelsWidgetRoot',\n apolloProvider,\n provide: {\n ...el.dataset,\n canUpdate: parseBoolean(el.dataset.canEdit),\n allowLabelCreate: parseBoolean(el.dataset.allowLabelCreate),\n allowLabelEdit: parseBoolean(el.dataset.canEdit),\n allowScopedLabels: parseBoolean(el.dataset.allowScopedLabels),\n isClassicSidebar: true,\n },\n render: (createElement) =>\n createElement(LabelsSelectWidget, {\n props: {\n iid: String(el.dataset.iid),\n fullPath: el.dataset.projectPath,\n allowLabelRemove: parseBoolean(el.dataset.canEdit),\n allowMultiselect: true,\n footerCreateLabelTitle: __('Create project label'),\n footerManageLabelTitle: __('Manage project labels'),\n labelsCreateTitle: __('Create project label'),\n labelsFilterBasePath: el.dataset.projectIssuesPath,\n issuableType:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? TYPE_ISSUE\n : TYPE_MERGE_REQUEST,\n workspaceType: WORKSPACE_PROJECT,\n attrWorkspacePath: el.dataset.projectPath,\n labelCreateType: WORKSPACE_PROJECT,\n },\n class: ['block labels js-labels-block'],\n scopedSlots: {\n default: () => __('None'),\n },\n }),\n });\n}\n\nfunction mountSidebarDueDateWidget() {\n const el = document.querySelector('.js-sidebar-due-date-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { fullPath, iid, editable } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarDueDateWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(editable),\n },\n render: (createElement) =>\n createElement(SidebarDueDateWidget, {\n props: {\n iid: String(iid),\n fullPath,\n issuableType: TYPE_ISSUE,\n },\n }),\n });\n}\n\nfunction mountSidebarReferenceWidget() {\n const el = document.querySelector('.js-sidebar-reference-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { fullPath, iid } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarReferenceWidgetRoot',\n apolloProvider,\n provide: {\n iid: String(iid),\n fullPath,\n },\n render: (createElement) =>\n createElement(SidebarReferenceWidget, {\n props: {\n issuableType:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? TYPE_ISSUE\n : TYPE_MERGE_REQUEST,\n },\n }),\n });\n}\n\nfunction mountIssuableLockForm(store) {\n const el = document.querySelector('.js-sidebar-lock-root');\n\n if (!el || !store) {\n return null;\n }\n\n const { fullPath, editable } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarLockRoot',\n store,\n provide: {\n fullPath,\n },\n render: (createElement) =>\n createElement(IssuableLockForm, {\n props: {\n isEditable: parseBoolean(editable),\n },\n }),\n });\n}\n\nfunction mountSidebarParticipantsWidget() {\n const el = document.querySelector('.js-sidebar-participants-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { fullPath, iid } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarParticipantsWidgetRoot',\n apolloProvider,\n render: (createElement) =>\n createElement(SidebarParticipantsWidget, {\n props: {\n iid: String(iid),\n fullPath,\n issuableType:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? TYPE_ISSUE\n : TYPE_MERGE_REQUEST,\n },\n }),\n });\n}\n\nfunction mountSidebarSubscriptionsWidget() {\n const el = document.querySelector('.js-sidebar-subscriptions-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { fullPath, iid, editable } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarSubscriptionsWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(editable),\n },\n render: (createElement) =>\n createElement(SidebarSubscriptionsWidget, {\n props: {\n iid: String(iid),\n fullPath,\n issuableType:\n isInIssuePage() || isInIncidentPage() || isInDesignPage()\n ? TYPE_ISSUE\n : TYPE_MERGE_REQUEST,\n },\n }),\n });\n}\n\nfunction mountSidebarTimeTracking() {\n const el = document.querySelector('.js-sidebar-time-tracking-root');\n\n const { id, iid, fullPath, issuableType, timeTrackingLimitToHours, canCreateTimelogs, editable } =\n getSidebarOptions();\n\n if (!el) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'SidebarTimeTrackingRoot',\n apolloProvider,\n provide: { issuableType },\n render: (createElement) =>\n createElement(SidebarTimeTracking, {\n props: {\n fullPath,\n issuableId: id.toString(),\n issuableIid: iid.toString(),\n limitToHours: timeTrackingLimitToHours,\n canAddTimeEntries: canCreateTimelogs,\n canSetTimeEstimate: parseBoolean(editable),\n },\n }),\n });\n}\n\nfunction mountSidebarSeverityWidget() {\n const el = document.querySelector('.js-sidebar-severity-widget-root');\n\n if (!el) {\n return null;\n }\n\n const { fullPath, iid, severity, editable } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarSeverityWidgetRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(editable),\n },\n render: (createElement) =>\n createElement(SidebarSeverityWidget, {\n props: {\n projectPath: fullPath,\n iid: String(iid),\n initialSeverity: severity.toUpperCase(),\n },\n }),\n });\n}\n\nfunction mountSidebarEscalationStatus() {\n const el = document.querySelector('.js-sidebar-escalation-status-root');\n\n if (!el) {\n return null;\n }\n\n const { issuableType } = getSidebarOptions();\n const { canUpdate, issueIid, projectPath } = el.dataset;\n\n return new Vue({\n el,\n name: 'SidebarEscalationStatusRoot',\n apolloProvider,\n provide: {\n canUpdate: parseBoolean(canUpdate),\n },\n render: (createElement) =>\n createElement(SidebarEscalationStatus, {\n props: {\n iid: issueIid,\n issuableType,\n projectPath,\n },\n }),\n });\n}\n\nfunction mountCopyEmailToClipboard() {\n const el = document.querySelector('.js-sidebar-copy-email-root');\n\n if (!el) {\n return null;\n }\n\n const { createNoteEmail } = getSidebarOptions();\n\n return new Vue({\n el,\n name: 'SidebarCopyEmailRoot',\n render: (createElement) =>\n createElement(CopyEmailToClipboard, { props: { issueEmailAddress: createNoteEmail } }),\n });\n}\n\nexport async function mountMoveIssuesButton() {\n const el = document.querySelector('.js-move-issues');\n\n if (!el) {\n return null;\n }\n\n Vue.use(VueApollo);\n\n return new Vue({\n el,\n name: 'MoveIssuesRoot',\n apolloProvider: new VueApollo({\n defaultClient: await gqlClient(),\n }),\n render: (createElement) =>\n createElement(MoveIssuesButton, {\n props: {\n projectFullPath: el.dataset.projectFullPath,\n projectsFetchPath: el.dataset.projectsFetchPath,\n },\n }),\n });\n}\n\nexport function mountStatusDropdown() {\n const el = document.querySelector('.js-status-dropdown');\n\n if (!el) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'StatusDropdownRoot',\n render: (createElement) => createElement(StatusDropdown),\n });\n}\n\nexport function mountSubscriptionsDropdown() {\n const el = document.querySelector('.js-subscriptions-dropdown');\n\n if (!el) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'SubscriptionsDropdownRoot',\n render: (createElement) => createElement(SubscriptionsDropdown),\n });\n}\n\nexport function mountConfidentialityDropdown() {\n const el = document.querySelector('.js-confidentiality-dropdown');\n\n if (!el) {\n return null;\n }\n\n return new Vue({\n el,\n name: 'ConfidentialityDropdownRoot',\n render: (createElement) => createElement(ConfidentialityDropdown),\n });\n}\n\nexport function mountMoveIssueButton() {\n const el = document.querySelector('.js-sidebar-move-issue-block');\n\n if (!el) {\n return null;\n }\n\n const { projectsAutocompleteEndpoint } = getSidebarOptions();\n const { projectFullPath, issueIid } = el.dataset;\n\n Vue.use(VueApollo);\n\n return new Vue({\n el,\n name: 'MoveIssueDropdownRoot',\n apolloProvider,\n provide: {\n projectsAutocompleteEndpoint,\n projectFullPath,\n issueIid,\n },\n render: (createElement) => createElement(MoveIssueButton),\n });\n}\n\nexport function mountAssigneesDropdown() {\n const el = document.querySelector('.js-assignee-dropdown');\n const assigneeIdsInput = document.querySelector('.js-assignee-ids-input');\n\n if (!el || !assigneeIdsInput) {\n return null;\n }\n\n const { fullPath } = el.dataset;\n const currentUser = {\n id: gon?.current_user_id,\n username: gon?.current_username,\n name: gon?.current_user_fullname,\n avatarUrl: gon?.current_user_avatar_url,\n };\n\n return new Vue({\n el,\n apolloProvider,\n data() {\n return {\n selectedUserName: '',\n value: [],\n };\n },\n methods: {\n onSelectedUnassigned() {\n assigneeIdsInput.value = 0;\n this.value = [];\n this.selectedUserName = __('Unassigned');\n },\n onSelected(selected) {\n assigneeIdsInput.value = selected.map((user) => getIdFromGraphQLId(user.id));\n this.value = selected;\n this.selectedUserName = selected.map((user) => user.name).join(', ');\n },\n },\n render(h) {\n const component = this;\n\n return h(UserSelect, {\n props: {\n text: component.selectedUserName || __('Select assignee'),\n headerText: __('Select assignees'),\n fullPath,\n currentUser,\n value: component.value,\n },\n on: {\n input(selected) {\n if (!selected.length) {\n component.onSelectedUnassigned();\n return;\n }\n\n component.onSelected(selected);\n },\n },\n class: 'gl-w-full',\n });\n },\n });\n}\n\nexport function mountSidebar(mediator, store) {\n mountSidebarTodoWidget();\n mountSidebarAssigneesWidget();\n mountSidebarReviewers(mediator);\n mountSidebarCrmContacts();\n mountSidebarLabelsWidget();\n mountSidebarMilestoneWidget();\n mountSidebarDueDateWidget();\n mountSidebarReferenceWidget();\n mountIssuableLockForm(store);\n mountSidebarParticipantsWidget();\n mountSidebarSubscriptionsWidget();\n mountCopyEmailToClipboard();\n mountSidebarTimeTracking();\n mountSidebarSeverityWidget();\n mountSidebarEscalationStatus();\n mountMoveIssueButton();\n}\n\nexport { getSidebarOptions };\n","import $ from 'jquery';\nimport Tracking from '~/tracking';\n\nexport default function initTrackInviteMembers(userDropdown) {\n const { trackAction, trackLabel } = userDropdown.querySelector(\n '.js-invite-members-track',\n ).dataset;\n\n $(userDropdown).on('shown.bs.dropdown', () => {\n Tracking.event(undefined, trackAction, {\n label: trackLabel,\n });\n });\n}\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar regexpTag = '[object RegExp]';\n\n/**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\nfunction baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n}\n\nmodule.exports = baseIsRegExp;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-mt-3\",attrs:{\"data-testid\":\"disabled-comments\"}},[_c('span',{staticClass:\"issuable-note-warning gl-inline-block gl-w-full gl-rounded-base gl-px-5 gl-py-4\"},[_c('gl-icon',{staticClass:\"icon\",attrs:{\"size\":16,\"name\":\"lock\"}}),_vm._v(\" \"),(_vm.isProjectArchived)?_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.projectArchivedWarning)+\"\\n \"),_c('gl-link',{staticClass:\"learn-more\",attrs:{\"href\":_vm.archivedProjectDocsPath,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Learn more'))+\"\\n \")])],1):_c('span',[_vm._v(\"\\n \"+_vm._s(_vm.lockedIssueWarning)+\"\\n \"),_c('gl-link',{staticClass:\"learn-more\",attrs:{\"href\":_vm.lockedIssueDocsPath,\"target\":\"_blank\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Learn more'))+\"\\n \")])],1)],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!./discussion_locked_widget.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!./discussion_locked_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlLink, GlIcon } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\nimport issuableStateMixin from '../mixins/issuable_state';\n\nexport default {\n components: {\n GlIcon,\n GlLink,\n },\n mixins: [issuableStateMixin],\n props: {\n issuableType: {\n required: true,\n type: String,\n },\n },\n computed: {\n issuableDisplayName() {\n return this.issuableType.replace(/_/g, ' ');\n },\n projectArchivedWarning() {\n return __('This project is archived and cannot be commented on.');\n },\n lockedIssueWarning() {\n return sprintf(\n __(\n 'The discussion in this %{issuableDisplayName} is locked. Only project members can comment.',\n ),\n { issuableDisplayName: this.issuableDisplayName },\n );\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-mt-3\" data-testid=\"disabled-comments\">\n <span class=\"issuable-note-warning gl-inline-block gl-w-full gl-rounded-base gl-px-5 gl-py-4\">\n <gl-icon :size=\"16\" name=\"lock\" class=\"icon\" />\n <span v-if=\"isProjectArchived\">\n {{ projectArchivedWarning }}\n <gl-link :href=\"archivedProjectDocsPath\" target=\"_blank\" class=\"learn-more\">\n {{ __('Learn more') }}\n </gl-link>\n </span>\n\n <span v-else>\n {{ lockedIssueWarning }}\n <gl-link :href=\"lockedIssueDocsPath\" target=\"_blank\" class=\"learn-more\">\n {{ __('Learn more') }}\n </gl-link>\n </span>\n </span>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./discussion_locked_widget.vue?vue&type=template&id=522d0260\"\nimport script from \"./discussion_locked_widget.vue?vue&type=script&lang=js\"\nexport * from \"./discussion_locked_widget.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 uniqueId from 'lodash/uniqueId';\nimport { offset, autoPlacement, shift, size, autoUpdate, computePosition } from '@floating-ui/dom';\nimport { buttonCategoryOptions, dropdownVariantOptions, buttonSizeOptions, dropdownPlacements, dropdownAllowedAutoPlacements } from '../../../../utils/constants';\nimport { POSITION_ABSOLUTE, POSITION_FIXED, GL_DROPDOWN_CONTENTS_CLASS, GL_DROPDOWN_BEFORE_CLOSE, GL_DROPDOWN_SHOWN, GL_DROPDOWN_HIDDEN, ENTER, SPACE, ARROW_DOWN, GL_DROPDOWN_FOCUS_CONTENT } from '../constants';\nimport { logWarning, isElementFocusable, isElementTabbable } from '../../../../utils/utils';\nimport { OutsideDirective } from '../../../../directives/outside/outside';\nimport GlButton from '../../button/button';\nimport GlIcon from '../../icon/icon';\nimport { DEFAULT_OFFSET, FIXED_WIDTH_CLASS } from './constants';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst BASE_DROPDOWN_CLASS = 'gl-new-dropdown';\nvar script = {\n name: 'BaseDropdown',\n BASE_DROPDOWN_CLASS,\n components: {\n GlButton,\n GlIcon\n },\n directives: {\n Outside: OutsideDirective\n },\n props: {\n toggleText: {\n type: String,\n required: false,\n default: ''\n },\n textSrOnly: {\n type: Boolean,\n required: false,\n default: false\n },\n block: {\n type: Boolean,\n required: false,\n default: false\n },\n category: {\n type: String,\n required: false,\n default: buttonCategoryOptions.primary,\n validator: value => Object.keys(buttonCategoryOptions).includes(value)\n },\n variant: {\n type: String,\n required: false,\n default: dropdownVariantOptions.default,\n validator: value => Object.keys(dropdownVariantOptions).includes(value)\n },\n size: {\n type: String,\n required: false,\n default: 'medium',\n validator: value => Object.keys(buttonSizeOptions).includes(value)\n },\n icon: {\n type: String,\n required: false,\n default: ''\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n loading: {\n type: Boolean,\n required: false,\n default: false\n },\n toggleClass: {\n type: [String, Array, Object],\n required: false,\n default: null\n },\n noCaret: {\n type: Boolean,\n required: false,\n default: false\n },\n placement: {\n type: String,\n required: false,\n default: 'bottom-start',\n validator: value => {\n if (['left', 'center', 'right'].includes(value)) {\n logWarning(`GlDisclosureDropdown/GlCollapsibleListbox: \"${value}\" placement is deprecated.\n Use ${dropdownPlacements[value]} instead.`);\n }\n return Object.keys(dropdownPlacements).includes(value);\n }\n },\n // ARIA props\n ariaHaspopup: {\n type: [String, Boolean],\n required: false,\n default: false,\n validator: value => {\n return ['menu', 'listbox', 'tree', 'grid', 'dialog', true, false].includes(value);\n }\n },\n /**\n * Id that will be referenced by `aria-labelledby` attribute of the dropdown content`\n */\n toggleId: {\n type: String,\n required: true\n },\n /**\n * The `aria-labelledby` attribute value for the toggle `button`\n */\n ariaLabelledby: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Custom value to be passed to the offset middleware.\n * https://floating-ui.com/docs/offset\n */\n offset: {\n type: [Number, Object],\n required: false,\n default: () => ({\n mainAxis: DEFAULT_OFFSET\n })\n },\n fluidWidth: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Strategy to be applied by computePosition. If this is set to fixed, the dropdown's position\n * needs to be set to fixed in CSS as well.\n * https://floating-ui.com/docs/computePosition#strategy\n */\n positioningStrategy: {\n type: String,\n required: false,\n default: POSITION_ABSOLUTE,\n validator: strategy => [POSITION_ABSOLUTE, POSITION_FIXED].includes(strategy)\n }\n },\n data() {\n return {\n openedYet: false,\n visible: false,\n baseDropdownId: uniqueId('base-dropdown-')\n };\n },\n computed: {\n hasNoVisibleToggleText() {\n var _this$toggleText;\n return !((_this$toggleText = this.toggleText) !== null && _this$toggleText !== void 0 && _this$toggleText.length) || this.textSrOnly;\n },\n isIconOnly() {\n return Boolean(this.icon && this.hasNoVisibleToggleText);\n },\n isEllipsisButton() {\n return this.isIconOnly && this.icon === 'ellipsis_h';\n },\n isCaretOnly() {\n return !this.noCaret && !this.icon && this.hasNoVisibleToggleText;\n },\n ariaAttributes() {\n return {\n 'aria-haspopup': this.ariaHaspopup,\n 'aria-expanded': String(this.visible),\n 'aria-controls': this.baseDropdownId,\n 'aria-labelledby': this.toggleLabelledBy\n };\n },\n toggleButtonClasses() {\n return [this.toggleClass, {\n 'gl-new-dropdown-toggle': true,\n 'button-ellipsis-horizontal': this.isEllipsisButton,\n 'gl-new-dropdown-icon-only btn-icon': this.isIconOnly && !this.isEllipsisButton,\n 'gl-new-dropdown-toggle-no-caret': this.noCaret,\n 'gl-new-dropdown-caret-only btn-icon': this.isCaretOnly\n }];\n },\n toggleButtonTextClasses() {\n return this.block ? 'gl-w-full' : '';\n },\n toggleLabelledBy() {\n return this.ariaLabelledby ? `${this.ariaLabelledby} ${this.toggleId}` : this.toggleId;\n },\n isDefaultToggle() {\n return !this.$scopedSlots.toggle;\n },\n toggleOptions() {\n if (this.isDefaultToggle) {\n return {\n is: GlButton,\n icon: this.icon,\n block: this.block,\n buttonTextClasses: this.toggleButtonTextClasses,\n category: this.category,\n variant: this.variant,\n size: this.size,\n disabled: this.disabled,\n loading: this.loading,\n class: this.toggleButtonClasses,\n ...this.ariaAttributes,\n listeners: {\n keydown: event => this.onKeydown(event),\n click: event => this.toggle(event)\n }\n };\n }\n return {\n is: 'div',\n class: 'gl-new-dropdown-custom-toggle',\n listeners: {\n keydown: event => this.onKeydown(event),\n click: event => this.toggle(event)\n }\n };\n },\n toggleListeners() {\n return this.toggleOptions.listeners;\n },\n toggleAttributes() {\n const {\n listeners,\n is,\n ...attributes\n } = this.toggleOptions;\n return attributes;\n },\n toggleComponent() {\n return this.toggleOptions.is;\n },\n toggleElement() {\n var _this$$refs$toggle;\n return this.$refs.toggle.$el || ((_this$$refs$toggle = this.$refs.toggle) === null || _this$$refs$toggle === void 0 ? void 0 : _this$$refs$toggle.firstElementChild);\n },\n panelClasses() {\n return {\n '!gl-block': this.visible,\n [FIXED_WIDTH_CLASS]: !this.fluidWidth,\n 'gl-fixed': this.openedYet && this.isFixed,\n 'gl-absolute': this.openedYet && !this.isFixed\n };\n },\n isFixed() {\n return this.positioningStrategy === POSITION_FIXED;\n },\n floatingUIConfig() {\n const placement = dropdownPlacements[this.placement];\n const [, alignment] = placement.split('-');\n return {\n placement,\n strategy: this.positioningStrategy,\n middleware: [offset(this.offset), autoPlacement({\n alignment,\n allowedPlacements: dropdownAllowedAutoPlacements[this.placement]\n }), shift(), size({\n apply: _ref => {\n var _this$nonScrollableCo;\n let {\n availableHeight,\n elements\n } = _ref;\n const contentsEl = elements.floating.querySelector(`.${GL_DROPDOWN_CONTENTS_CLASS}`);\n if (!contentsEl) {\n return;\n }\n const contentsAvailableHeight = availableHeight - ((_this$nonScrollableCo = this.nonScrollableContentHeight) !== null && _this$nonScrollableCo !== void 0 ? _this$nonScrollableCo : 0) - DEFAULT_OFFSET;\n Object.assign(contentsEl.style, {\n maxHeight: `${Math.max(contentsAvailableHeight, 0)}px`\n });\n }\n })]\n };\n }\n },\n watch: {\n ariaAttributes: {\n deep: true,\n handler(ariaAttributes) {\n if (this.$scopedSlots.toggle) {\n Object.keys(ariaAttributes).forEach(key => {\n this.toggleElement.setAttribute(key, ariaAttributes[key]);\n });\n }\n }\n }\n },\n mounted() {\n this.checkToggleFocusable();\n },\n beforeDestroy() {\n this.stopFloating();\n },\n methods: {\n checkToggleFocusable() {\n if (!isElementFocusable(this.toggleElement) && !isElementTabbable(this.toggleElement)) {\n logWarning(`GlDisclosureDropdown/GlCollapsibleListbox: Toggle is missing a 'tabindex' and cannot be focused.\n Use 'a' or 'button' element instead or make sure to add 'role=\"button\"' along with 'tabindex' otherwise.`, this.$el);\n }\n },\n async startFloating() {\n this.calculateNonScrollableAreaHeight();\n this.observer = new MutationObserver(this.calculateNonScrollableAreaHeight);\n this.observer.observe(this.$refs.content, {\n attributes: false,\n childList: true,\n subtree: true\n });\n this.stopAutoUpdate = autoUpdate(this.toggleElement, this.$refs.content, async () => {\n const {\n x,\n y\n } = await computePosition(this.toggleElement, this.$refs.content, this.floatingUIConfig);\n\n /**\n * Due to the asynchronous nature of computePosition, it's technically possible for the\n * component to have been destroyed by the time the promise resolves. In such case, we exit\n * early to prevent a TypeError.\n */\n if (!this.$refs.content) return;\n Object.assign(this.$refs.content.style, {\n left: `${x}px`,\n top: `${y}px`\n });\n });\n },\n stopFloating() {\n var _this$observer, _this$stopAutoUpdate;\n (_this$observer = this.observer) === null || _this$observer === void 0 ? void 0 : _this$observer.disconnect();\n (_this$stopAutoUpdate = this.stopAutoUpdate) === null || _this$stopAutoUpdate === void 0 ? void 0 : _this$stopAutoUpdate.call(this);\n },\n async toggle(event) {\n if (event && this.visible) {\n let prevented = false;\n this.$emit(GL_DROPDOWN_BEFORE_CLOSE, {\n originalEvent: event,\n preventDefault() {\n prevented = true;\n }\n });\n if (prevented) return false;\n }\n this.visible = !this.visible;\n if (this.visible) {\n // The dropdown needs to be actually visible before we compute its position with Floating UI.\n await this.$nextTick();\n this.openedYet = true;\n /**\n * We wait until the dropdown's position has been computed before emitting the `shown` event.\n * This ensures that, if the parent component attempts to focus an inner element, the dropdown\n * is already properly placed in the page. Otherwise, the page would scroll back to the top.\n */\n this.startFloating();\n this.$emit(GL_DROPDOWN_SHOWN);\n } else {\n this.stopFloating();\n this.$emit(GL_DROPDOWN_HIDDEN);\n }\n\n // this is to check whether `toggle` was prevented or not\n return true;\n },\n open() {\n if (this.visible) {\n return;\n }\n this.toggle();\n },\n close(event) {\n if (!this.visible) {\n return;\n }\n this.toggle(event);\n },\n /**\n * Closes the dropdown and returns the focus to the toggle unless it has has moved outside\n * of the dropdown, meaning that the consumer needed to put some other element in focus.\n *\n * @param {KeyboardEvent?} event The keyboard event that caused the dropdown to close.\n */\n async closeAndFocus(event) {\n if (!this.visible) {\n return;\n }\n const hadFocusWithin = this.$el.contains(document.activeElement);\n const hasToggled = await this.toggle(event);\n if (!hadFocusWithin) {\n return;\n }\n if (hasToggled) {\n this.focusToggle();\n }\n },\n focusToggle() {\n this.toggleElement.focus();\n },\n onKeydown(event) {\n const {\n code,\n target: {\n tagName\n }\n } = event;\n let toggleOnEnter = true;\n let toggleOnSpace = true;\n if (tagName === 'BUTTON') {\n toggleOnEnter = false;\n toggleOnSpace = false;\n } else if (tagName === 'A') {\n toggleOnEnter = false;\n }\n if (code === ENTER && toggleOnEnter || code === SPACE && toggleOnSpace) {\n this.toggle(event);\n }\n if (code === ARROW_DOWN) {\n this.$emit(GL_DROPDOWN_FOCUS_CONTENT, event);\n }\n },\n calculateNonScrollableAreaHeight() {\n var _this$$refs$content;\n const scrollableArea = (_this$$refs$content = this.$refs.content) === null || _this$$refs$content === void 0 ? void 0 : _this$$refs$content.querySelector(`.${GL_DROPDOWN_CONTENTS_CLASS}`);\n if (!scrollableArea) return;\n const floatingElementBoundingBox = this.$refs.content.getBoundingClientRect();\n const scrollableAreaBoundingBox = scrollableArea.getBoundingClientRect();\n this.nonScrollableContentHeight = floatingElementBoundingBox.height - scrollableAreaBoundingBox.height;\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('div',{directives:[{name:\"outside\",rawName:\"v-outside.click.focusin\",value:(_vm.close),expression:\"close\",modifiers:{\"click\":true,\"focusin\":true}}],class:[_vm.$options.BASE_DROPDOWN_CLASS, { '!gl-block': _vm.block }]},[_c(_vm.toggleComponent,_vm._g(_vm._b({ref:\"toggle\",tag:\"component\",attrs:{\"id\":_vm.toggleId,\"data-testid\":\"base-dropdown-toggle\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.close.apply(null, arguments)}}},'component',_vm.toggleAttributes,false),_vm.toggleListeners),[_vm._t(\"toggle\",function(){return [_c('span',{staticClass:\"gl-new-dropdown-button-text\",class:{ 'gl-sr-only': _vm.textSrOnly }},[_vm._v(\"\\n \"+_vm._s(_vm.toggleText)+\"\\n \")]),_vm._v(\" \"),(!_vm.noCaret)?_c('gl-icon',{staticClass:\"gl-button-icon gl-new-dropdown-chevron\",attrs:{\"name\":\"chevron-down\"}}):_vm._e()]})],2),_vm._v(\" \"),_c('div',{ref:\"content\",staticClass:\"gl-new-dropdown-panel\",class:_vm.panelClasses,attrs:{\"id\":_vm.baseDropdownId,\"data-testid\":\"base-dropdown-menu\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }$event.stopPropagation();$event.preventDefault();return _vm.closeAndFocus.apply(null, arguments)}}},[_c('div',{staticClass:\"gl-new-dropdown-inner\"},[_vm._t(\"default\")],2)])],1)};\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__;\nexport { BASE_DROPDOWN_CLASS };\n","const FIXED_WIDTH_CLASS = '!gl-w-31';\nconst DEFAULT_OFFSET = 4;\n\nexport { DEFAULT_OFFSET, FIXED_WIDTH_CLASS };\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","import { __, s__ } from '~/locale';\n\nexport const TYPE_USER = 'user';\nexport const TYPE_GROUP = 'group';\nexport const TYPE_HIDDEN_GROUPS = 'hidden_groups';\n\nexport const RULE_TYPE_FALLBACK = 'fallback';\nexport const RULE_TYPE_REGULAR = 'regular';\nexport const RULE_TYPE_REPORT_APPROVER = 'report_approver';\nexport const RULE_TYPE_CODE_OWNER = 'code_owner';\nexport const RULE_TYPE_ANY_APPROVER = 'any_approver';\nexport const RULE_NAME_ANY_APPROVER = 'All Members';\n\nexport const LICENSE_CHECK_NAME = 'License-Check';\nexport const COVERAGE_CHECK_NAME = 'Coverage-Check';\n\nexport const REPORT_TYPE_LICENSE_SCANNING = 'license_scanning';\nexport const REPORT_TYPE_CODE_COVERAGE = 'code_coverage';\n\nexport const APPROVAL_RULE_CONFIGS = {\n [COVERAGE_CHECK_NAME]: {\n title: s__('SecurityApprovals|Coverage-Check'),\n popoverText: s__(\n 'SecurityApprovals|A merge request approval is required when test coverage declines.',\n ),\n documentationText: s__('SecurityApprovals|Learn more about Coverage-Check'),\n reportType: REPORT_TYPE_CODE_COVERAGE,\n },\n};\n\nexport const APPROVAL_SETTINGS_I18N = {\n learnMore: __('Learn more.'),\n approvalSettingsHeader: __('Approval settings'),\n approvalSettingsDescription: __('Define how approval rules are applied to merge requests.'),\n saveChanges: __('Save changes'),\n loadingErrorMessage: s__(\n 'ApprovalSettings|There was an error loading merge request approval settings.',\n ),\n savingErrorMessage: s__(\n 'ApprovalSettings|There was an error updating merge request approval settings.',\n ),\n savingSuccessMessage: s__('ApprovalSettings|Merge request approval settings have been updated.'),\n lockedByAdmin: s__(\n 'ApprovalSettings|This setting is configured at the instance level and can only be changed by an administrator.',\n ),\n lockedByGroupOwner: s__(\n 'ApprovalSettings|This setting is configured in %{groupName} and can only be changed in the group settings by an administrator or group owner.',\n ),\n};\n\nexport const PROJECT_APPROVAL_SETTINGS_LABELS_I18N = {\n authorApprovalLabel: s__('ApprovalSettings|Prevent approval by author'),\n preventMrApprovalRuleEditLabel: s__(\n 'ApprovalSettings|Prevent editing approval rules in merge requests',\n ),\n preventCommittersApprovalLabel: s__(\n 'ApprovalSettings|Prevent approvals by users who add commits',\n ),\n requireUserPasswordLabel: s__(\n 'ApprovalSettings|Require user re-authentication (password or SAML) to approve',\n ),\n whenCommitAddedLabel: s__('ApprovalSettings|When a commit is added:'),\n keepApprovalsLabel: s__('ApprovalSettings|Keep approvals'),\n removeApprovalsOnPushLabel: s__('ApprovalSettings|Remove all approvals'),\n selectiveCodeOwnerRemovalsLabel: s__(\n 'ApprovalSettings|Remove approvals by Code Owners if their files changed',\n ),\n};\n\nexport const GROUP_APPROVAL_SETTINGS_LABELS_I18N = {\n ...PROJECT_APPROVAL_SETTINGS_LABELS_I18N,\n preventMrApprovalRuleEditLabel: s__(\n 'ApprovalSettings|Prevent editing approval rules in projects and merge requests.',\n ),\n};\n\nexport const APPROVAL_DIALOG_I18N = {\n form: {\n approvalsRequiredLabel: s__('ApprovalRule|Required number of approvals'),\n approvalTypeLabel: s__('ApprovalRule|Approver Type'),\n approversLabel: s__('ApprovalRule|Add approvers'),\n nameLabel: s__('ApprovalRule|Rule name'),\n nameDescription: s__('ApprovalRule|Examples: QA, Security.'),\n protectedBranchLabel: s__('ApprovalRule|Target branch'),\n protectedBranchDescription: __(\n 'Apply this approval rule to all branches or a specific protected branch.',\n ),\n },\n validations: {\n approvalsRequiredNegativeNumber: __('Please enter a non-negative number'),\n approvalsRequiredNotNumber: __('Please enter a valid number'),\n approvalsRequiredMinimum: __(\n 'Please enter a number greater than %{number} (from the project settings)',\n ),\n approversRequired: __('Please select and add a member'),\n branchesRequired: __('Please select a valid target branch'),\n ruleNameTaken: __('Rule name is already taken.'),\n ruleNameMissing: __('Please provide a name'),\n ruleNameTooLong: __('Please enter a name with less than %{number} characters.'),\n },\n};\n\nexport const MR_APPROVALS_PROMO_DISMISSED = 'mr_approvals_promo.dismissed';\nexport const MR_APPROVALS_PROMO_TRACKING_EVENTS = {\n learnMoreClick: { action: 'click_link', label: 'learn_more_merge_approval' },\n tryNowClick: { action: 'click_button', label: 'start_trial' },\n collapsePromo: { action: 'click_button', label: 'collapse_approval_rules' },\n expandPromo: { action: 'click_button', label: 'expand_approval_rules' },\n};\nexport const MR_APPROVALS_PROMO_I18N = {\n accordionTitle: s__('ApprovalRule|Approval rules'),\n learnMore: __('Learn more'),\n promoTitle: s__(\"ApprovalRule|Improve your organization's code review with required approvals.\"),\n summary: __('Approvals are optional.'),\n tryNow: s__('ApprovalRule|Try for free'),\n valueStatements: [\n s__('ApprovalRule|Select eligible approvers by expertise or files changed.'),\n s__('ApprovalRule|Increase quality and maintain standards.'),\n s__('ApprovalRule|Reduce your time to merge.'),\n ],\n};\n\nexport const SEARCH_PLACEHOLDER = s__('ApprovalRule|Search users or groups');\n\nexport const DROPDOWN_OPTION_PROJECT_GROUPS = s__('ApprovalRule|Search in project groups');\n\nexport const DROPDOWN_OPTION_ALL_GROUPS = s__('ApprovalRule|Search in all groups');\n\nexport const GROUP_OPTIONS = [DROPDOWN_OPTION_ALL_GROUPS, DROPDOWN_OPTION_PROJECT_GROUPS];\n\nexport const TABLE_HEADERS = {\n name: s__('ApprovalRule|Rule'),\n members: s__('ApprovalRule|Approvers'),\n approvalsRequired: s__('ApprovalRule|Approvals required'),\n branches: __('Target branch'),\n actions: __('Actions'),\n};\n","/** Used to compose unicode character classes. */\nvar rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n/** Used to compose unicode capture groups. */\nvar rsApos = \"['\\u2019]\",\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq;\n\n/** Used to match complex or compound words. */\nvar reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n].join('|'), 'g');\n\n/**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\nfunction unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n}\n\nmodule.exports = unicodeWords;\n","export const AJAX_USERS_SELECT_PARAMS_MAP = {\n project_id: 'projectId',\n group_id: 'groupId',\n todo_filter: 'todoFilter',\n todo_state_filter: 'todoStateFilter',\n current_user: 'showCurrentUser',\n author_id: 'authorId',\n states: 'states',\n};\n\nexport const ACTIVE_AND_BLOCKED_USER_STATES = ['active', 'blocked', 'ldap_blocked'];\n","var deburrLetter = require('./_deburrLetter'),\n toString = require('./toString');\n\n/** Used to match Latin Unicode letters (excluding mathematical operators). */\nvar reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n/** Used to compose unicode character classes. */\nvar rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;\n\n/** Used to compose unicode capture groups. */\nvar rsCombo = '[' + rsComboRange + ']';\n\n/**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\nvar reComboMark = RegExp(rsCombo, 'g');\n\n/**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\nfunction deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n}\n\nmodule.exports = deburr;\n","import {Selection, root} from \"./selection/index\";\n\nexport default function(selector) {\n return typeof selector === \"string\"\n ? new Selection([[document.querySelector(selector)]], [document.documentElement])\n : new Selection([[selector]], root);\n}\n","var baseIteratee = require('./_baseIteratee'),\n baseWhile = require('./_baseWhile');\n\n/**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\nfunction takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, baseIteratee(predicate, 3), false, true)\n : [];\n}\n\nmodule.exports = takeRightWhile;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"autoMergeFailedQuery\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeError\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":174}};\n doc.loc.source = {\"body\":\"query autoMergeFailedQuery($projectPath: ID!, $iid: String!) {\\n project(fullPath: $projectPath) {\\n id\\n mergeRequest(iid: $iid) {\\n id\\n mergeError\\n }\\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[\"autoMergeFailedQuery\"] = oneQuery(doc, \"autoMergeFailedQuery\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"retryPipelineMiniGraphJob\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"CiProcessableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"jobRetry\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"job\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"Job\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":184}};\n doc.loc.source = {\"body\":\"#import \\\"../fragments/job.fragment.graphql\\\"\\n\\nmutation retryPipelineMiniGraphJob($id: CiProcessableID!) {\\n jobRetry(input: { id: $id }) {\\n job {\\n ...Job\\n }\\n errors\\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(\"../fragments/job.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[\"retryPipelineMiniGraphJob\"] = oneQuery(doc, \"retryPipelineMiniGraphJob\");\n \n","var arrayMap = require('./_arrayMap'),\n baseIntersection = require('./_baseIntersection'),\n baseRest = require('./_baseRest'),\n castArrayLikeObject = require('./_castArrayLikeObject');\n\n/**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\nvar intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n});\n\nmodule.exports = intersection;\n","'use strict';\n\n/*eslint-disable max-len,no-use-before-define*/\n\nvar common = require('./common');\nvar YAMLException = require('./exception');\nvar Mark = require('./mark');\nvar DEFAULT_SAFE_SCHEMA = require('./schema/default_safe');\nvar DEFAULT_FULL_SCHEMA = require('./schema/default_full');\n\n\nvar _hasOwnProperty = Object.prototype.hasOwnProperty;\n\n\nvar CONTEXT_FLOW_IN = 1;\nvar CONTEXT_FLOW_OUT = 2;\nvar CONTEXT_BLOCK_IN = 3;\nvar CONTEXT_BLOCK_OUT = 4;\n\n\nvar CHOMPING_CLIP = 1;\nvar CHOMPING_STRIP = 2;\nvar CHOMPING_KEEP = 3;\n\n\nvar PATTERN_NON_PRINTABLE = /[\\x00-\\x08\\x0B\\x0C\\x0E-\\x1F\\x7F-\\x84\\x86-\\x9F\\uFFFE\\uFFFF]|[\\uD800-\\uDBFF](?![\\uDC00-\\uDFFF])|(?:[^\\uD800-\\uDBFF]|^)[\\uDC00-\\uDFFF]/;\nvar PATTERN_NON_ASCII_LINE_BREAKS = /[\\x85\\u2028\\u2029]/;\nvar PATTERN_FLOW_INDICATORS = /[,\\[\\]\\{\\}]/;\nvar PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\\-]+!)$/i;\nvar PATTERN_TAG_URI = /^(?:!|[^,\\[\\]\\{\\}])(?:%[0-9a-f]{2}|[0-9a-z\\-#;\\/\\?:@&=\\+\\$,_\\.!~\\*'\\(\\)\\[\\]])*$/i;\n\n\nfunction _class(obj) { return Object.prototype.toString.call(obj); }\n\nfunction is_EOL(c) {\n return (c === 0x0A/* LF */) || (c === 0x0D/* CR */);\n}\n\nfunction is_WHITE_SPACE(c) {\n return (c === 0x09/* Tab */) || (c === 0x20/* Space */);\n}\n\nfunction is_WS_OR_EOL(c) {\n return (c === 0x09/* Tab */) ||\n (c === 0x20/* Space */) ||\n (c === 0x0A/* LF */) ||\n (c === 0x0D/* CR */);\n}\n\nfunction is_FLOW_INDICATOR(c) {\n return c === 0x2C/* , */ ||\n c === 0x5B/* [ */ ||\n c === 0x5D/* ] */ ||\n c === 0x7B/* { */ ||\n c === 0x7D/* } */;\n}\n\nfunction fromHexCode(c) {\n var lc;\n\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n /*eslint-disable no-bitwise*/\n lc = c | 0x20;\n\n if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) {\n return lc - 0x61 + 10;\n }\n\n return -1;\n}\n\nfunction escapedHexLen(c) {\n if (c === 0x78/* x */) { return 2; }\n if (c === 0x75/* u */) { return 4; }\n if (c === 0x55/* U */) { return 8; }\n return 0;\n}\n\nfunction fromDecimalCode(c) {\n if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) {\n return c - 0x30;\n }\n\n return -1;\n}\n\nfunction simpleEscapeSequence(c) {\n /* eslint-disable indent */\n return (c === 0x30/* 0 */) ? '\\x00' :\n (c === 0x61/* a */) ? '\\x07' :\n (c === 0x62/* b */) ? '\\x08' :\n (c === 0x74/* t */) ? '\\x09' :\n (c === 0x09/* Tab */) ? '\\x09' :\n (c === 0x6E/* n */) ? '\\x0A' :\n (c === 0x76/* v */) ? '\\x0B' :\n (c === 0x66/* f */) ? '\\x0C' :\n (c === 0x72/* r */) ? '\\x0D' :\n (c === 0x65/* e */) ? '\\x1B' :\n (c === 0x20/* Space */) ? ' ' :\n (c === 0x22/* \" */) ? '\\x22' :\n (c === 0x2F/* / */) ? '/' :\n (c === 0x5C/* \\ */) ? '\\x5C' :\n (c === 0x4E/* N */) ? '\\x85' :\n (c === 0x5F/* _ */) ? '\\xA0' :\n (c === 0x4C/* L */) ? '\\u2028' :\n (c === 0x50/* P */) ? '\\u2029' : '';\n}\n\nfunction charFromCodepoint(c) {\n if (c <= 0xFFFF) {\n return String.fromCharCode(c);\n }\n // Encode UTF-16 surrogate pair\n // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF\n return String.fromCharCode(\n ((c - 0x010000) >> 10) + 0xD800,\n ((c - 0x010000) & 0x03FF) + 0xDC00\n );\n}\n\nvar simpleEscapeCheck = new Array(256); // integer, for fast access\nvar simpleEscapeMap = new Array(256);\nfor (var i = 0; i < 256; i++) {\n simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0;\n simpleEscapeMap[i] = simpleEscapeSequence(i);\n}\n\n\nfunction State(input, options) {\n this.input = input;\n\n this.filename = options['filename'] || null;\n this.schema = options['schema'] || DEFAULT_FULL_SCHEMA;\n this.onWarning = options['onWarning'] || null;\n this.legacy = options['legacy'] || false;\n this.json = options['json'] || false;\n this.listener = options['listener'] || null;\n\n this.implicitTypes = this.schema.compiledImplicit;\n this.typeMap = this.schema.compiledTypeMap;\n\n this.length = input.length;\n this.position = 0;\n this.line = 0;\n this.lineStart = 0;\n this.lineIndent = 0;\n\n this.documents = [];\n\n /*\n this.version;\n this.checkLineBreaks;\n this.tagMap;\n this.anchorMap;\n this.tag;\n this.anchor;\n this.kind;\n this.result;*/\n\n}\n\n\nfunction generateError(state, message) {\n return new YAMLException(\n message,\n new Mark(state.filename, state.input, state.position, state.line, (state.position - state.lineStart)));\n}\n\nfunction throwError(state, message) {\n throw generateError(state, message);\n}\n\nfunction throwWarning(state, message) {\n if (state.onWarning) {\n state.onWarning.call(null, generateError(state, message));\n }\n}\n\n\nvar directiveHandlers = {\n\n YAML: function handleYamlDirective(state, name, args) {\n\n var match, major, minor;\n\n if (state.version !== null) {\n throwError(state, 'duplication of %YAML directive');\n }\n\n if (args.length !== 1) {\n throwError(state, 'YAML directive accepts exactly one argument');\n }\n\n match = /^([0-9]+)\\.([0-9]+)$/.exec(args[0]);\n\n if (match === null) {\n throwError(state, 'ill-formed argument of the YAML directive');\n }\n\n major = parseInt(match[1], 10);\n minor = parseInt(match[2], 10);\n\n if (major !== 1) {\n throwError(state, 'unacceptable YAML version of the document');\n }\n\n state.version = args[0];\n state.checkLineBreaks = (minor < 2);\n\n if (minor !== 1 && minor !== 2) {\n throwWarning(state, 'unsupported YAML version of the document');\n }\n },\n\n TAG: function handleTagDirective(state, name, args) {\n\n var handle, prefix;\n\n if (args.length !== 2) {\n throwError(state, 'TAG directive accepts exactly two arguments');\n }\n\n handle = args[0];\n prefix = args[1];\n\n if (!PATTERN_TAG_HANDLE.test(handle)) {\n throwError(state, 'ill-formed tag handle (first argument) of the TAG directive');\n }\n\n if (_hasOwnProperty.call(state.tagMap, handle)) {\n throwError(state, 'there is a previously declared suffix for \"' + handle + '\" tag handle');\n }\n\n if (!PATTERN_TAG_URI.test(prefix)) {\n throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive');\n }\n\n state.tagMap[handle] = prefix;\n }\n};\n\n\nfunction captureSegment(state, start, end, checkJson) {\n var _position, _length, _character, _result;\n\n if (start < end) {\n _result = state.input.slice(start, end);\n\n if (checkJson) {\n for (_position = 0, _length = _result.length; _position < _length; _position += 1) {\n _character = _result.charCodeAt(_position);\n if (!(_character === 0x09 ||\n (0x20 <= _character && _character <= 0x10FFFF))) {\n throwError(state, 'expected valid JSON character');\n }\n }\n } else if (PATTERN_NON_PRINTABLE.test(_result)) {\n throwError(state, 'the stream contains non-printable characters');\n }\n\n state.result += _result;\n }\n}\n\nfunction mergeMappings(state, destination, source, overridableKeys) {\n var sourceKeys, key, index, quantity;\n\n if (!common.isObject(source)) {\n throwError(state, 'cannot merge mappings; the provided source object is unacceptable');\n }\n\n sourceKeys = Object.keys(source);\n\n for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) {\n key = sourceKeys[index];\n\n if (!_hasOwnProperty.call(destination, key)) {\n destination[key] = source[key];\n overridableKeys[key] = true;\n }\n }\n}\n\nfunction storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startPos) {\n var index, quantity;\n\n // The output is a plain object here, so keys can only be strings.\n // We need to convert keyNode to a string, but doing so can hang the process\n // (deeply nested arrays that explode exponentially using aliases).\n if (Array.isArray(keyNode)) {\n keyNode = Array.prototype.slice.call(keyNode);\n\n for (index = 0, quantity = keyNode.length; index < quantity; index += 1) {\n if (Array.isArray(keyNode[index])) {\n throwError(state, 'nested arrays are not supported inside keys');\n }\n\n if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') {\n keyNode[index] = '[object Object]';\n }\n }\n }\n\n // Avoid code execution in load() via toString property\n // (still use its own toString for arrays, timestamps,\n // and whatever user schema extensions happen to have @@toStringTag)\n if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') {\n keyNode = '[object Object]';\n }\n\n\n keyNode = String(keyNode);\n\n if (_result === null) {\n _result = {};\n }\n\n if (keyTag === 'tag:yaml.org,2002:merge') {\n if (Array.isArray(valueNode)) {\n for (index = 0, quantity = valueNode.length; index < quantity; index += 1) {\n mergeMappings(state, _result, valueNode[index], overridableKeys);\n }\n } else {\n mergeMappings(state, _result, valueNode, overridableKeys);\n }\n } else {\n if (!state.json &&\n !_hasOwnProperty.call(overridableKeys, keyNode) &&\n _hasOwnProperty.call(_result, keyNode)) {\n state.line = startLine || state.line;\n state.position = startPos || state.position;\n throwError(state, 'duplicated mapping key');\n }\n _result[keyNode] = valueNode;\n delete overridableKeys[keyNode];\n }\n\n return _result;\n}\n\nfunction readLineBreak(state) {\n var ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x0A/* LF */) {\n state.position++;\n } else if (ch === 0x0D/* CR */) {\n state.position++;\n if (state.input.charCodeAt(state.position) === 0x0A/* LF */) {\n state.position++;\n }\n } else {\n throwError(state, 'a line break is expected');\n }\n\n state.line += 1;\n state.lineStart = state.position;\n}\n\nfunction skipSeparationSpace(state, allowComments, checkIndent) {\n var lineBreaks = 0,\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (allowComments && ch === 0x23/* # */) {\n do {\n ch = state.input.charCodeAt(++state.position);\n } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0);\n }\n\n if (is_EOL(ch)) {\n readLineBreak(state);\n\n ch = state.input.charCodeAt(state.position);\n lineBreaks++;\n state.lineIndent = 0;\n\n while (ch === 0x20/* Space */) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n } else {\n break;\n }\n }\n\n if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) {\n throwWarning(state, 'deficient indentation');\n }\n\n return lineBreaks;\n}\n\nfunction testDocumentSeparator(state) {\n var _position = state.position,\n ch;\n\n ch = state.input.charCodeAt(_position);\n\n // Condition state.position === state.lineStart is tested\n // in parent on each call, for efficiency. No needs to test here again.\n if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) &&\n ch === state.input.charCodeAt(_position + 1) &&\n ch === state.input.charCodeAt(_position + 2)) {\n\n _position += 3;\n\n ch = state.input.charCodeAt(_position);\n\n if (ch === 0 || is_WS_OR_EOL(ch)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction writeFoldedLines(state, count) {\n if (count === 1) {\n state.result += ' ';\n } else if (count > 1) {\n state.result += common.repeat('\\n', count - 1);\n }\n}\n\n\nfunction readPlainScalar(state, nodeIndent, withinFlowCollection) {\n var preceding,\n following,\n captureStart,\n captureEnd,\n hasPendingContent,\n _line,\n _lineStart,\n _lineIndent,\n _kind = state.kind,\n _result = state.result,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (is_WS_OR_EOL(ch) ||\n is_FLOW_INDICATOR(ch) ||\n ch === 0x23/* # */ ||\n ch === 0x26/* & */ ||\n ch === 0x2A/* * */ ||\n ch === 0x21/* ! */ ||\n ch === 0x7C/* | */ ||\n ch === 0x3E/* > */ ||\n ch === 0x27/* ' */ ||\n ch === 0x22/* \" */ ||\n ch === 0x25/* % */ ||\n ch === 0x40/* @ */ ||\n ch === 0x60/* ` */) {\n return false;\n }\n\n if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n return false;\n }\n }\n\n state.kind = 'scalar';\n state.result = '';\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n\n while (ch !== 0) {\n if (ch === 0x3A/* : */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following) ||\n withinFlowCollection && is_FLOW_INDICATOR(following)) {\n break;\n }\n\n } else if (ch === 0x23/* # */) {\n preceding = state.input.charCodeAt(state.position - 1);\n\n if (is_WS_OR_EOL(preceding)) {\n break;\n }\n\n } else if ((state.position === state.lineStart && testDocumentSeparator(state)) ||\n withinFlowCollection && is_FLOW_INDICATOR(ch)) {\n break;\n\n } else if (is_EOL(ch)) {\n _line = state.line;\n _lineStart = state.lineStart;\n _lineIndent = state.lineIndent;\n skipSeparationSpace(state, false, -1);\n\n if (state.lineIndent >= nodeIndent) {\n hasPendingContent = true;\n ch = state.input.charCodeAt(state.position);\n continue;\n } else {\n state.position = captureEnd;\n state.line = _line;\n state.lineStart = _lineStart;\n state.lineIndent = _lineIndent;\n break;\n }\n }\n\n if (hasPendingContent) {\n captureSegment(state, captureStart, captureEnd, false);\n writeFoldedLines(state, state.line - _line);\n captureStart = captureEnd = state.position;\n hasPendingContent = false;\n }\n\n if (!is_WHITE_SPACE(ch)) {\n captureEnd = state.position + 1;\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, captureEnd, false);\n\n if (state.result) {\n return true;\n }\n\n state.kind = _kind;\n state.result = _result;\n return false;\n}\n\nfunction readSingleQuotedScalar(state, nodeIndent) {\n var ch,\n captureStart, captureEnd;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x27/* ' */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x27/* ' */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x27/* ' */) {\n captureStart = state.position;\n state.position++;\n captureEnd = state.position;\n } else {\n return true;\n }\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a single quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a single quoted scalar');\n}\n\nfunction readDoubleQuotedScalar(state, nodeIndent) {\n var captureStart,\n captureEnd,\n hexLength,\n hexResult,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x22/* \" */) {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n state.position++;\n captureStart = captureEnd = state.position;\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n if (ch === 0x22/* \" */) {\n captureSegment(state, captureStart, state.position, true);\n state.position++;\n return true;\n\n } else if (ch === 0x5C/* \\ */) {\n captureSegment(state, captureStart, state.position, true);\n ch = state.input.charCodeAt(++state.position);\n\n if (is_EOL(ch)) {\n skipSeparationSpace(state, false, nodeIndent);\n\n // TODO: rework to inline fn with no type cast?\n } else if (ch < 256 && simpleEscapeCheck[ch]) {\n state.result += simpleEscapeMap[ch];\n state.position++;\n\n } else if ((tmp = escapedHexLen(ch)) > 0) {\n hexLength = tmp;\n hexResult = 0;\n\n for (; hexLength > 0; hexLength--) {\n ch = state.input.charCodeAt(++state.position);\n\n if ((tmp = fromHexCode(ch)) >= 0) {\n hexResult = (hexResult << 4) + tmp;\n\n } else {\n throwError(state, 'expected hexadecimal character');\n }\n }\n\n state.result += charFromCodepoint(hexResult);\n\n state.position++;\n\n } else {\n throwError(state, 'unknown escape sequence');\n }\n\n captureStart = captureEnd = state.position;\n\n } else if (is_EOL(ch)) {\n captureSegment(state, captureStart, captureEnd, true);\n writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent));\n captureStart = captureEnd = state.position;\n\n } else if (state.position === state.lineStart && testDocumentSeparator(state)) {\n throwError(state, 'unexpected end of the document within a double quoted scalar');\n\n } else {\n state.position++;\n captureEnd = state.position;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a double quoted scalar');\n}\n\nfunction readFlowCollection(state, nodeIndent) {\n var readNext = true,\n _line,\n _tag = state.tag,\n _result,\n _anchor = state.anchor,\n following,\n terminator,\n isPair,\n isExplicitPair,\n isMapping,\n overridableKeys = {},\n keyNode,\n keyTag,\n valueNode,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x5B/* [ */) {\n terminator = 0x5D;/* ] */\n isMapping = false;\n _result = [];\n } else if (ch === 0x7B/* { */) {\n terminator = 0x7D;/* } */\n isMapping = true;\n _result = {};\n } else {\n return false;\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n while (ch !== 0) {\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === terminator) {\n state.position++;\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = isMapping ? 'mapping' : 'sequence';\n state.result = _result;\n return true;\n } else if (!readNext) {\n throwError(state, 'missed comma between flow collection entries');\n }\n\n keyTag = keyNode = valueNode = null;\n isPair = isExplicitPair = false;\n\n if (ch === 0x3F/* ? */) {\n following = state.input.charCodeAt(state.position + 1);\n\n if (is_WS_OR_EOL(following)) {\n isPair = isExplicitPair = true;\n state.position++;\n skipSeparationSpace(state, true, nodeIndent);\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n keyTag = state.tag;\n keyNode = state.result;\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) {\n isPair = true;\n ch = state.input.charCodeAt(++state.position);\n skipSeparationSpace(state, true, nodeIndent);\n composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true);\n valueNode = state.result;\n }\n\n if (isMapping) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode);\n } else if (isPair) {\n _result.push(storeMappingPair(state, null, overridableKeys, keyTag, keyNode, valueNode));\n } else {\n _result.push(keyNode);\n }\n\n skipSeparationSpace(state, true, nodeIndent);\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x2C/* , */) {\n readNext = true;\n ch = state.input.charCodeAt(++state.position);\n } else {\n readNext = false;\n }\n }\n\n throwError(state, 'unexpected end of the stream within a flow collection');\n}\n\nfunction readBlockScalar(state, nodeIndent) {\n var captureStart,\n folding,\n chomping = CHOMPING_CLIP,\n didReadContent = false,\n detectedIndent = false,\n textIndent = nodeIndent,\n emptyLines = 0,\n atMoreIndented = false,\n tmp,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch === 0x7C/* | */) {\n folding = false;\n } else if (ch === 0x3E/* > */) {\n folding = true;\n } else {\n return false;\n }\n\n state.kind = 'scalar';\n state.result = '';\n\n while (ch !== 0) {\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x2B/* + */ || ch === 0x2D/* - */) {\n if (CHOMPING_CLIP === chomping) {\n chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP;\n } else {\n throwError(state, 'repeat of a chomping mode identifier');\n }\n\n } else if ((tmp = fromDecimalCode(ch)) >= 0) {\n if (tmp === 0) {\n throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one');\n } else if (!detectedIndent) {\n textIndent = nodeIndent + tmp - 1;\n detectedIndent = true;\n } else {\n throwError(state, 'repeat of an indentation width identifier');\n }\n\n } else {\n break;\n }\n }\n\n if (is_WHITE_SPACE(ch)) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (is_WHITE_SPACE(ch));\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (!is_EOL(ch) && (ch !== 0));\n }\n }\n\n while (ch !== 0) {\n readLineBreak(state);\n state.lineIndent = 0;\n\n ch = state.input.charCodeAt(state.position);\n\n while ((!detectedIndent || state.lineIndent < textIndent) &&\n (ch === 0x20/* Space */)) {\n state.lineIndent++;\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (!detectedIndent && state.lineIndent > textIndent) {\n textIndent = state.lineIndent;\n }\n\n if (is_EOL(ch)) {\n emptyLines++;\n continue;\n }\n\n // End of the scalar.\n if (state.lineIndent < textIndent) {\n\n // Perform the chomping.\n if (chomping === CHOMPING_KEEP) {\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n } else if (chomping === CHOMPING_CLIP) {\n if (didReadContent) { // i.e. only if the scalar is not empty.\n state.result += '\\n';\n }\n }\n\n // Break this `while` cycle and go to the funciton's epilogue.\n break;\n }\n\n // Folded style: use fancy rules to handle line breaks.\n if (folding) {\n\n // Lines starting with white space characters (more-indented lines) are not folded.\n if (is_WHITE_SPACE(ch)) {\n atMoreIndented = true;\n // except for the first content line (cf. Example 8.1)\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n\n // End of more-indented block.\n } else if (atMoreIndented) {\n atMoreIndented = false;\n state.result += common.repeat('\\n', emptyLines + 1);\n\n // Just one line break - perceive as the same line.\n } else if (emptyLines === 0) {\n if (didReadContent) { // i.e. only if we have already read some scalar content.\n state.result += ' ';\n }\n\n // Several line breaks - perceive as different lines.\n } else {\n state.result += common.repeat('\\n', emptyLines);\n }\n\n // Literal style: just add exact number of line breaks between content lines.\n } else {\n // Keep all line breaks except the header line break.\n state.result += common.repeat('\\n', didReadContent ? 1 + emptyLines : emptyLines);\n }\n\n didReadContent = true;\n detectedIndent = true;\n emptyLines = 0;\n captureStart = state.position;\n\n while (!is_EOL(ch) && (ch !== 0)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n captureSegment(state, captureStart, state.position, false);\n }\n\n return true;\n}\n\nfunction readBlockSequence(state, nodeIndent) {\n var _line,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = [],\n following,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n\n if (ch !== 0x2D/* - */) {\n break;\n }\n\n following = state.input.charCodeAt(state.position + 1);\n\n if (!is_WS_OR_EOL(following)) {\n break;\n }\n\n detected = true;\n state.position++;\n\n if (skipSeparationSpace(state, true, -1)) {\n if (state.lineIndent <= nodeIndent) {\n _result.push(null);\n ch = state.input.charCodeAt(state.position);\n continue;\n }\n }\n\n _line = state.line;\n composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true);\n _result.push(state.result);\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) {\n throwError(state, 'bad indentation of a sequence entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'sequence';\n state.result = _result;\n return true;\n }\n return false;\n}\n\nfunction readBlockMapping(state, nodeIndent, flowIndent) {\n var following,\n allowCompact,\n _line,\n _pos,\n _tag = state.tag,\n _anchor = state.anchor,\n _result = {},\n overridableKeys = {},\n keyTag = null,\n keyNode = null,\n valueNode = null,\n atExplicitKey = false,\n detected = false,\n ch;\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = _result;\n }\n\n ch = state.input.charCodeAt(state.position);\n\n while (ch !== 0) {\n following = state.input.charCodeAt(state.position + 1);\n _line = state.line; // Save the current line.\n _pos = state.position;\n\n //\n // Explicit notation case. There are two separate blocks:\n // first for the key (denoted by \"?\") and second for the value (denoted by \":\")\n //\n if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) {\n\n if (ch === 0x3F/* ? */) {\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = true;\n allowCompact = true;\n\n } else if (atExplicitKey) {\n // i.e. 0x3A/* : */ === character after the explicit key.\n atExplicitKey = false;\n allowCompact = true;\n\n } else {\n throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line');\n }\n\n state.position += 1;\n ch = following;\n\n //\n // Implicit notation case. Flow-style node as the key first, then \":\", and the value.\n //\n } else if (composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) {\n\n if (state.line === _line) {\n ch = state.input.charCodeAt(state.position);\n\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x3A/* : */) {\n ch = state.input.charCodeAt(++state.position);\n\n if (!is_WS_OR_EOL(ch)) {\n throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping');\n }\n\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n keyTag = keyNode = valueNode = null;\n }\n\n detected = true;\n atExplicitKey = false;\n allowCompact = false;\n keyTag = state.tag;\n keyNode = state.result;\n\n } else if (detected) {\n throwError(state, 'can not read an implicit mapping pair; a colon is missed');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else if (detected) {\n throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key');\n\n } else {\n state.tag = _tag;\n state.anchor = _anchor;\n return true; // Keep the result of `composeNode`.\n }\n\n } else {\n break; // Reading is done. Go to the epilogue.\n }\n\n //\n // Common reading code for both explicit and implicit notations.\n //\n if (state.line === _line || state.lineIndent > nodeIndent) {\n if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) {\n if (atExplicitKey) {\n keyNode = state.result;\n } else {\n valueNode = state.result;\n }\n }\n\n if (!atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _pos);\n keyTag = keyNode = valueNode = null;\n }\n\n skipSeparationSpace(state, true, -1);\n ch = state.input.charCodeAt(state.position);\n }\n\n if (state.lineIndent > nodeIndent && (ch !== 0)) {\n throwError(state, 'bad indentation of a mapping entry');\n } else if (state.lineIndent < nodeIndent) {\n break;\n }\n }\n\n //\n // Epilogue.\n //\n\n // Special case: last mapping's node contains only the key in explicit notation.\n if (atExplicitKey) {\n storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null);\n }\n\n // Expose the resulting mapping.\n if (detected) {\n state.tag = _tag;\n state.anchor = _anchor;\n state.kind = 'mapping';\n state.result = _result;\n }\n\n return detected;\n}\n\nfunction readTagProperty(state) {\n var _position,\n isVerbatim = false,\n isNamed = false,\n tagHandle,\n tagName,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x21/* ! */) return false;\n\n if (state.tag !== null) {\n throwError(state, 'duplication of a tag property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n\n if (ch === 0x3C/* < */) {\n isVerbatim = true;\n ch = state.input.charCodeAt(++state.position);\n\n } else if (ch === 0x21/* ! */) {\n isNamed = true;\n tagHandle = '!!';\n ch = state.input.charCodeAt(++state.position);\n\n } else {\n tagHandle = '!';\n }\n\n _position = state.position;\n\n if (isVerbatim) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && ch !== 0x3E/* > */);\n\n if (state.position < state.length) {\n tagName = state.input.slice(_position, state.position);\n ch = state.input.charCodeAt(++state.position);\n } else {\n throwError(state, 'unexpected end of the stream within a verbatim tag');\n }\n } else {\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n\n if (ch === 0x21/* ! */) {\n if (!isNamed) {\n tagHandle = state.input.slice(_position - 1, state.position + 1);\n\n if (!PATTERN_TAG_HANDLE.test(tagHandle)) {\n throwError(state, 'named tag handle cannot contain such characters');\n }\n\n isNamed = true;\n _position = state.position + 1;\n } else {\n throwError(state, 'tag suffix cannot contain exclamation marks');\n }\n }\n\n ch = state.input.charCodeAt(++state.position);\n }\n\n tagName = state.input.slice(_position, state.position);\n\n if (PATTERN_FLOW_INDICATORS.test(tagName)) {\n throwError(state, 'tag suffix cannot contain flow indicator characters');\n }\n }\n\n if (tagName && !PATTERN_TAG_URI.test(tagName)) {\n throwError(state, 'tag name cannot contain such characters: ' + tagName);\n }\n\n if (isVerbatim) {\n state.tag = tagName;\n\n } else if (_hasOwnProperty.call(state.tagMap, tagHandle)) {\n state.tag = state.tagMap[tagHandle] + tagName;\n\n } else if (tagHandle === '!') {\n state.tag = '!' + tagName;\n\n } else if (tagHandle === '!!') {\n state.tag = 'tag:yaml.org,2002:' + tagName;\n\n } else {\n throwError(state, 'undeclared tag handle \"' + tagHandle + '\"');\n }\n\n return true;\n}\n\nfunction readAnchorProperty(state) {\n var _position,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x26/* & */) return false;\n\n if (state.anchor !== null) {\n throwError(state, 'duplication of an anchor property');\n }\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an anchor node must contain at least one character');\n }\n\n state.anchor = state.input.slice(_position, state.position);\n return true;\n}\n\nfunction readAlias(state) {\n var _position, alias,\n ch;\n\n ch = state.input.charCodeAt(state.position);\n\n if (ch !== 0x2A/* * */) return false;\n\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (state.position === _position) {\n throwError(state, 'name of an alias node must contain at least one character');\n }\n\n alias = state.input.slice(_position, state.position);\n\n if (!_hasOwnProperty.call(state.anchorMap, alias)) {\n throwError(state, 'unidentified alias \"' + alias + '\"');\n }\n\n state.result = state.anchorMap[alias];\n skipSeparationSpace(state, true, -1);\n return true;\n}\n\nfunction composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) {\n var allowBlockStyles,\n allowBlockScalars,\n allowBlockCollections,\n indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this<parent\n atNewLine = false,\n hasContent = false,\n typeIndex,\n typeQuantity,\n type,\n flowIndent,\n blockIndent;\n\n if (state.listener !== null) {\n state.listener('open', state);\n }\n\n state.tag = null;\n state.anchor = null;\n state.kind = null;\n state.result = null;\n\n allowBlockStyles = allowBlockScalars = allowBlockCollections =\n CONTEXT_BLOCK_OUT === nodeContext ||\n CONTEXT_BLOCK_IN === nodeContext;\n\n if (allowToSeek) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n }\n }\n\n if (indentStatus === 1) {\n while (readTagProperty(state) || readAnchorProperty(state)) {\n if (skipSeparationSpace(state, true, -1)) {\n atNewLine = true;\n allowBlockCollections = allowBlockStyles;\n\n if (state.lineIndent > parentIndent) {\n indentStatus = 1;\n } else if (state.lineIndent === parentIndent) {\n indentStatus = 0;\n } else if (state.lineIndent < parentIndent) {\n indentStatus = -1;\n }\n } else {\n allowBlockCollections = false;\n }\n }\n }\n\n if (allowBlockCollections) {\n allowBlockCollections = atNewLine || allowCompact;\n }\n\n if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) {\n if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) {\n flowIndent = parentIndent;\n } else {\n flowIndent = parentIndent + 1;\n }\n\n blockIndent = state.position - state.lineStart;\n\n if (indentStatus === 1) {\n if (allowBlockCollections &&\n (readBlockSequence(state, blockIndent) ||\n readBlockMapping(state, blockIndent, flowIndent)) ||\n readFlowCollection(state, flowIndent)) {\n hasContent = true;\n } else {\n if ((allowBlockScalars && readBlockScalar(state, flowIndent)) ||\n readSingleQuotedScalar(state, flowIndent) ||\n readDoubleQuotedScalar(state, flowIndent)) {\n hasContent = true;\n\n } else if (readAlias(state)) {\n hasContent = true;\n\n if (state.tag !== null || state.anchor !== null) {\n throwError(state, 'alias node should not have any properties');\n }\n\n } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) {\n hasContent = true;\n\n if (state.tag === null) {\n state.tag = '?';\n }\n }\n\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else if (indentStatus === 0) {\n // Special case: block sequences are allowed to have same indentation level as the parent.\n // http://www.yaml.org/spec/1.2/spec.html#id2799784\n hasContent = allowBlockCollections && readBlockSequence(state, blockIndent);\n }\n }\n\n if (state.tag !== null && state.tag !== '!') {\n if (state.tag === '?') {\n // Implicit resolving is not allowed for non-scalar types, and '?'\n // non-specific tag is only automatically assigned to plain scalars.\n //\n // We only need to check kind conformity in case user explicitly assigns '?'\n // tag, for example like this: \"!<?> [0]\"\n //\n if (state.result !== null && state.kind !== 'scalar') {\n throwError(state, 'unacceptable node kind for !<?> tag; it should be \"scalar\", not \"' + state.kind + '\"');\n }\n\n for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) {\n type = state.implicitTypes[typeIndex];\n\n if (type.resolve(state.result)) { // `state.result` updated in resolver if matched\n state.result = type.construct(state.result);\n state.tag = type.tag;\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n break;\n }\n }\n } else if (_hasOwnProperty.call(state.typeMap[state.kind || 'fallback'], state.tag)) {\n type = state.typeMap[state.kind || 'fallback'][state.tag];\n\n if (state.result !== null && type.kind !== state.kind) {\n throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be \"' + type.kind + '\", not \"' + state.kind + '\"');\n }\n\n if (!type.resolve(state.result)) { // `state.result` updated in resolver if matched\n throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag');\n } else {\n state.result = type.construct(state.result);\n if (state.anchor !== null) {\n state.anchorMap[state.anchor] = state.result;\n }\n }\n } else {\n throwError(state, 'unknown tag !<' + state.tag + '>');\n }\n }\n\n if (state.listener !== null) {\n state.listener('close', state);\n }\n return state.tag !== null || state.anchor !== null || hasContent;\n}\n\nfunction readDocument(state) {\n var documentStart = state.position,\n _position,\n directiveName,\n directiveArgs,\n hasDirectives = false,\n ch;\n\n state.version = null;\n state.checkLineBreaks = state.legacy;\n state.tagMap = {};\n state.anchorMap = {};\n\n while ((ch = state.input.charCodeAt(state.position)) !== 0) {\n skipSeparationSpace(state, true, -1);\n\n ch = state.input.charCodeAt(state.position);\n\n if (state.lineIndent > 0 || ch !== 0x25/* % */) {\n break;\n }\n\n hasDirectives = true;\n ch = state.input.charCodeAt(++state.position);\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveName = state.input.slice(_position, state.position);\n directiveArgs = [];\n\n if (directiveName.length < 1) {\n throwError(state, 'directive name must not be less than one character in length');\n }\n\n while (ch !== 0) {\n while (is_WHITE_SPACE(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n if (ch === 0x23/* # */) {\n do { ch = state.input.charCodeAt(++state.position); }\n while (ch !== 0 && !is_EOL(ch));\n break;\n }\n\n if (is_EOL(ch)) break;\n\n _position = state.position;\n\n while (ch !== 0 && !is_WS_OR_EOL(ch)) {\n ch = state.input.charCodeAt(++state.position);\n }\n\n directiveArgs.push(state.input.slice(_position, state.position));\n }\n\n if (ch !== 0) readLineBreak(state);\n\n if (_hasOwnProperty.call(directiveHandlers, directiveName)) {\n directiveHandlers[directiveName](state, directiveName, directiveArgs);\n } else {\n throwWarning(state, 'unknown document directive \"' + directiveName + '\"');\n }\n }\n\n skipSeparationSpace(state, true, -1);\n\n if (state.lineIndent === 0 &&\n state.input.charCodeAt(state.position) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 1) === 0x2D/* - */ &&\n state.input.charCodeAt(state.position + 2) === 0x2D/* - */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n\n } else if (hasDirectives) {\n throwError(state, 'directives end mark is expected');\n }\n\n composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true);\n skipSeparationSpace(state, true, -1);\n\n if (state.checkLineBreaks &&\n PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) {\n throwWarning(state, 'non-ASCII line breaks are interpreted as content');\n }\n\n state.documents.push(state.result);\n\n if (state.position === state.lineStart && testDocumentSeparator(state)) {\n\n if (state.input.charCodeAt(state.position) === 0x2E/* . */) {\n state.position += 3;\n skipSeparationSpace(state, true, -1);\n }\n return;\n }\n\n if (state.position < (state.length - 1)) {\n throwError(state, 'end of the stream or a document separator is expected');\n } else {\n return;\n }\n}\n\n\nfunction loadDocuments(input, options) {\n input = String(input);\n options = options || {};\n\n if (input.length !== 0) {\n\n // Add tailing `\\n` if not exists\n if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ &&\n input.charCodeAt(input.length - 1) !== 0x0D/* CR */) {\n input += '\\n';\n }\n\n // Strip BOM\n if (input.charCodeAt(0) === 0xFEFF) {\n input = input.slice(1);\n }\n }\n\n var state = new State(input, options);\n\n var nullpos = input.indexOf('\\0');\n\n if (nullpos !== -1) {\n state.position = nullpos;\n throwError(state, 'null byte is not allowed in input');\n }\n\n // Use 0 as string terminator. That significantly simplifies bounds check.\n state.input += '\\0';\n\n while (state.input.charCodeAt(state.position) === 0x20/* Space */) {\n state.lineIndent += 1;\n state.position += 1;\n }\n\n while (state.position < (state.length - 1)) {\n readDocument(state);\n }\n\n return state.documents;\n}\n\n\nfunction loadAll(input, iterator, options) {\n if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n var documents = loadDocuments(input, options);\n\n if (typeof iterator !== 'function') {\n return documents;\n }\n\n for (var index = 0, length = documents.length; index < length; index += 1) {\n iterator(documents[index]);\n }\n}\n\n\nfunction load(input, options) {\n var documents = loadDocuments(input, options);\n\n if (documents.length === 0) {\n /*eslint-disable no-undefined*/\n return undefined;\n } else if (documents.length === 1) {\n return documents[0];\n }\n throw new YAMLException('expected a single document in the stream, but found more');\n}\n\n\nfunction safeLoadAll(input, iterator, options) {\n if (typeof iterator === 'object' && iterator !== null && typeof options === 'undefined') {\n options = iterator;\n iterator = null;\n }\n\n return loadAll(input, iterator, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nfunction safeLoad(input, options) {\n return load(input, common.extend({ schema: DEFAULT_SAFE_SCHEMA }, options));\n}\n\n\nmodule.exports.loadAll = loadAll;\nmodule.exports.load = load;\nmodule.exports.safeLoadAll = safeLoadAll;\nmodule.exports.safeLoad = safeLoad;\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('timeline-entry-item',{staticClass:\"note note-wrapper note-comment being-posted fade-in-half\",class:_vm.internalNoteClass},[_c('div',{staticClass:\"timeline-avatar gl-float-left\"},[_c('gl-avatar-link',{attrs:{\"href\":_vm.getUserData.path}},[_c('gl-avatar',{attrs:{\"src\":_vm.getUserData.avatar_url,\"entity-name\":_vm.getUserData.username,\"alt\":_vm.getUserData.name,\"size\":32}})],1)],1),_vm._v(\" \"),_c('div',{ref:\"note\",staticClass:\"timeline-content\",class:{ discussion: !_vm.note.individual_note }},[_c('div',{staticClass:\"note-header\"},[_c('div',{staticClass:\"note-header-info\"},[_c('a',{attrs:{\"href\":_vm.getUserData.path}},[_c('span',{staticClass:\"gl-hidden gl-font-bold sm:gl-inline-block\"},[_vm._v(_vm._s(_vm.getUserData.name))]),_vm._v(\" \"),_c('span',{staticClass:\"note-headline-light\"},[_vm._v(\"@\"+_vm._s(_vm.getUserData.username))])])])]),_vm._v(\" \"),_c('div',{staticClass:\"timeline-discussion-body\"},[_c('div',{staticClass:\"note-body\"},[_c('div',{directives:[{name:\"safe-html\",rawName:\"v-safe-html\",value:(_vm.renderedNote),expression:\"renderedNote\"}],staticClass:\"note-text md\"})])])])])\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!./placeholder_note.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!./placeholder_note.vue?vue&type=script&lang=js\"","<script>\n/**\n * Common component to render a placeholder note and user information.\n *\n * This component needs to be used with a vuex store.\n * That vuex store needs to have a `getUserData` getter that contains\n * {\n * path: String,\n * avatar_url: String,\n * name: String,\n * username: String,\n * }\n *\n * @example\n * <placeholder-note\n * :note=\"{body: 'This is a note'}\"\n * />\n */\nimport { GlAvatarLink, GlAvatar } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapGetters } from 'vuex';\nimport SafeHtml from '~/vue_shared/directives/safe_html';\nimport { renderMarkdown } from '~/notes/utils';\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\n\nexport default {\n name: 'PlaceholderNote',\n directives: { SafeHtml },\n components: {\n GlAvatarLink,\n GlAvatar,\n TimelineEntryItem,\n },\n props: {\n note: {\n type: Object,\n required: true,\n },\n line: {\n type: Object,\n required: false,\n default: null,\n },\n isOverviewTab: {\n type: Boolean,\n required: false,\n default: false,\n },\n internalNote: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n ...mapGetters(['getUserData']),\n renderedNote() {\n return renderMarkdown(this.note.body);\n },\n internalNoteClass() {\n return {\n 'internal-note': this.internalNote,\n };\n },\n },\n};\n</script>\n\n<template>\n <timeline-entry-item\n class=\"note note-wrapper note-comment being-posted fade-in-half\"\n :class=\"internalNoteClass\"\n >\n <div class=\"timeline-avatar gl-float-left\">\n <gl-avatar-link :href=\"getUserData.path\">\n <gl-avatar\n :src=\"getUserData.avatar_url\"\n :entity-name=\"getUserData.username\"\n :alt=\"getUserData.name\"\n :size=\"32\"\n />\n </gl-avatar-link>\n </div>\n <div ref=\"note\" :class=\"{ discussion: !note.individual_note }\" class=\"timeline-content\">\n <div class=\"note-header\">\n <div class=\"note-header-info\">\n <a :href=\"getUserData.path\">\n <span class=\"gl-hidden gl-font-bold sm:gl-inline-block\">{{ getUserData.name }}</span>\n <span class=\"note-headline-light\">@{{ getUserData.username }}</span>\n </a>\n </div>\n </div>\n <div class=\"timeline-discussion-body\">\n <div class=\"note-body\">\n <div v-safe-html=\"renderedNote\" class=\"note-text md\"></div>\n </div>\n </div>\n </div>\n </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./placeholder_note.vue?vue&type=template&id=b3280ce2\"\nimport script from \"./placeholder_note.vue?vue&type=script&lang=js\"\nexport * from \"./placeholder_note.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 { extend } from '../../../vue';\nimport { PROP_TYPE_STRING } from '../../../constants/props';\nimport { SLOT_NAME_TABLE_CAPTION } from '../../../constants/slots';\nimport { htmlOrText } from '../../../utils/html';\nimport { makeProp } from '../../../utils/props';\n\n// --- Props ---\n\nconst props = {\n caption: makeProp(PROP_TYPE_STRING),\n captionHtml: makeProp(PROP_TYPE_STRING)\n // `caption-top` is part of table-render mixin (styling)\n // captionTop: makeProp(PROP_TYPE_BOOLEAN, false)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst captionMixin = extend({\n props,\n computed: {\n captionId() {\n return this.isStacked ? this.safeId('_caption_') : null;\n }\n },\n methods: {\n renderCaption() {\n const {\n caption,\n captionHtml\n } = this;\n const h = this.$createElement;\n let $caption = h();\n const hasCaptionSlot = this.hasNormalizedSlot(SLOT_NAME_TABLE_CAPTION);\n if (hasCaptionSlot || caption || captionHtml) {\n $caption = h('caption', {\n attrs: {\n id: this.captionId\n },\n domProps: hasCaptionSlot ? {} : htmlOrText(captionHtml, caption),\n key: 'caption',\n ref: 'caption'\n }, this.normalizeSlot(SLOT_NAME_TABLE_CAPTION));\n }\n return $caption;\n }\n }\n});\n\nexport { captionMixin, props };\n","function empty() {\n return [];\n}\n\nexport default function(selector) {\n return selector == null ? empty : function() {\n return this.querySelectorAll(selector);\n };\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-editable-item',{ref:\"editable\",attrs:{\"title\":_vm.attributeTypeTitle,\"data-testid\":`${_vm.formatIssuableAttribute.kebab}-edit`,\"button-id\":`${_vm.formatIssuableAttribute.kebab}-edit`,\"tracking\":_vm.tracking,\"should-show-confirmation-popover\":_vm.shouldShowConfirmationPopover,\"loading\":_vm.updating || _vm.loading},on:{\"open\":_vm.showDropdown,\"edit-confirm\":_vm.handleEditConfirmation},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_vm._t(\"value-collapsed\",function(){return [(_vm.isClassicSidebar)?_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.attributeTypeTitle}},[_c('gl-icon',{attrs:{\"aria-label\":_vm.attributeTypeTitle,\"name\":_vm.attributeTypeIcon}}),_vm._v(\" \"),_c('span',{staticClass:\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.attributeTitle)+\"\\n \")])],1):_vm._e()]},{\"currentAttribute\":_vm.currentAttribute}),_vm._v(\" \"),_c('div',{class:_vm.isClassicSidebar ? 'hide-collapsed' : 'gl-mt-3',attrs:{\"data-testid\":`select-${_vm.formatIssuableAttribute.kebab}`}},[(_vm.updating)?_c('span',[_vm._v(_vm._s(_vm.selectedTitle))]):(!_vm.currentAttribute && _vm.hasCurrentAttribute)?[_c('gl-icon',{attrs:{\"name\":\"warning\",\"variant\":\"warning\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.i18n.noPermissionToView))])]:(!_vm.currentAttribute)?_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.none)+\"\\n \")]):_vm._t(\"value\",function(){return [_c('gl-link',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\",value:(_vm.tooltipText),expression:\"tooltipText\"}],staticClass:\"gl-text-inherit hover:gl-text-blue-800\",attrs:{\"href\":_vm.attributeUrl,\"data-testid\":`${_vm.formatIssuableAttribute.kebab}-link`}},[_vm._v(\"\\n \"+_vm._s(_vm.attributeTitle)+\"\\n \"),(_vm.isAttributeOverdue(_vm.currentAttribute))?_c('span',[_vm._v(_vm._s(_vm.$options.i18n.expired))]):_vm._e()])]},{\"attributeTitle\":_vm.attributeTitle,\"attributeUrl\":_vm.attributeUrl,\"currentAttribute\":_vm.currentAttribute})],2)]},proxy:true},(_vm.shouldShowConfirmationPopover)?{key:\"default\",fn:function({ toggle }){return [_c('gl-popover',{ref:\"popover\",attrs:{\"target\":`${_vm.formatIssuableAttribute.kebab}-edit`,\"placement\":\"bottomleft\",\"boundary\":\"viewport\",\"triggers\":\"click\"}},[_c('div',{staticClass:\"gl-mb-4 gl-text-base\"},[_vm._v(\"\\n \"+_vm._s(_vm.i18n.editConfirmation)+\"\\n \")]),_vm._v(\" \"),_c('div',{staticClass:\"gl-flex gl-items-center\"},[_c('gl-button',{attrs:{\"size\":\"small\",\"variant\":\"confirm\",\"category\":\"primary\",\"data-testid\":\"confirm-edit-cta\"},on:{\"click\":function($event){$event.preventDefault();return (() => _vm.handlePopoverConfirm(toggle)).apply(null, arguments)}}},[_vm._v(_vm._s(_vm.i18n.editConfirmationCta))]),_vm._v(\" \"),_c('gl-button',{staticClass:\"gl-ml-auto\",attrs:{\"size\":\"small\",\"name\":\"cancel\",\"variant\":\"default\",\"category\":\"primary\",\"data-testid\":\"confirm-edit-cancel\"},on:{\"click\":function($event){$event.preventDefault();return _vm.handlePopoverClose.apply(null, arguments)}}},[_vm._v(_vm._s(_vm.i18n.editConfirmationCancel))])],1)])]}}:{key:\"default\",fn:function(){return [_c('sidebar-dropdown',{ref:\"dropdown\",attrs:{\"attr-workspace-path\":_vm.attrWorkspacePath,\"current-attribute\":_vm.currentAttribute,\"issuable-attribute\":_vm.issuableAttribute,\"issuable-type\":_vm.issuableType,\"show-work-item-epics\":_vm.showWorkItemEpics},on:{\"change\":_vm.updateAttribute},scopedSlots:_vm._u([{key:\"list\",fn:function({ attributesList, isAttributeChecked, updateAttribute: update }){return [_vm._t(\"list\",null,{\"attributesList\":attributesList,\"isAttributeChecked\":isAttributeChecked,\"updateAttribute\":update})]}}],null,true)})]},proxy:true}],null,true)})\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!./sidebar_dropdown_widget.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!./sidebar_dropdown_widget.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlIcon, GlLink, GlPopover, GlTooltipDirective } from '@gitlab/ui';\nimport { kebabCase, snakeCase } from 'lodash';\nimport { createAlert } from '~/alert';\nimport { getIdFromGraphQLId } from '~/graphql_shared/utils';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { timeFor } from '~/lib/utils/datetime_utility';\nimport { __ } from '~/locale';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\n\nimport {\n dropdowni18nText,\n LocalizedIssuableAttributeType,\n IssuableAttributeTypeKeyMap,\n IssuableAttributeType,\n Tracking,\n} from 'ee_else_ce/sidebar/constants';\nimport { issuableAttributesQueries } from 'ee_else_ce/sidebar/queries/constants';\nimport SidebarDropdown from './sidebar_dropdown.vue';\nimport SidebarEditableItem from './sidebar_editable_item.vue';\n\nexport default {\n i18n: {\n expired: __('(expired)'),\n none: __('None'),\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlLink,\n GlIcon,\n GlPopover,\n GlButton,\n SidebarDropdown,\n SidebarEditableItem,\n },\n mixins: [glFeatureFlagMixin()],\n inject: {\n isClassicSidebar: {\n default: false,\n },\n issuableAttributesQueries: {\n default: issuableAttributesQueries,\n },\n widgetTitleText: {\n default: {\n [IssuableAttributeType.Milestone]: __('Milestone'),\n expired: __('(expired)'),\n none: __('None'),\n },\n },\n },\n props: {\n issuableAttribute: {\n type: String,\n required: true,\n },\n workspacePath: {\n required: true,\n type: String,\n },\n iid: {\n required: true,\n type: String,\n },\n attrWorkspacePath: {\n required: true,\n type: String,\n },\n issuableType: {\n type: String,\n required: true,\n validator(value) {\n return [TYPE_ISSUE, TYPE_MERGE_REQUEST].includes(value);\n },\n },\n icon: {\n type: String,\n required: false,\n default: undefined,\n },\n showWorkItemEpics: {\n type: Boolean,\n required: false,\n default: false,\n },\n isEpicAttribute: {\n type: Boolean,\n required: false,\n default: false,\n },\n issuableParent: {\n type: Object,\n required: false,\n default: null,\n },\n },\n apollo: {\n issuable: {\n query() {\n const { current } = this.issuableAttributeQuery;\n const { query } = current[this.issuableType];\n\n return query;\n },\n variables() {\n return {\n fullPath: this.workspacePath,\n iid: this.iid,\n };\n },\n update(data) {\n return data.workspace?.issuable || {};\n },\n result({ data }) {\n if (this.glFeatures?.epicWidgetEditConfirmation && this.isEpicAttribute) {\n this.hasCurrentAttribute = data?.workspace?.issuable.hasEpic;\n }\n },\n skip() {\n return !this.iid;\n },\n error(error) {\n createAlert({\n message: this.i18n.currentFetchError,\n captureError: true,\n error,\n });\n },\n subscribeToMore: {\n document() {\n return issuableAttributesQueries[this.issuableAttribute].subscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return this.shouldSkipRealTimeEpicLinkUpdates;\n },\n },\n },\n },\n data() {\n return {\n updating: false,\n selectedTitle: null,\n issuable: {},\n hasCurrentAttribute: false,\n editConfirmation: false,\n tracking: {\n event: Tracking.editEvent,\n label: Tracking.rightSidebarLabel,\n property: this.issuableAttribute,\n },\n };\n },\n computed: {\n currentAttribute() {\n if (this.isEpicAttribute && this.issuableParent?.attribute) {\n return this.issuableParent.attribute;\n }\n return this.issuable.attribute;\n },\n issuableId() {\n return this.issuable.id;\n },\n issuableAttributeQuery() {\n return this.issuableAttributesQueries[this.issuableAttribute];\n },\n attributeTitle() {\n return this.currentAttribute?.title || __('None');\n },\n attributeUrl() {\n return this.currentAttribute?.webUrl;\n },\n loading() {\n return this.$apollo.queries.issuable.loading;\n },\n attributeTypeTitle() {\n return this.widgetTitleText[this.issuableAttribute];\n },\n attributeTypeIcon() {\n return this.icon || this.issuableAttribute;\n },\n tooltipText() {\n return timeFor(this.currentAttribute?.dueDate);\n },\n i18n() {\n const localizedAttribute =\n LocalizedIssuableAttributeType[IssuableAttributeTypeKeyMap[this.issuableAttribute]];\n return dropdowni18nText(localizedAttribute, this.issuableType);\n },\n formatIssuableAttribute() {\n return {\n kebab: kebabCase(this.issuableAttribute),\n snake: snakeCase(this.issuableAttribute),\n };\n },\n shouldShowConfirmationPopover() {\n if (!this.glFeatures?.epicWidgetEditConfirmation) {\n return false;\n }\n\n return this.isEpicAttribute && this.currentAttribute === null && this.hasCurrentAttribute\n ? !this.editConfirmation\n : false;\n },\n shouldSkipRealTimeEpicLinkUpdates() {\n return !this.issuableId || this.issuableAttribute !== IssuableAttributeType.Epic;\n },\n },\n methods: {\n updateAttribute({ id, workItemType }) {\n if (this.currentAttribute === null && id === null) return;\n if (id === this.currentAttribute?.id) return;\n\n if (this.showWorkItemEpics && this.isEpicAttribute) {\n this.$emit('updateAttribute', { id, workItemType });\n } else {\n this.updating = true;\n\n const { current } = this.issuableAttributeQuery;\n const { mutation } = current[this.issuableType];\n\n this.$apollo\n .mutate({\n mutation,\n variables: {\n fullPath: this.workspacePath,\n attributeId:\n this.issuableAttribute === IssuableAttributeType.Milestone &&\n this.issuableType === TYPE_ISSUE\n ? getIdFromGraphQLId(id)\n : id,\n iid: this.iid,\n },\n })\n .then(({ data }) => {\n if (data.issuableSetAttribute?.errors?.length) {\n createAlert({\n message: data.issuableSetAttribute.errors[0],\n captureError: true,\n error: data.issuableSetAttribute.errors[0],\n });\n } else {\n this.$emit('attribute-updated', data);\n }\n })\n .catch((error) => {\n createAlert({ message: this.i18n.updateError, captureError: true, error });\n })\n .finally(() => {\n this.updating = false;\n this.selectedTitle = null;\n });\n }\n },\n isAttributeOverdue(attribute) {\n return this.issuableAttribute === IssuableAttributeType.Milestone\n ? attribute?.expired\n : false;\n },\n showDropdown() {\n this.$refs.dropdown.show();\n },\n handlePopoverClose() {\n this.$refs.popover.$emit('close');\n },\n handlePopoverConfirm(cb) {\n this.editConfirmation = true;\n this.handlePopoverClose();\n setTimeout(cb, 0);\n },\n handleEditConfirmation() {\n this.$refs.popover.$emit('open');\n },\n },\n};\n</script>\n\n<template>\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"attributeTypeTitle\"\n :data-testid=\"`${formatIssuableAttribute.kebab}-edit`\"\n :button-id=\"`${formatIssuableAttribute.kebab}-edit`\"\n :tracking=\"tracking\"\n :should-show-confirmation-popover=\"shouldShowConfirmationPopover\"\n :loading=\"updating || loading\"\n @open=\"showDropdown\"\n @edit-confirm=\"handleEditConfirmation\"\n >\n <template #collapsed>\n <slot name=\"value-collapsed\" :current-attribute=\"currentAttribute\">\n <div\n v-if=\"isClassicSidebar\"\n v-gl-tooltip.left.viewport\n :title=\"attributeTypeTitle\"\n class=\"sidebar-collapsed-icon\"\n >\n <gl-icon :aria-label=\"attributeTypeTitle\" :name=\"attributeTypeIcon\" />\n <span class=\"collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\">\n {{ attributeTitle }}\n </span>\n </div>\n </slot>\n <div\n :data-testid=\"`select-${formatIssuableAttribute.kebab}`\"\n :class=\"isClassicSidebar ? 'hide-collapsed' : 'gl-mt-3'\"\n >\n <span v-if=\"updating\">{{ selectedTitle }}</span>\n <template v-else-if=\"!currentAttribute && hasCurrentAttribute\">\n <gl-icon name=\"warning\" variant=\"warning\" />\n <span class=\"gl-text-subtle\">{{ i18n.noPermissionToView }}</span>\n </template>\n <span v-else-if=\"!currentAttribute\" class=\"gl-text-subtle\">\n {{ $options.i18n.none }}\n </span>\n <slot\n v-else\n name=\"value\"\n :attribute-title=\"attributeTitle\"\n :attribute-url=\"attributeUrl\"\n :current-attribute=\"currentAttribute\"\n >\n <gl-link\n v-gl-tooltip=\"tooltipText\"\n class=\"gl-text-inherit hover:gl-text-blue-800\"\n :href=\"attributeUrl\"\n :data-testid=\"`${formatIssuableAttribute.kebab}-link`\"\n >\n {{ attributeTitle }}\n <span v-if=\"isAttributeOverdue(currentAttribute)\">{{ $options.i18n.expired }}</span>\n </gl-link>\n </slot>\n </div>\n </template>\n <template v-if=\"shouldShowConfirmationPopover\" #default=\"{ toggle }\">\n <gl-popover\n ref=\"popover\"\n :target=\"`${formatIssuableAttribute.kebab}-edit`\"\n placement=\"bottomleft\"\n boundary=\"viewport\"\n triggers=\"click\"\n >\n <div class=\"gl-mb-4 gl-text-base\">\n {{ i18n.editConfirmation }}\n </div>\n <div class=\"gl-flex gl-items-center\">\n <gl-button\n size=\"small\"\n variant=\"confirm\"\n category=\"primary\"\n data-testid=\"confirm-edit-cta\"\n @click.prevent=\"() => handlePopoverConfirm(toggle)\"\n >{{ i18n.editConfirmationCta }}</gl-button\n >\n <gl-button\n class=\"gl-ml-auto\"\n size=\"small\"\n name=\"cancel\"\n variant=\"default\"\n category=\"primary\"\n data-testid=\"confirm-edit-cancel\"\n @click.prevent=\"handlePopoverClose\"\n >{{ i18n.editConfirmationCancel }}</gl-button\n >\n </div>\n </gl-popover>\n </template>\n <template v-else #default>\n <sidebar-dropdown\n ref=\"dropdown\"\n :attr-workspace-path=\"attrWorkspacePath\"\n :current-attribute=\"currentAttribute\"\n :issuable-attribute=\"issuableAttribute\"\n :issuable-type=\"issuableType\"\n :show-work-item-epics=\"showWorkItemEpics\"\n @change=\"updateAttribute\"\n >\n <template #list=\"{ attributesList, isAttributeChecked, updateAttribute: update }\">\n <slot\n name=\"list\"\n :attributes-list=\"attributesList\"\n :is-attribute-checked=\"isAttributeChecked\"\n :update-attribute=\"update\"\n >\n </slot>\n </template>\n </sidebar-dropdown>\n </template>\n </sidebar-editable-item>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_dropdown_widget.vue?vue&type=template&id=5aba64de\"\nimport script from \"./sidebar_dropdown_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_dropdown_widget.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\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"projectIssueIterationMutation\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IterationID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAttribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetIteration\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iterationId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"iteration\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":354}};\n doc.loc.source = {\"body\":\"mutation projectIssueIterationMutation($fullPath: ID!, $iid: String!, $attributeId: IterationID) {\\n issuableSetAttribute: issueSetIteration(\\n input: { projectPath: $fullPath, iid: $iid, iterationId: $attributeId }\\n ) {\\n errors\\n issuable: issue {\\n id\\n attribute: iteration {\\n title\\n id\\n state\\n }\\n }\\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[\"projectIssueIterationMutation\"] = oneQuery(doc, \"projectIssueIterationMutation\");\n \n","import { clamp } from 'lodash';\nimport {\n ARROW_DOWN_KEY,\n ARROW_UP_KEY,\n END_KEY,\n HOME_KEY,\n ESC_KEY,\n NUMPAD_ENTER_KEY,\n} from '~/lib/utils/keys';\n\nexport default {\n methods: {\n getFocusableOptions() {\n return Array.from(this.$refs.resultsList?.querySelectorAll('.gl-new-dropdown-item') || []);\n },\n onKeydown(event) {\n const { code, target } = event;\n\n let stop = true;\n\n const elements = this.getFocusableOptions();\n if (elements.length < 1) return;\n\n const isSearchInput = target.matches('input[role=\"searchbox\"]');\n\n if (code === HOME_KEY) {\n if (isSearchInput) return;\n\n this.focusItem(0, elements);\n } else if (code === END_KEY) {\n if (isSearchInput) return;\n\n this.focusItem(elements.length - 1, elements);\n } else if (code === ARROW_UP_KEY) {\n if (isSearchInput) return;\n\n if (elements.indexOf(target) === 0) {\n this.focusSearchInput();\n } else {\n this.focusNextItem(event, elements, -1);\n }\n } else if (code === ARROW_DOWN_KEY) {\n this.focusNextItem(event, elements, 1);\n } else if (code === ESC_KEY) {\n this.$refs.modal.close();\n } else if (code === NUMPAD_ENTER_KEY) {\n event.target?.firstChild.click();\n } else {\n stop = false;\n }\n\n if (stop) {\n event.preventDefault();\n }\n },\n focusSearchInput() {\n this.$refs.searchInput.$el.querySelector('input')?.focus();\n },\n focusNextItem(event, elements, offset) {\n const { target } = event;\n const currentIndex = elements.indexOf(target);\n const nextIndex = clamp(currentIndex + offset, 0, elements.length - 1);\n\n this.focusItem(nextIndex, elements);\n },\n focusItem(index, elements) {\n this.nextFocusedItemIndex = index;\n\n elements[index]?.focus();\n },\n },\n};\n","import { s__ } from '~/locale';\n\nexport const NEW_POLICY_BUTTON_TEXT = s__('SecurityOrchestration|New policy');\nexport const PIPELINE_EXECUTION_POLICY_TYPE_HEADER = s__(\n 'SecurityOrchestration|Pipeline execution',\n);\nexport const VULNERABILITY_MANAGEMENT_POLICY_TYPE_HEADER = s__(\n 'SecurityOrchestration|Vulnerability management',\n);\n\nexport const POLICY_TYPE_COMPONENT_OPTIONS = {\n scanExecution: {\n component: 'scan-execution-policy-editor',\n text: s__('SecurityOrchestration|Scan execution'),\n typeName: 'ScanExecutionPolicy',\n urlParameter: 'scan_execution_policy',\n value: 'scanExecution',\n },\n legacyApproval: {\n component: 'scan-result-policy-editor',\n text: s__('SecurityOrchestration|Merge request approval'),\n typeName: 'ScanResultPolicy',\n urlParameter: 'approval_policy',\n value: 'approval',\n },\n approval: {\n // used by Group.approvalPolicies\n component: 'scan-result-policy-editor',\n text: s__('SecurityOrchestration|Merge request approval'),\n typeName: 'ApprovalPolicy',\n urlParameter: 'approval_policy',\n value: 'approval',\n },\n pipelineExecution: {\n component: 'pipeline-execution-policy-editor',\n text: PIPELINE_EXECUTION_POLICY_TYPE_HEADER,\n typeName: 'PipelineExecutionPolicy',\n urlParameter: 'pipeline_execution_policy',\n value: 'pipeline',\n },\n vulnerabilityManagement: {\n component: 'vulnerability-management-policy-editor',\n text: VULNERABILITY_MANAGEMENT_POLICY_TYPE_HEADER,\n typeName: 'VulnerabilityManagementPolicy',\n urlParameter: 'vulnerability_management_policy',\n value: 'vulnerabilityManagement',\n },\n};\n\nexport const POLICIES_LIST_CONTAINER_CLASS = '.js-security-policies-container-wrapper';\n","// Standard YAML's JSON schema.\n// http://www.yaml.org/spec/1.2/spec.html#id2803231\n//\n// NOTE: JS-YAML does not support schema-specific tag resolution restrictions.\n// So, this schema is not such strict as defined in the YAML specification.\n// It allows numbers in binary notaion, use `Null` and `NULL` as `null`, etc.\n\n\n'use strict';\n\n\nvar Schema = require('../schema');\n\n\nmodule.exports = new Schema({\n include: [\n require('./failsafe')\n ],\n implicit: [\n require('../type/null'),\n require('../type/bool'),\n require('../type/int'),\n require('../type/float')\n ]\n});\n","import { getSideAxis, getAlignmentAxis, getAxisLength, getSide, getAlignment, evaluate, getPaddingObject, rectToClientRect, min, clamp, placements, getAlignmentSides, getOppositeAlignmentPlacement, getOppositePlacement, getExpandedPlacements, getOppositeAxisPlacements, sides, max, getOppositeAxis } from '@floating-ui/utils';\nexport { rectToClientRect } from '@floating-ui/utils';\n\nfunction computeCoordsFromPlacement(_ref, placement, rtl) {\n let {\n reference,\n floating\n } = _ref;\n const sideAxis = getSideAxis(placement);\n const alignmentAxis = getAlignmentAxis(placement);\n const alignLength = getAxisLength(alignmentAxis);\n const side = getSide(placement);\n const isVertical = sideAxis === 'y';\n const commonX = reference.x + reference.width / 2 - floating.width / 2;\n const commonY = reference.y + reference.height / 2 - floating.height / 2;\n const commonAlign = reference[alignLength] / 2 - floating[alignLength] / 2;\n let coords;\n switch (side) {\n case 'top':\n coords = {\n x: commonX,\n y: reference.y - floating.height\n };\n break;\n case 'bottom':\n coords = {\n x: commonX,\n y: reference.y + reference.height\n };\n break;\n case 'right':\n coords = {\n x: reference.x + reference.width,\n y: commonY\n };\n break;\n case 'left':\n coords = {\n x: reference.x - floating.width,\n y: commonY\n };\n break;\n default:\n coords = {\n x: reference.x,\n y: reference.y\n };\n }\n switch (getAlignment(placement)) {\n case 'start':\n coords[alignmentAxis] -= commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n case 'end':\n coords[alignmentAxis] += commonAlign * (rtl && isVertical ? -1 : 1);\n break;\n }\n return coords;\n}\n\n/**\n * Computes the `x` and `y` coordinates that will place the floating element\n * next to a given reference element.\n *\n * This export does not have any `platform` interface logic. You will need to\n * write one for the platform you are using Floating UI with.\n */\nconst computePosition = async (reference, floating, config) => {\n const {\n placement = 'bottom',\n strategy = 'absolute',\n middleware = [],\n platform\n } = config;\n const validMiddleware = middleware.filter(Boolean);\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(floating));\n let rects = await platform.getElementRects({\n reference,\n floating,\n strategy\n });\n let {\n x,\n y\n } = computeCoordsFromPlacement(rects, placement, rtl);\n let statefulPlacement = placement;\n let middlewareData = {};\n let resetCount = 0;\n for (let i = 0; i < validMiddleware.length; i++) {\n const {\n name,\n fn\n } = validMiddleware[i];\n const {\n x: nextX,\n y: nextY,\n data,\n reset\n } = await fn({\n x,\n y,\n initialPlacement: placement,\n placement: statefulPlacement,\n strategy,\n middlewareData,\n rects,\n platform,\n elements: {\n reference,\n floating\n }\n });\n x = nextX != null ? nextX : x;\n y = nextY != null ? nextY : y;\n middlewareData = {\n ...middlewareData,\n [name]: {\n ...middlewareData[name],\n ...data\n }\n };\n if (reset && resetCount <= 50) {\n resetCount++;\n if (typeof reset === 'object') {\n if (reset.placement) {\n statefulPlacement = reset.placement;\n }\n if (reset.rects) {\n rects = reset.rects === true ? await platform.getElementRects({\n reference,\n floating,\n strategy\n }) : reset.rects;\n }\n ({\n x,\n y\n } = computeCoordsFromPlacement(rects, statefulPlacement, rtl));\n }\n i = -1;\n }\n }\n return {\n x,\n y,\n placement: statefulPlacement,\n strategy,\n middlewareData\n };\n};\n\n/**\n * Resolves with an object of overflow side offsets that determine how much the\n * element is overflowing a given clipping boundary on each side.\n * - positive = overflowing the boundary by that number of pixels\n * - negative = how many pixels left before it will overflow\n * - 0 = lies flush with the boundary\n * @see https://floating-ui.com/docs/detectOverflow\n */\nasync function detectOverflow(state, options) {\n var _await$platform$isEle;\n if (options === void 0) {\n options = {};\n }\n const {\n x,\n y,\n platform,\n rects,\n elements,\n strategy\n } = state;\n const {\n boundary = 'clippingAncestors',\n rootBoundary = 'viewport',\n elementContext = 'floating',\n altBoundary = false,\n padding = 0\n } = evaluate(options, state);\n const paddingObject = getPaddingObject(padding);\n const altContext = elementContext === 'floating' ? 'reference' : 'floating';\n const element = elements[altBoundary ? altContext : elementContext];\n const clippingClientRect = rectToClientRect(await platform.getClippingRect({\n element: ((_await$platform$isEle = await (platform.isElement == null ? void 0 : platform.isElement(element))) != null ? _await$platform$isEle : true) ? element : element.contextElement || (await (platform.getDocumentElement == null ? void 0 : platform.getDocumentElement(elements.floating))),\n boundary,\n rootBoundary,\n strategy\n }));\n const rect = elementContext === 'floating' ? {\n x,\n y,\n width: rects.floating.width,\n height: rects.floating.height\n } : rects.reference;\n const offsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(elements.floating));\n const offsetScale = (await (platform.isElement == null ? void 0 : platform.isElement(offsetParent))) ? (await (platform.getScale == null ? void 0 : platform.getScale(offsetParent))) || {\n x: 1,\n y: 1\n } : {\n x: 1,\n y: 1\n };\n const elementClientRect = rectToClientRect(platform.convertOffsetParentRelativeRectToViewportRelativeRect ? await platform.convertOffsetParentRelativeRectToViewportRelativeRect({\n elements,\n rect,\n offsetParent,\n strategy\n }) : rect);\n return {\n top: (clippingClientRect.top - elementClientRect.top + paddingObject.top) / offsetScale.y,\n bottom: (elementClientRect.bottom - clippingClientRect.bottom + paddingObject.bottom) / offsetScale.y,\n left: (clippingClientRect.left - elementClientRect.left + paddingObject.left) / offsetScale.x,\n right: (elementClientRect.right - clippingClientRect.right + paddingObject.right) / offsetScale.x\n };\n}\n\n/**\n * Provides data to position an inner element of the floating element so that it\n * appears centered to the reference element.\n * @see https://floating-ui.com/docs/arrow\n */\nconst arrow = options => ({\n name: 'arrow',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n platform,\n elements,\n middlewareData\n } = state;\n // Since `element` is required, we don't Partial<> the type.\n const {\n element,\n padding = 0\n } = evaluate(options, state) || {};\n if (element == null) {\n return {};\n }\n const paddingObject = getPaddingObject(padding);\n const coords = {\n x,\n y\n };\n const axis = getAlignmentAxis(placement);\n const length = getAxisLength(axis);\n const arrowDimensions = await platform.getDimensions(element);\n const isYAxis = axis === 'y';\n const minProp = isYAxis ? 'top' : 'left';\n const maxProp = isYAxis ? 'bottom' : 'right';\n const clientProp = isYAxis ? 'clientHeight' : 'clientWidth';\n const endDiff = rects.reference[length] + rects.reference[axis] - coords[axis] - rects.floating[length];\n const startDiff = coords[axis] - rects.reference[axis];\n const arrowOffsetParent = await (platform.getOffsetParent == null ? void 0 : platform.getOffsetParent(element));\n let clientSize = arrowOffsetParent ? arrowOffsetParent[clientProp] : 0;\n\n // DOM platform can return `window` as the `offsetParent`.\n if (!clientSize || !(await (platform.isElement == null ? void 0 : platform.isElement(arrowOffsetParent)))) {\n clientSize = elements.floating[clientProp] || rects.floating[length];\n }\n const centerToReference = endDiff / 2 - startDiff / 2;\n\n // If the padding is large enough that it causes the arrow to no longer be\n // centered, modify the padding so that it is centered.\n const largestPossiblePadding = clientSize / 2 - arrowDimensions[length] / 2 - 1;\n const minPadding = min(paddingObject[minProp], largestPossiblePadding);\n const maxPadding = min(paddingObject[maxProp], largestPossiblePadding);\n\n // Make sure the arrow doesn't overflow the floating element if the center\n // point is outside the floating element's bounds.\n const min$1 = minPadding;\n const max = clientSize - arrowDimensions[length] - maxPadding;\n const center = clientSize / 2 - arrowDimensions[length] / 2 + centerToReference;\n const offset = clamp(min$1, center, max);\n\n // If the reference is small enough that the arrow's padding causes it to\n // to point to nothing for an aligned placement, adjust the offset of the\n // floating element itself. To ensure `shift()` continues to take action,\n // a single reset is performed when this is true.\n const shouldAddOffset = !middlewareData.arrow && getAlignment(placement) != null && center !== offset && rects.reference[length] / 2 - (center < min$1 ? minPadding : maxPadding) - arrowDimensions[length] / 2 < 0;\n const alignmentOffset = shouldAddOffset ? center < min$1 ? center - min$1 : center - max : 0;\n return {\n [axis]: coords[axis] + alignmentOffset,\n data: {\n [axis]: offset,\n centerOffset: center - offset - alignmentOffset,\n ...(shouldAddOffset && {\n alignmentOffset\n })\n },\n reset: shouldAddOffset\n };\n }\n});\n\nfunction getPlacementList(alignment, autoAlignment, allowedPlacements) {\n const allowedPlacementsSortedByAlignment = alignment ? [...allowedPlacements.filter(placement => getAlignment(placement) === alignment), ...allowedPlacements.filter(placement => getAlignment(placement) !== alignment)] : allowedPlacements.filter(placement => getSide(placement) === placement);\n return allowedPlacementsSortedByAlignment.filter(placement => {\n if (alignment) {\n return getAlignment(placement) === alignment || (autoAlignment ? getOppositeAlignmentPlacement(placement) !== placement : false);\n }\n return true;\n });\n}\n/**\n * Optimizes the visibility of the floating element by choosing the placement\n * that has the most space available automatically, without needing to specify a\n * preferred placement. Alternative to `flip`.\n * @see https://floating-ui.com/docs/autoPlacement\n */\nconst autoPlacement = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'autoPlacement',\n options,\n async fn(state) {\n var _middlewareData$autoP, _middlewareData$autoP2, _placementsThatFitOnE;\n const {\n rects,\n middlewareData,\n placement,\n platform,\n elements\n } = state;\n const {\n crossAxis = false,\n alignment,\n allowedPlacements = placements,\n autoAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n const placements$1 = alignment !== undefined || allowedPlacements === placements ? getPlacementList(alignment || null, autoAlignment, allowedPlacements) : allowedPlacements;\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const currentIndex = ((_middlewareData$autoP = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP.index) || 0;\n const currentPlacement = placements$1[currentIndex];\n if (currentPlacement == null) {\n return {};\n }\n const alignmentSides = getAlignmentSides(currentPlacement, rects, await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating)));\n\n // Make `computeCoords` start from the right place.\n if (placement !== currentPlacement) {\n return {\n reset: {\n placement: placements$1[0]\n }\n };\n }\n const currentOverflows = [overflow[getSide(currentPlacement)], overflow[alignmentSides[0]], overflow[alignmentSides[1]]];\n const allOverflows = [...(((_middlewareData$autoP2 = middlewareData.autoPlacement) == null ? void 0 : _middlewareData$autoP2.overflows) || []), {\n placement: currentPlacement,\n overflows: currentOverflows\n }];\n const nextPlacement = placements$1[currentIndex + 1];\n\n // There are more placements to check.\n if (nextPlacement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n const placementsSortedByMostSpace = allOverflows.map(d => {\n const alignment = getAlignment(d.placement);\n return [d.placement, alignment && crossAxis ?\n // Check along the mainAxis and main crossAxis side.\n d.overflows.slice(0, 2).reduce((acc, v) => acc + v, 0) :\n // Check only the mainAxis.\n d.overflows[0], d.overflows];\n }).sort((a, b) => a[1] - b[1]);\n const placementsThatFitOnEachSide = placementsSortedByMostSpace.filter(d => d[2].slice(0,\n // Aligned placements should not check their opposite crossAxis\n // side.\n getAlignment(d[0]) ? 2 : 3).every(v => v <= 0));\n const resetPlacement = ((_placementsThatFitOnE = placementsThatFitOnEachSide[0]) == null ? void 0 : _placementsThatFitOnE[0]) || placementsSortedByMostSpace[0][0];\n if (resetPlacement !== placement) {\n return {\n data: {\n index: currentIndex + 1,\n overflows: allOverflows\n },\n reset: {\n placement: resetPlacement\n }\n };\n }\n return {};\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by flipping the `placement`\n * in order to keep it in view when the preferred placement(s) will overflow the\n * clipping boundary. Alternative to `autoPlacement`.\n * @see https://floating-ui.com/docs/flip\n */\nconst flip = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'flip',\n options,\n async fn(state) {\n var _middlewareData$arrow, _middlewareData$flip;\n const {\n placement,\n middlewareData,\n rects,\n initialPlacement,\n platform,\n elements\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true,\n fallbackPlacements: specifiedFallbackPlacements,\n fallbackStrategy = 'bestFit',\n fallbackAxisSideDirection = 'none',\n flipAlignment = true,\n ...detectOverflowOptions\n } = evaluate(options, state);\n\n // If a reset by the arrow was caused due to an alignment offset being\n // added, we should skip any logic now since `flip()` has already done its\n // work.\n // https://github.com/floating-ui/floating-ui/issues/2549#issuecomment-1719601643\n if ((_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n const side = getSide(placement);\n const initialSideAxis = getSideAxis(initialPlacement);\n const isBasePlacement = getSide(initialPlacement) === initialPlacement;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const fallbackPlacements = specifiedFallbackPlacements || (isBasePlacement || !flipAlignment ? [getOppositePlacement(initialPlacement)] : getExpandedPlacements(initialPlacement));\n const hasFallbackAxisSideDirection = fallbackAxisSideDirection !== 'none';\n if (!specifiedFallbackPlacements && hasFallbackAxisSideDirection) {\n fallbackPlacements.push(...getOppositeAxisPlacements(initialPlacement, flipAlignment, fallbackAxisSideDirection, rtl));\n }\n const placements = [initialPlacement, ...fallbackPlacements];\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const overflows = [];\n let overflowsData = ((_middlewareData$flip = middlewareData.flip) == null ? void 0 : _middlewareData$flip.overflows) || [];\n if (checkMainAxis) {\n overflows.push(overflow[side]);\n }\n if (checkCrossAxis) {\n const sides = getAlignmentSides(placement, rects, rtl);\n overflows.push(overflow[sides[0]], overflow[sides[1]]);\n }\n overflowsData = [...overflowsData, {\n placement,\n overflows\n }];\n\n // One or more sides is overflowing.\n if (!overflows.every(side => side <= 0)) {\n var _middlewareData$flip2, _overflowsData$filter;\n const nextIndex = (((_middlewareData$flip2 = middlewareData.flip) == null ? void 0 : _middlewareData$flip2.index) || 0) + 1;\n const nextPlacement = placements[nextIndex];\n if (nextPlacement) {\n // Try next placement and re-run the lifecycle.\n return {\n data: {\n index: nextIndex,\n overflows: overflowsData\n },\n reset: {\n placement: nextPlacement\n }\n };\n }\n\n // First, find the candidates that fit on the mainAxis side of overflow,\n // then find the placement that fits the best on the main crossAxis side.\n let resetPlacement = (_overflowsData$filter = overflowsData.filter(d => d.overflows[0] <= 0).sort((a, b) => a.overflows[1] - b.overflows[1])[0]) == null ? void 0 : _overflowsData$filter.placement;\n\n // Otherwise fallback.\n if (!resetPlacement) {\n switch (fallbackStrategy) {\n case 'bestFit':\n {\n var _overflowsData$filter2;\n const placement = (_overflowsData$filter2 = overflowsData.filter(d => {\n if (hasFallbackAxisSideDirection) {\n const currentSideAxis = getSideAxis(d.placement);\n return currentSideAxis === initialSideAxis ||\n // Create a bias to the `y` side axis due to horizontal\n // reading directions favoring greater width.\n currentSideAxis === 'y';\n }\n return true;\n }).map(d => [d.placement, d.overflows.filter(overflow => overflow > 0).reduce((acc, overflow) => acc + overflow, 0)]).sort((a, b) => a[1] - b[1])[0]) == null ? void 0 : _overflowsData$filter2[0];\n if (placement) {\n resetPlacement = placement;\n }\n break;\n }\n case 'initialPlacement':\n resetPlacement = initialPlacement;\n break;\n }\n }\n if (placement !== resetPlacement) {\n return {\n reset: {\n placement: resetPlacement\n }\n };\n }\n }\n return {};\n }\n };\n};\n\nfunction getSideOffsets(overflow, rect) {\n return {\n top: overflow.top - rect.height,\n right: overflow.right - rect.width,\n bottom: overflow.bottom - rect.height,\n left: overflow.left - rect.width\n };\n}\nfunction isAnySideFullyClipped(overflow) {\n return sides.some(side => overflow[side] >= 0);\n}\n/**\n * Provides data to hide the floating element in applicable situations, such as\n * when it is not in the same clipping context as the reference element.\n * @see https://floating-ui.com/docs/hide\n */\nconst hide = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'hide',\n options,\n async fn(state) {\n const {\n rects\n } = state;\n const {\n strategy = 'referenceHidden',\n ...detectOverflowOptions\n } = evaluate(options, state);\n switch (strategy) {\n case 'referenceHidden':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n elementContext: 'reference'\n });\n const offsets = getSideOffsets(overflow, rects.reference);\n return {\n data: {\n referenceHiddenOffsets: offsets,\n referenceHidden: isAnySideFullyClipped(offsets)\n }\n };\n }\n case 'escaped':\n {\n const overflow = await detectOverflow(state, {\n ...detectOverflowOptions,\n altBoundary: true\n });\n const offsets = getSideOffsets(overflow, rects.floating);\n return {\n data: {\n escapedOffsets: offsets,\n escaped: isAnySideFullyClipped(offsets)\n }\n };\n }\n default:\n {\n return {};\n }\n }\n }\n };\n};\n\nfunction getBoundingRect(rects) {\n const minX = min(...rects.map(rect => rect.left));\n const minY = min(...rects.map(rect => rect.top));\n const maxX = max(...rects.map(rect => rect.right));\n const maxY = max(...rects.map(rect => rect.bottom));\n return {\n x: minX,\n y: minY,\n width: maxX - minX,\n height: maxY - minY\n };\n}\nfunction getRectsByLine(rects) {\n const sortedRects = rects.slice().sort((a, b) => a.y - b.y);\n const groups = [];\n let prevRect = null;\n for (let i = 0; i < sortedRects.length; i++) {\n const rect = sortedRects[i];\n if (!prevRect || rect.y - prevRect.y > prevRect.height / 2) {\n groups.push([rect]);\n } else {\n groups[groups.length - 1].push(rect);\n }\n prevRect = rect;\n }\n return groups.map(rect => rectToClientRect(getBoundingRect(rect)));\n}\n/**\n * Provides improved positioning for inline reference elements that can span\n * over multiple lines, such as hyperlinks or range selections.\n * @see https://floating-ui.com/docs/inline\n */\nconst inline = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'inline',\n options,\n async fn(state) {\n const {\n placement,\n elements,\n rects,\n platform,\n strategy\n } = state;\n // A MouseEvent's client{X,Y} coords can be up to 2 pixels off a\n // ClientRect's bounds, despite the event listener being triggered. A\n // padding of 2 seems to handle this issue.\n const {\n padding = 2,\n x,\n y\n } = evaluate(options, state);\n const nativeClientRects = Array.from((await (platform.getClientRects == null ? void 0 : platform.getClientRects(elements.reference))) || []);\n const clientRects = getRectsByLine(nativeClientRects);\n const fallback = rectToClientRect(getBoundingRect(nativeClientRects));\n const paddingObject = getPaddingObject(padding);\n function getBoundingClientRect() {\n // There are two rects and they are disjoined.\n if (clientRects.length === 2 && clientRects[0].left > clientRects[1].right && x != null && y != null) {\n // Find the first rect in which the point is fully inside.\n return clientRects.find(rect => x > rect.left - paddingObject.left && x < rect.right + paddingObject.right && y > rect.top - paddingObject.top && y < rect.bottom + paddingObject.bottom) || fallback;\n }\n\n // There are 2 or more connected rects.\n if (clientRects.length >= 2) {\n if (getSideAxis(placement) === 'y') {\n const firstRect = clientRects[0];\n const lastRect = clientRects[clientRects.length - 1];\n const isTop = getSide(placement) === 'top';\n const top = firstRect.top;\n const bottom = lastRect.bottom;\n const left = isTop ? firstRect.left : lastRect.left;\n const right = isTop ? firstRect.right : lastRect.right;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n const isLeftSide = getSide(placement) === 'left';\n const maxRight = max(...clientRects.map(rect => rect.right));\n const minLeft = min(...clientRects.map(rect => rect.left));\n const measureRects = clientRects.filter(rect => isLeftSide ? rect.left === minLeft : rect.right === maxRight);\n const top = measureRects[0].top;\n const bottom = measureRects[measureRects.length - 1].bottom;\n const left = minLeft;\n const right = maxRight;\n const width = right - left;\n const height = bottom - top;\n return {\n top,\n bottom,\n left,\n right,\n width,\n height,\n x: left,\n y: top\n };\n }\n return fallback;\n }\n const resetRects = await platform.getElementRects({\n reference: {\n getBoundingClientRect\n },\n floating: elements.floating,\n strategy\n });\n if (rects.reference.x !== resetRects.reference.x || rects.reference.y !== resetRects.reference.y || rects.reference.width !== resetRects.reference.width || rects.reference.height !== resetRects.reference.height) {\n return {\n reset: {\n rects: resetRects\n }\n };\n }\n return {};\n }\n };\n};\n\n// For type backwards-compatibility, the `OffsetOptions` type was also\n// Derivable.\n\nasync function convertValueToCoords(state, options) {\n const {\n placement,\n platform,\n elements\n } = state;\n const rtl = await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating));\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isVertical = getSideAxis(placement) === 'y';\n const mainAxisMulti = ['left', 'top'].includes(side) ? -1 : 1;\n const crossAxisMulti = rtl && isVertical ? -1 : 1;\n const rawValue = evaluate(options, state);\n\n // eslint-disable-next-line prefer-const\n let {\n mainAxis,\n crossAxis,\n alignmentAxis\n } = typeof rawValue === 'number' ? {\n mainAxis: rawValue,\n crossAxis: 0,\n alignmentAxis: null\n } : {\n mainAxis: rawValue.mainAxis || 0,\n crossAxis: rawValue.crossAxis || 0,\n alignmentAxis: rawValue.alignmentAxis\n };\n if (alignment && typeof alignmentAxis === 'number') {\n crossAxis = alignment === 'end' ? alignmentAxis * -1 : alignmentAxis;\n }\n return isVertical ? {\n x: crossAxis * crossAxisMulti,\n y: mainAxis * mainAxisMulti\n } : {\n x: mainAxis * mainAxisMulti,\n y: crossAxis * crossAxisMulti\n };\n}\n\n/**\n * Modifies the placement by translating the floating element along the\n * specified axes.\n * A number (shorthand for `mainAxis` or distance), or an axes configuration\n * object may be passed.\n * @see https://floating-ui.com/docs/offset\n */\nconst offset = function (options) {\n if (options === void 0) {\n options = 0;\n }\n return {\n name: 'offset',\n options,\n async fn(state) {\n var _middlewareData$offse, _middlewareData$arrow;\n const {\n x,\n y,\n placement,\n middlewareData\n } = state;\n const diffCoords = await convertValueToCoords(state, options);\n\n // If the placement is the same and the arrow caused an alignment offset\n // then we don't need to change the positioning coordinates.\n if (placement === ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse.placement) && (_middlewareData$arrow = middlewareData.arrow) != null && _middlewareData$arrow.alignmentOffset) {\n return {};\n }\n return {\n x: x + diffCoords.x,\n y: y + diffCoords.y,\n data: {\n ...diffCoords,\n placement\n }\n };\n }\n };\n};\n\n/**\n * Optimizes the visibility of the floating element by shifting it in order to\n * keep it in view when it will overflow the clipping boundary.\n * @see https://floating-ui.com/docs/shift\n */\nconst shift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'shift',\n options,\n async fn(state) {\n const {\n x,\n y,\n placement\n } = state;\n const {\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = false,\n limiter = {\n fn: _ref => {\n let {\n x,\n y\n } = _ref;\n return {\n x,\n y\n };\n }\n },\n ...detectOverflowOptions\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const crossAxis = getSideAxis(getSide(placement));\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n if (checkMainAxis) {\n const minSide = mainAxis === 'y' ? 'top' : 'left';\n const maxSide = mainAxis === 'y' ? 'bottom' : 'right';\n const min = mainAxisCoord + overflow[minSide];\n const max = mainAxisCoord - overflow[maxSide];\n mainAxisCoord = clamp(min, mainAxisCoord, max);\n }\n if (checkCrossAxis) {\n const minSide = crossAxis === 'y' ? 'top' : 'left';\n const maxSide = crossAxis === 'y' ? 'bottom' : 'right';\n const min = crossAxisCoord + overflow[minSide];\n const max = crossAxisCoord - overflow[maxSide];\n crossAxisCoord = clamp(min, crossAxisCoord, max);\n }\n const limitedCoords = limiter.fn({\n ...state,\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n });\n return {\n ...limitedCoords,\n data: {\n x: limitedCoords.x - x,\n y: limitedCoords.y - y,\n enabled: {\n [mainAxis]: checkMainAxis,\n [crossAxis]: checkCrossAxis\n }\n }\n };\n }\n };\n};\n/**\n * Built-in `limiter` that will stop `shift()` at a certain point.\n */\nconst limitShift = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n options,\n fn(state) {\n const {\n x,\n y,\n placement,\n rects,\n middlewareData\n } = state;\n const {\n offset = 0,\n mainAxis: checkMainAxis = true,\n crossAxis: checkCrossAxis = true\n } = evaluate(options, state);\n const coords = {\n x,\n y\n };\n const crossAxis = getSideAxis(placement);\n const mainAxis = getOppositeAxis(crossAxis);\n let mainAxisCoord = coords[mainAxis];\n let crossAxisCoord = coords[crossAxis];\n const rawOffset = evaluate(offset, state);\n const computedOffset = typeof rawOffset === 'number' ? {\n mainAxis: rawOffset,\n crossAxis: 0\n } : {\n mainAxis: 0,\n crossAxis: 0,\n ...rawOffset\n };\n if (checkMainAxis) {\n const len = mainAxis === 'y' ? 'height' : 'width';\n const limitMin = rects.reference[mainAxis] - rects.floating[len] + computedOffset.mainAxis;\n const limitMax = rects.reference[mainAxis] + rects.reference[len] - computedOffset.mainAxis;\n if (mainAxisCoord < limitMin) {\n mainAxisCoord = limitMin;\n } else if (mainAxisCoord > limitMax) {\n mainAxisCoord = limitMax;\n }\n }\n if (checkCrossAxis) {\n var _middlewareData$offse, _middlewareData$offse2;\n const len = mainAxis === 'y' ? 'width' : 'height';\n const isOriginSide = ['top', 'left'].includes(getSide(placement));\n const limitMin = rects.reference[crossAxis] - rects.floating[len] + (isOriginSide ? ((_middlewareData$offse = middlewareData.offset) == null ? void 0 : _middlewareData$offse[crossAxis]) || 0 : 0) + (isOriginSide ? 0 : computedOffset.crossAxis);\n const limitMax = rects.reference[crossAxis] + rects.reference[len] + (isOriginSide ? 0 : ((_middlewareData$offse2 = middlewareData.offset) == null ? void 0 : _middlewareData$offse2[crossAxis]) || 0) - (isOriginSide ? computedOffset.crossAxis : 0);\n if (crossAxisCoord < limitMin) {\n crossAxisCoord = limitMin;\n } else if (crossAxisCoord > limitMax) {\n crossAxisCoord = limitMax;\n }\n }\n return {\n [mainAxis]: mainAxisCoord,\n [crossAxis]: crossAxisCoord\n };\n }\n };\n};\n\n/**\n * Provides data that allows you to change the size of the floating element —\n * for instance, prevent it from overflowing the clipping boundary or match the\n * width of the reference element.\n * @see https://floating-ui.com/docs/size\n */\nconst size = function (options) {\n if (options === void 0) {\n options = {};\n }\n return {\n name: 'size',\n options,\n async fn(state) {\n var _state$middlewareData, _state$middlewareData2;\n const {\n placement,\n rects,\n platform,\n elements\n } = state;\n const {\n apply = () => {},\n ...detectOverflowOptions\n } = evaluate(options, state);\n const overflow = await detectOverflow(state, detectOverflowOptions);\n const side = getSide(placement);\n const alignment = getAlignment(placement);\n const isYAxis = getSideAxis(placement) === 'y';\n const {\n width,\n height\n } = rects.floating;\n let heightSide;\n let widthSide;\n if (side === 'top' || side === 'bottom') {\n heightSide = side;\n widthSide = alignment === ((await (platform.isRTL == null ? void 0 : platform.isRTL(elements.floating))) ? 'start' : 'end') ? 'left' : 'right';\n } else {\n widthSide = side;\n heightSide = alignment === 'end' ? 'top' : 'bottom';\n }\n const maximumClippingHeight = height - overflow.top - overflow.bottom;\n const maximumClippingWidth = width - overflow.left - overflow.right;\n const overflowAvailableHeight = min(height - overflow[heightSide], maximumClippingHeight);\n const overflowAvailableWidth = min(width - overflow[widthSide], maximumClippingWidth);\n const noShift = !state.middlewareData.shift;\n let availableHeight = overflowAvailableHeight;\n let availableWidth = overflowAvailableWidth;\n if ((_state$middlewareData = state.middlewareData.shift) != null && _state$middlewareData.enabled.x) {\n availableWidth = maximumClippingWidth;\n }\n if ((_state$middlewareData2 = state.middlewareData.shift) != null && _state$middlewareData2.enabled.y) {\n availableHeight = maximumClippingHeight;\n }\n if (noShift && !alignment) {\n const xMin = max(overflow.left, 0);\n const xMax = max(overflow.right, 0);\n const yMin = max(overflow.top, 0);\n const yMax = max(overflow.bottom, 0);\n if (isYAxis) {\n availableWidth = width - 2 * (xMin !== 0 || xMax !== 0 ? xMin + xMax : max(overflow.left, overflow.right));\n } else {\n availableHeight = height - 2 * (yMin !== 0 || yMax !== 0 ? yMin + yMax : max(overflow.top, overflow.bottom));\n }\n }\n await apply({\n ...state,\n availableWidth,\n availableHeight\n });\n const nextDimensions = await platform.getDimensions(elements.floating);\n if (width !== nextDimensions.width || height !== nextDimensions.height) {\n return {\n reset: {\n rects: true\n }\n };\n }\n return {};\n }\n };\n};\n\nexport { arrow, autoPlacement, computePosition, detectOverflow, flip, hide, inline, limitShift, offset, shift, size };\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"gl-mr-3 gl-flex gl-h-6 gl-w-6 gl-self-start\"},[_c('div',{staticClass:\"gl-m-auto gl-flex\"},[(_vm.isMerged)?_c('gl-icon',{attrs:{\"name\":\"merge\",\"size\":16,\"variant\":\"info\"}}):(_vm.isClosed)?_c('gl-icon',{attrs:{\"name\":\"merge-request-close\",\"size\":16,\"variant\":\"danger\"}}):(_vm.status === 'approval')?_c('gl-icon',{attrs:{\"name\":\"approval\",\"size\":16}}):(_vm.isEmpty)?_c('status-icon',{staticClass:\"!gl-m-0\",attrs:{\"icon-name\":\"neutral\",\"level\":1}}):_c('status-icon',{staticClass:\"!gl-m-0\",attrs:{\"is-loading\":_vm.isLoading,\"icon-name\":_vm.status,\"level\":1}})],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!./mr_widget_status_icon.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!./mr_widget_status_icon.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon } from '@gitlab/ui';\nimport { STATUS_CLOSED, STATUS_MERGED, STATUS_EMPTY } from '~/issues/constants';\nimport StatusIcon from './widget/status_icon.vue';\n\nexport default {\n components: {\n StatusIcon,\n GlIcon,\n },\n props: {\n status: {\n type: String,\n required: true,\n },\n },\n computed: {\n isClosed() {\n return this.status === STATUS_CLOSED;\n },\n isLoading() {\n return this.status === 'loading';\n },\n isMerged() {\n return this.status === STATUS_MERGED;\n },\n isEmpty() {\n return this.status === STATUS_EMPTY;\n },\n },\n};\n</script>\n<template>\n <div class=\"gl-mr-3 gl-flex gl-h-6 gl-w-6 gl-self-start\">\n <div class=\"gl-m-auto gl-flex\">\n <gl-icon v-if=\"isMerged\" name=\"merge\" :size=\"16\" variant=\"info\" />\n <gl-icon v-else-if=\"isClosed\" name=\"merge-request-close\" :size=\"16\" variant=\"danger\" />\n <gl-icon v-else-if=\"status === 'approval'\" name=\"approval\" :size=\"16\" />\n <status-icon v-else-if=\"isEmpty\" icon-name=\"neutral\" :level=\"1\" class=\"!gl-m-0\" />\n <status-icon v-else :is-loading=\"isLoading\" :icon-name=\"status\" :level=\"1\" class=\"!gl-m-0\" />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./mr_widget_status_icon.vue?vue&type=template&id=a9429b6c\"\nimport script from \"./mr_widget_status_icon.vue?vue&type=script&lang=js\"\nexport * from \"./mr_widget_status_icon.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('div',{staticClass:\"time-tracker sidebar-help-wrap\",attrs:{\"data-testid\":\"time-tracker\"}},[(_vm.showCollapsed)?_c('time-tracking-collapsed-state',{attrs:{\"show-comparison-state\":_vm.showComparisonState,\"show-no-time-tracking-state\":_vm.showNoTimeTrackingState,\"show-spent-only-state\":_vm.showSpentOnlyState,\"show-estimate-only-state\":_vm.showEstimateOnlyState,\"time-spent-human-readable\":_vm.humanTotalTimeSpent,\"time-estimate-human-readable\":_vm.humanTimeEstimate}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"hide-collapsed gl-flex gl-items-center gl-font-bold gl-leading-20 gl-text-default\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Time tracking'))+\"\\n \"),(_vm.isTimeTrackingInfoLoading)?_c('gl-loading-icon',{staticClass:\"gl-ml-2\",attrs:{\"size\":\"sm\",\"inline\":\"\"}}):_vm._e(),_vm._v(\" \"),(_vm.canSetTimeEstimate || _vm.canAddTimeEntries)?_c('div',{staticClass:\"gl-ml-auto gl-flex\"},[(_vm.canSetTimeEstimate)?_c('gl-button',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:(_vm.$options.setTimeEstimateModalId),expression:\"$options.setTimeEstimateModalId\"},{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.top\",modifiers:{\"top\":true}}],attrs:{\"category\":\"tertiary\",\"icon\":\"timer\",\"size\":\"small\",\"data-testid\":\"set-time-estimate-button\",\"title\":_vm.timeEstimateTooltip,\"aria-label\":_vm.timeEstimateTooltip}}):_vm._e(),_vm._v(\" \"),(_vm.canAddTimeEntries)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.top\",modifiers:{\"top\":true}}],attrs:{\"category\":\"tertiary\",\"icon\":\"plus\",\"size\":\"small\",\"data-testid\":\"add-time-entry-button\",\"title\":_vm.__('Add time entry')},on:{\"click\":function($event){return _vm.openRegisterTimeSpentModal()}}}):_vm._e()],1):_vm._e()],1),_vm._v(\" \"),(!_vm.isTimeTrackingInfoLoading)?_c('div',{staticClass:\"hide-collapsed\"},[(_vm.showEstimateOnlyState)?_c('div',{attrs:{\"data-testid\":\"estimateOnlyPane\"}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.estimatedOnlyText)+\" \"+_vm._s(_vm.humanTimeEstimate)+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showSpentOnlyState)?_c('time-tracking-spent-only-pane',{attrs:{\"time-spent-human-readable\":_vm.humanTotalTimeSpent}}):_vm._e(),_vm._v(\" \"),(_vm.showNoTimeTrackingState)?_c('div',{attrs:{\"data-testid\":\"noTrackingPane\"}},[_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.$options.i18n.noTimeTrackingText))])]):_vm._e(),_vm._v(\" \"),(_vm.showComparisonState)?_c('time-tracking-comparison-pane',{attrs:{\"time-estimate\":_vm.timeEstimate,\"time-spent\":_vm.totalTimeSpent,\"time-spent-human-readable\":_vm.humanTotalTimeSpent,\"time-estimate-human-readable\":_vm.humanTimeEstimate,\"limit-to-hours\":_vm.limitToHours}}):_vm._e(),_vm._v(\" \"),(_vm.isTimeReportSupported)?_c('div',[(_vm.hasTotalTimeSpent)?_c('gl-link',{directives:[{name:\"gl-modal\",rawName:\"v-gl-modal\",value:('time-tracking-report'),expression:\"'time-tracking-report'\"}],staticClass:\"gl-text-default\",attrs:{\"data-testid\":\"reportLink\",\"href\":\"#\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Time tracking report'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),_c('gl-modal',{attrs:{\"modal-id\":\"time-tracking-report\",\"size\":\"lg\",\"title\":_vm.__('Time tracking report'),\"hide-footer\":true}},[_c('time-tracking-report',{attrs:{\"limit-to-hours\":_vm.limitToHours,\"issuable-id\":_vm.issuableId}})],1)],1):_vm._e(),_vm._v(\" \"),_c('create-timelog-form',{attrs:{\"issuable-id\":_vm.issuableId}}),_vm._v(\" \"),_c('set-time-estimate-form',{attrs:{\"full-path\":_vm.fullPath,\"issuable-iid\":_vm.issuableIid,\"time-tracking\":_vm.timeTracking}})],1):_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!./collapsed_state.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!./collapsed_state.vue?vue&type=script&lang=js\"","<script>\nimport { GlIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n name: 'TimeTrackingCollapsedState',\n components: {\n GlIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n showComparisonState: {\n type: Boolean,\n required: true,\n },\n showSpentOnlyState: {\n type: Boolean,\n required: true,\n },\n showEstimateOnlyState: {\n type: Boolean,\n required: true,\n },\n showNoTimeTrackingState: {\n type: Boolean,\n required: true,\n },\n timeSpentHumanReadable: {\n type: String,\n required: false,\n default: '',\n },\n timeEstimateHumanReadable: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n divClass() {\n if (this.showComparisonState) {\n return 'compare';\n }\n if (this.showEstimateOnlyState) {\n return 'estimate-only';\n }\n if (this.showSpentOnlyState) {\n return 'spend-only';\n }\n if (this.showNoTimeTrackingState) {\n return 'no-tracking';\n }\n\n return '';\n },\n spanClass() {\n if (this.showNoTimeTrackingState) {\n return 'no-value collapse-truncated-title gl-pt-2 gl-px-3 gl-text-sm';\n }\n\n return '';\n },\n text() {\n if (this.showComparisonState) {\n return `${this.timeSpentHumanReadable} / ${this.timeEstimateHumanReadable}`;\n }\n if (this.showEstimateOnlyState) {\n return `-- / ${this.timeEstimateHumanReadable}`;\n }\n if (this.showSpentOnlyState) {\n return `${this.timeSpentHumanReadable} / --`;\n }\n if (this.showNoTimeTrackingState) {\n return __('None');\n }\n\n return '';\n },\n timeTrackedTooltipText() {\n let title;\n if (this.showComparisonState) {\n title = __('Time remaining');\n } else if (this.showEstimateOnlyState) {\n title = __('Estimated');\n } else if (this.showSpentOnlyState) {\n title = __('Time spent');\n }\n\n return sprintf('%{title}: %{text}', { title, text: this.text });\n },\n tooltipText() {\n return this.showNoTimeTrackingState ? __('Time tracking') : this.timeTrackedTooltipText;\n },\n },\n};\n</script>\n\n<template>\n <div\n v-gl-tooltip:body.viewport.left\n :title=\"tooltipText\"\n data-testid=\"collapsedState\"\n class=\"sidebar-collapsed-icon py-1 !gl-h-auto\"\n >\n <gl-icon name=\"timer\" />\n <div class=\"time-tracking-collapsed-summary\">\n <div class=\"gl-px-4\" :class=\"divClass\">\n <span class=\"gl-text-sm\" :class=\"spanClass\"> {{ text }} </span>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./collapsed_state.vue?vue&type=template&id=74d723ca\"\nimport script from \"./collapsed_state.vue?vue&type=script&lang=js\"\nexport * from \"./collapsed_state.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip:body.viewport.left\",arg:\"body\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"sidebar-collapsed-icon py-1 !gl-h-auto\",attrs:{\"title\":_vm.tooltipText,\"data-testid\":\"collapsedState\"}},[_c('gl-icon',{attrs:{\"name\":\"timer\"}}),_vm._v(\" \"),_c('div',{staticClass:\"time-tracking-collapsed-summary\"},[_c('div',{staticClass:\"gl-px-4\",class:_vm.divClass},[_c('span',{staticClass:\"gl-text-sm\",class:_vm.spanClass},[_vm._v(\" \"+_vm._s(_vm.text)+\" \")])])])],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!./comparison_pane.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!./comparison_pane.vue?vue&type=script&lang=js\"","<script>\nimport { GlProgressBar, GlTooltipDirective } from '@gitlab/ui';\nimport { parseSeconds, stringifyTime } from '~/lib/utils/datetime_utility';\nimport { s__, sprintf } from '~/locale';\n\nexport default {\n name: 'TimeTrackingComparisonPane',\n components: {\n GlProgressBar,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n timeSpent: {\n type: Number,\n required: true,\n },\n timeEstimate: {\n type: Number,\n required: true,\n },\n timeSpentHumanReadable: {\n type: String,\n required: true,\n },\n timeEstimateHumanReadable: {\n type: String,\n required: true,\n },\n limitToHours: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n computed: {\n parsedTimeRemaining() {\n const diffSeconds = this.timeEstimate - this.timeSpent;\n return parseSeconds(diffSeconds, { limitToHours: this.limitToHours });\n },\n timeRemainingHumanReadable() {\n return stringifyTime(this.parsedTimeRemaining);\n },\n timeRemainingTooltip() {\n const { timeRemainingHumanReadable, timeRemainingMinutes } = this;\n return timeRemainingMinutes < 0\n ? sprintf(s__('TimeTracking|Over by %{timeRemainingHumanReadable}'), {\n timeRemainingHumanReadable,\n })\n : sprintf(s__('TimeTracking|Time remaining: %{timeRemainingHumanReadable}'), {\n timeRemainingHumanReadable,\n });\n },\n /* Diff values for comparison meter */\n timeRemainingMinutes() {\n return this.timeEstimate - this.timeSpent;\n },\n timeRemainingPercent() {\n return Math.floor((this.timeSpent / this.timeEstimate) * 100);\n },\n timeRemainingStatusClass() {\n return this.timeEstimate >= this.timeSpent ? 'within_estimate' : 'over_estimate';\n },\n progressBarVariant() {\n return this.timeRemainingPercent > 100 ? 'danger' : 'primary';\n },\n },\n};\n</script>\n\n<template>\n <div class=\"gl-mt-2\" data-testid=\"timeTrackingComparisonPane\">\n <div\n v-gl-tooltip\n data-testid=\"compareMeter\"\n :title=\"timeRemainingTooltip\"\n :class=\"timeRemainingStatusClass\"\n class=\"compare-meter\"\n >\n <gl-progress-bar\n data-testid=\"timeRemainingProgress\"\n :value=\"timeRemainingPercent\"\n :variant=\"progressBarVariant\"\n />\n <div class=\"compare-display-container gl-mt-2 gl-flex gl-justify-between\">\n <div class=\"gl-float-left\">\n <span class=\"gl-text-subtle\">{{ s__('TimeTracking|Spent') }}</span>\n <span class=\"compare-value spent\">{{ timeSpentHumanReadable }}</span>\n </div>\n <div class=\"estimated gl-float-right\">\n <span class=\"gl-text-subtle\">{{ s__('TimeTrackingEstimated|Est') }}</span>\n <span class=\"compare-value\">{{ timeEstimateHumanReadable }}</span>\n </div>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./comparison_pane.vue?vue&type=template&id=7d5da840\"\nimport script from \"./comparison_pane.vue?vue&type=script&lang=js\"\nexport * from \"./comparison_pane.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('div',{staticClass:\"gl-mt-2\",attrs:{\"data-testid\":\"timeTrackingComparisonPane\"}},[_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"compare-meter\",class:_vm.timeRemainingStatusClass,attrs:{\"data-testid\":\"compareMeter\",\"title\":_vm.timeRemainingTooltip}},[_c('gl-progress-bar',{attrs:{\"data-testid\":\"timeRemainingProgress\",\"value\":_vm.timeRemainingPercent,\"variant\":_vm.progressBarVariant}}),_vm._v(\" \"),_c('div',{staticClass:\"compare-display-container gl-mt-2 gl-flex gl-justify-between\"},[_c('div',{staticClass:\"gl-float-left\"},[_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.s__('TimeTracking|Spent')))]),_vm._v(\" \"),_c('span',{staticClass:\"compare-value spent\"},[_vm._v(_vm._s(_vm.timeSpentHumanReadable))])]),_vm._v(\" \"),_c('div',{staticClass:\"estimated gl-float-right\"},[_c('span',{staticClass:\"gl-text-subtle\"},[_vm._v(_vm._s(_vm.s__('TimeTrackingEstimated|Est')))]),_vm._v(\" \"),_c('span',{staticClass:\"compare-value\"},[_vm._v(_vm._s(_vm.timeEstimateHumanReadable))])])])],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlSprintf } from '@gitlab/ui';\nimport { s__ } from '~/locale';\n\nconst timeSpent = s__('TimeTracking|%{spentStart}Spent: %{spentEnd}');\n\nexport default {\n name: 'TimeTrackingSpentOnlyPane',\n timeSpent,\n components: {\n GlSprintf,\n },\n props: {\n timeSpentHumanReadable: {\n type: String,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <div data-testid=\"spentOnlyPane\">\n <gl-sprintf :message=\"$options.timeSpent\">\n <template #spent=\"{ content }\">\n <span class=\"gl-font-bold\">{{ content }}</span\n >{{ timeSpentHumanReadable }}\n </template>\n </gl-sprintf>\n </div>\n</template>\n","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!./spent_only_pane.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!./spent_only_pane.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./spent_only_pane.vue?vue&type=template&id=0706bdc9\"\nimport script from \"./spent_only_pane.vue?vue&type=script&lang=js\"\nexport * from \"./spent_only_pane.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('div',{attrs:{\"data-testid\":\"spentOnlyPane\"}},[_c('gl-sprintf',{attrs:{\"message\":_vm.$options.timeSpent},scopedSlots:_vm._u([{key:\"spent\",fn:function({ content }){return [_c('span',{staticClass:\"gl-font-bold\"},[_vm._v(_vm._s(content))]),_vm._v(_vm._s(_vm.timeSpentHumanReadable)+\"\\n \")]}}])})],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!./time_tracker.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!./time_tracker.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlLink,\n GlModal,\n GlButton,\n GlModalDirective,\n GlLoadingIcon,\n GlTooltipDirective,\n} from '@gitlab/ui';\nimport { TYPE_ISSUE, TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { BV_SHOW_MODAL } from '~/lib/utils/constants';\nimport { s__, __ } from '~/locale';\n\nimport { timeTrackingQueries } from '../../queries/constants';\nimport eventHub from '../../event_hub';\nimport TimeTrackingCollapsedState from './collapsed_state.vue';\nimport TimeTrackingComparisonPane from './comparison_pane.vue';\nimport TimeTrackingSpentOnlyPane from './spent_only_pane.vue';\nimport TimeTrackingReport from './time_tracking_report.vue';\nimport { CREATE_TIMELOG_MODAL_ID, SET_TIME_ESTIMATE_MODAL_ID } from './constants';\nimport CreateTimelogForm from './create_timelog_form.vue';\nimport SetTimeEstimateForm from './set_time_estimate_form.vue';\n\nexport default {\n name: 'IssuableTimeTracker',\n i18n: {\n noTimeTrackingText: __('No estimate or time spent'),\n estimatedOnlyText: s__('TimeTracking|Estimated:'),\n },\n components: {\n GlLink,\n GlModal,\n GlButton,\n GlLoadingIcon,\n TimeTrackingCollapsedState,\n TimeTrackingSpentOnlyPane,\n TimeTrackingComparisonPane,\n TimeTrackingReport,\n CreateTimelogForm,\n SetTimeEstimateForm,\n },\n directives: {\n GlModal: GlModalDirective,\n GlTooltip: GlTooltipDirective,\n },\n inject: {\n issuableType: {\n default: null,\n },\n },\n props: {\n limitToHours: {\n type: Boolean,\n default: false,\n required: false,\n },\n fullPath: {\n type: String,\n required: false,\n default: '',\n },\n issuableId: {\n type: String,\n required: false,\n default: '',\n },\n issuableIid: {\n type: String,\n required: false,\n default: '',\n },\n initialTimeTracking: {\n type: Object,\n required: false,\n default: null,\n },\n /*\n In issue list, \"time-tracking-collapsed-state\" is always rendered even if the sidebar isn't collapsed.\n The actual hiding is controlled with css classes:\n Hide \"time-tracking-collapsed-state\"\n if .right-sidebar .right-sidebar-collapsed .sidebar-collapsed-icon\n Show \"time-tracking-collapsed-state\"\n if .right-sidebar .right-sidebar-expanded .sidebar-collapsed-icon\n\n In Swimlanes sidebar, we do not use collapsed state at all.\n */\n showCollapsed: {\n type: Boolean,\n default: true,\n required: false,\n },\n canAddTimeEntries: {\n type: Boolean,\n required: false,\n default: true,\n },\n canSetTimeEstimate: {\n type: Boolean,\n required: false,\n default: false,\n },\n },\n data() {\n return {\n timeTracking: {\n ...this.initialTimeTracking,\n },\n };\n },\n apollo: {\n // eslint-disable-next-line @gitlab/vue-no-undef-apollo-properties\n issuableTimeTracking: {\n query() {\n return timeTrackingQueries[this.issuableType].query;\n },\n skip() {\n // Skip the query if either of the conditions are true\n // 1. issuableType is not provided\n // 2. Time tracking info was provided via prop\n // 3. issuableIid and fullPath are not provided\n if (!this.issuableType || !timeTrackingQueries[this.issuableType]) {\n return true;\n }\n if (this.initialTimeTracking) {\n return true;\n }\n if (!this.issuableIid || !this.fullPath) {\n return true;\n }\n return false;\n },\n variables() {\n return {\n iid: this.issuableIid,\n fullPath: this.fullPath,\n };\n },\n update(data) {\n this.timeTracking = {\n ...data.workspace?.issuable,\n };\n },\n },\n },\n computed: {\n isTimeTrackingInfoLoading() {\n return this.$apollo?.queries.issuableTimeTracking?.loading ?? false;\n },\n timeEstimate() {\n return this.timeTracking?.timeEstimate || 0;\n },\n totalTimeSpent() {\n return this.timeTracking?.totalTimeSpent || 0;\n },\n humanTimeEstimate() {\n return this.timeTracking?.humanTimeEstimate || '';\n },\n humanTotalTimeSpent() {\n return this.timeTracking?.humanTotalTimeSpent || '';\n },\n hasTotalTimeSpent() {\n return Boolean(this.totalTimeSpent);\n },\n hasTimeEstimate() {\n return Boolean(this.timeEstimate);\n },\n showComparisonState() {\n return this.hasTimeEstimate && this.hasTotalTimeSpent;\n },\n showEstimateOnlyState() {\n return this.hasTimeEstimate && !this.hasTotalTimeSpent;\n },\n showSpentOnlyState() {\n return this.hasTotalTimeSpent && !this.hasTimeEstimate;\n },\n showNoTimeTrackingState() {\n return !this.hasTimeEstimate && !this.hasTotalTimeSpent;\n },\n isTimeReportSupported() {\n return [TYPE_ISSUE, TYPE_MERGE_REQUEST].includes(this.issuableType) && this.issuableId;\n },\n timeEstimateTooltip() {\n return this.hasTimeEstimate\n ? s__('TimeTracking|Edit estimate')\n : s__('TimeTracking|Set estimate');\n },\n },\n watch: {\n /**\n * When `initialTimeTracking` is provided via prop,\n * we don't query the same via GraphQl and instead\n * monitor it for any updates (eg; Epic Swimlanes)\n */\n initialTimeTracking(timeTracking) {\n this.timeTracking = timeTracking;\n },\n },\n created() {\n eventHub.$on('timeTracker:refresh', this.refresh);\n },\n methods: {\n refresh() {\n this.$apollo.queries.issuableTimeTracking.refetch();\n },\n openRegisterTimeSpentModal() {\n this.$root.$emit(BV_SHOW_MODAL, CREATE_TIMELOG_MODAL_ID);\n },\n },\n setTimeEstimateModalId: SET_TIME_ESTIMATE_MODAL_ID,\n};\n</script>\n\n<template>\n <div v-cloak class=\"time-tracker sidebar-help-wrap\" data-testid=\"time-tracker\">\n <time-tracking-collapsed-state\n v-if=\"showCollapsed\"\n :show-comparison-state=\"showComparisonState\"\n :show-no-time-tracking-state=\"showNoTimeTrackingState\"\n :show-spent-only-state=\"showSpentOnlyState\"\n :show-estimate-only-state=\"showEstimateOnlyState\"\n :time-spent-human-readable=\"humanTotalTimeSpent\"\n :time-estimate-human-readable=\"humanTimeEstimate\"\n />\n <div class=\"hide-collapsed gl-flex gl-items-center gl-font-bold gl-leading-20 gl-text-default\">\n {{ __('Time tracking') }}\n <gl-loading-icon v-if=\"isTimeTrackingInfoLoading\" size=\"sm\" class=\"gl-ml-2\" inline />\n <div v-if=\"canSetTimeEstimate || canAddTimeEntries\" class=\"gl-ml-auto gl-flex\">\n <gl-button\n v-if=\"canSetTimeEstimate\"\n v-gl-modal=\"$options.setTimeEstimateModalId\"\n v-gl-tooltip.top\n category=\"tertiary\"\n icon=\"timer\"\n size=\"small\"\n data-testid=\"set-time-estimate-button\"\n :title=\"timeEstimateTooltip\"\n :aria-label=\"timeEstimateTooltip\"\n />\n <gl-button\n v-if=\"canAddTimeEntries\"\n v-gl-tooltip.top\n category=\"tertiary\"\n icon=\"plus\"\n size=\"small\"\n data-testid=\"add-time-entry-button\"\n :title=\"__('Add time entry')\"\n @click=\"openRegisterTimeSpentModal()\"\n />\n </div>\n </div>\n <div v-if=\"!isTimeTrackingInfoLoading\" class=\"hide-collapsed\">\n <div v-if=\"showEstimateOnlyState\" data-testid=\"estimateOnlyPane\">\n {{ $options.i18n.estimatedOnlyText }} {{ humanTimeEstimate }}\n </div>\n <time-tracking-spent-only-pane\n v-if=\"showSpentOnlyState\"\n :time-spent-human-readable=\"humanTotalTimeSpent\"\n />\n <div v-if=\"showNoTimeTrackingState\" data-testid=\"noTrackingPane\">\n <span class=\"gl-text-subtle\">{{ $options.i18n.noTimeTrackingText }}</span>\n </div>\n <time-tracking-comparison-pane\n v-if=\"showComparisonState\"\n :time-estimate=\"timeEstimate\"\n :time-spent=\"totalTimeSpent\"\n :time-spent-human-readable=\"humanTotalTimeSpent\"\n :time-estimate-human-readable=\"humanTimeEstimate\"\n :limit-to-hours=\"limitToHours\"\n />\n <div v-if=\"isTimeReportSupported\">\n <gl-link\n v-if=\"hasTotalTimeSpent\"\n v-gl-modal=\"'time-tracking-report'\"\n class=\"gl-text-default\"\n data-testid=\"reportLink\"\n href=\"#\"\n >\n {{ __('Time tracking report') }}\n </gl-link>\n <gl-modal\n modal-id=\"time-tracking-report\"\n size=\"lg\"\n :title=\"__('Time tracking report')\"\n :hide-footer=\"true\"\n >\n <time-tracking-report :limit-to-hours=\"limitToHours\" :issuable-id=\"issuableId\" />\n </gl-modal>\n </div>\n <create-timelog-form :issuable-id=\"issuableId\" />\n <set-time-estimate-form\n :full-path=\"fullPath\"\n :issuable-iid=\"issuableIid\"\n :time-tracking=\"timeTracking\"\n />\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./time_tracker.vue?vue&type=template&id=a3c3d876\"\nimport script from \"./time_tracker.vue?vue&type=script&lang=js\"\nexport * from \"./time_tracker.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\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"issueEscalationPolicyMutation\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IncidentManagementEscalationPolicyID\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuableSetAttribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"issueSetEscalationPolicy\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}},{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"escalationPolicyId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"attributeId\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"issuable\"},\"name\":{\"kind\":\"Name\",\"value\":\"issue\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attribute\"},\"name\":{\"kind\":\"Name\",\"value\":\"escalationPolicy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EscalationPolicyFragment\"},\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"escalationStatus\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":474}};\n doc.loc.source = {\"body\":\"#import \\\"./escalation_policy.fragment.graphql\\\"\\n\\nmutation issueEscalationPolicyMutation(\\n $fullPath: ID!\\n $iid: String!\\n $attributeId: IncidentManagementEscalationPolicyID\\n) {\\n issuableSetAttribute: issueSetEscalationPolicy(\\n input: { projectPath: $fullPath, iid: $iid, escalationPolicyId: $attributeId }\\n ) {\\n errors\\n issuable: issue {\\n id\\n attribute: escalationPolicy {\\n ...EscalationPolicyFragment\\n }\\n escalationStatus\\n }\\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(\"./escalation_policy.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[\"issueEscalationPolicyMutation\"] = oneQuery(doc, \"issueEscalationPolicyMutation\");\n \n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],class:_vm.cssClass,attrs:{\"title\":_vm.display.tooltip,\"href\":_vm.link,\"size\":_vm.size,\"target\":\"_blank\",\"rel\":\"noopener noreferrer nofollow\",\"is-unsafe-link\":\"\",\"data-track-action\":\"open_review_app\",\"data-track-label\":\"review_app\"}},[_vm._v(\"\\n \"+_vm._s(_vm.display.text)+\" \"),_c('gl-icon',{attrs:{\"variant\":\"subtle\",\"name\":\"external-link\"}})],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!./review_app_link.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!./review_app_link.vue?vue&type=script&lang=js\"","<script>\nimport { GlButton, GlTooltipDirective, GlIcon } from '@gitlab/ui';\n\nexport default {\n components: {\n GlButton,\n GlIcon,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n cssClass: {\n type: String,\n required: true,\n },\n display: {\n type: Object,\n required: true,\n },\n link: {\n type: String,\n required: true,\n },\n size: {\n type: String,\n required: false,\n default: 'medium',\n },\n },\n};\n</script>\n<template>\n <gl-button\n v-gl-tooltip\n :title=\"display.tooltip\"\n :href=\"link\"\n :size=\"size\"\n target=\"_blank\"\n rel=\"noopener noreferrer nofollow\"\n is-unsafe-link\n :class=\"cssClass\"\n data-track-action=\"open_review_app\"\n data-track-label=\"review_app\"\n >\n {{ display.text }} <gl-icon variant=\"subtle\" name=\"external-link\" />\n </gl-button>\n</template>\n","import { render, staticRenderFns } from \"./review_app_link.vue?vue&type=template&id=0c5bdf82\"\nimport script from \"./review_app_link.vue?vue&type=script&lang=js\"\nexport * from \"./review_app_link.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showInDropdown && !_vm.isNotificationsTodosButtons)?_c('gl-disclosure-dropdown-item',{attrs:{\"data-testid\":\"notification-toggle\"},on:{\"action\":_vm.toggleSubscribed},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('gl-toggle',{staticClass:\"merge-request-notification-toggle\",attrs:{\"value\":_vm.subscribed,\"label\":_vm.__('Notifications'),\"label-position\":\"left\"}})]},proxy:true}],null,false,2441604390)}):(_vm.isNotificationsTodosButtons)?_c('div',{class:{ 'inline-block': !_vm.isMergeRequest }},[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.hover.top\",modifiers:{\"hover\":true,\"top\":true}}],ref:\"tooltip\",staticClass:\"hide-collapsed\",class:{ 'gl-ml-2': _vm.isIssuable, 'btn-icon': _vm.isNotificationsTodosButtons },attrs:{\"category\":\"secondary\",\"data-testid\":\"subscribe-button\",\"title\":_vm.notificationTooltip},on:{\"click\":_vm.toggleSubscribed}},[_c('gl-animated-notification-icon',{class:{ '!gl-text-blue-500': _vm.subscribed },attrs:{\"is-on\":!_vm.subscribed}})],1),_vm._v(\" \"),(!_vm.isMergeRequest)?_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],ref:\"tooltip\",staticClass:\"sidebar-collapsed-icon sidebar-collapsed-container !gl-rounded-none !gl-border-0\",attrs:{\"category\":\"secondary\",\"data-testid\":\"subscribe-button\",\"title\":_vm.notificationTooltip},on:{\"click\":_vm.toggleSubscribed}},[_c('gl-animated-notification-icon',{class:{ '!gl-text-blue-500': _vm.subscribed },attrs:{\"is-on\":!_vm.subscribed}})],1):_vm._e()],1):_c('sidebar-editable-item',{ref:\"editable\",staticClass:\"block subscriptions\",attrs:{\"title\":_vm.$options.i18n.notifications,\"tracking\":_vm.$options.tracking,\"loading\":_vm.isLoading,\"can-edit\":false},scopedSlots:_vm._u([{key:\"collapsed-right\",fn:function(){return [_c('gl-toggle',{staticClass:\"hide-collapsed gl-ml-auto\",attrs:{\"value\":_vm.subscribed,\"is-loading\":_vm.isLoading,\"disabled\":_vm.canSubscribe,\"data-testid\":\"subscription-toggle\",\"label\":_vm.$options.i18n.notifications,\"label-position\":\"hidden\"},on:{\"change\":_vm.setSubscribed}})]},proxy:true},{key:\"collapsed\",fn:function(){return [_c('span',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],ref:\"tooltip\",staticClass:\"sidebar-collapsed-icon\",attrs:{\"title\":_vm.notificationTooltip},on:{\"click\":_vm.toggleSubscribed}},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"sidebar-item-icon is-active\",attrs:{\"size\":\"sm\"}}):_c('gl-icon',{staticClass:\"sidebar-item-icon is-active\",attrs:{\"name\":_vm.notificationIcon,\"size\":16}})],1),_vm._v(\" \"),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.emailsDisabled),expression:\"emailsDisabled\"}],staticClass:\"hide-collapsed gl-mt-3 gl-text-subtle\"},[_vm._v(\"\\n \"+_vm._s(_vm.subscribeDisabledDescription)+\"\\n \")])]},proxy:true},{key:\"default\",fn:function(){return undefined},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport {\n GlButton,\n GlDisclosureDropdownItem,\n GlIcon,\n GlLoadingIcon,\n GlToggle,\n GlTooltipDirective,\n GlAnimatedNotificationIcon,\n} from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { TYPE_ISSUE, TYPE_EPIC, WORKSPACE_GROUP, WORKSPACE_PROJECT } from '~/issues/constants';\nimport { isLoggedIn } from '~/lib/utils/common_utils';\nimport { __, sprintf } from '~/locale';\nimport glFeatureFlagMixin from '~/vue_shared/mixins/gl_feature_flags_mixin';\nimport toast from '~/vue_shared/plugins/global_toast';\nimport { subscribedQueries } from '../../queries/constants';\nimport { Tracking } from '../../constants';\nimport SidebarEditableItem from '../sidebar_editable_item.vue';\n\nconst ICON_ON = 'notifications';\nconst ICON_OFF = 'notifications-off';\n\nexport default {\n tracking: {\n event: Tracking.editEvent,\n label: Tracking.rightSidebarLabel,\n property: 'subscriptions',\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n components: {\n GlButton,\n GlDisclosureDropdownItem,\n GlIcon,\n GlLoadingIcon,\n GlToggle,\n GlAnimatedNotificationIcon,\n SidebarEditableItem,\n },\n mixins: [glFeatureFlagMixin()],\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n showInDropdown: {\n required: false,\n type: Boolean,\n default: true,\n },\n },\n data() {\n return {\n subscribed: false,\n loading: false,\n emailsDisabled: false,\n };\n },\n apollo: {\n subscribed: {\n query() {\n return subscribedQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.iid),\n };\n },\n skip() {\n return !this.iid;\n },\n update(data) {\n return data.workspace?.issuable?.subscribed || false;\n },\n result({ data }) {\n if (!data) {\n return;\n }\n this.emailsDisabled = this.parentIsGroup\n ? data.workspace?.emailsDisabled\n : data.workspace?.issuable?.emailsDisabled;\n this.$emit('subscribedUpdated', data.workspace?.issuable?.subscribed);\n },\n error() {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} notifications.'),\n {\n issuableType: this.issuableType,\n },\n ),\n });\n },\n },\n },\n computed: {\n isIssuable() {\n return this.issuableType === TYPE_ISSUE;\n },\n isLoading() {\n return this.$apollo.queries?.subscribed?.loading || this.loading;\n },\n notificationTooltip() {\n if (this.emailsDisabled) {\n return this.subscribeDisabledDescription;\n }\n return this.subscribed ? this.$options.i18n.labelOn : this.$options.i18n.labelOff;\n },\n notificationIcon() {\n if (this.emailsDisabled || !this.subscribed) {\n return ICON_OFF;\n }\n return ICON_ON;\n },\n parentIsGroup() {\n return this.issuableType === TYPE_EPIC;\n },\n subscribeDisabledDescription() {\n return sprintf(__('Disabled by %{parent} owner'), {\n parent: this.parentIsGroup ? WORKSPACE_GROUP : WORKSPACE_PROJECT,\n });\n },\n isLoggedIn() {\n return isLoggedIn();\n },\n canSubscribe() {\n return this.emailsDisabled || !this.isLoggedIn;\n },\n isNotificationsTodosButtons() {\n return this.glFeatures.notificationsTodosButtons;\n },\n isMergeRequest() {\n return this.issuableType === 'merge_request';\n },\n },\n methods: {\n setSubscribed(subscribed) {\n this.loading = true;\n this.$apollo\n .mutate({\n mutation: subscribedQueries[this.issuableType].mutation,\n variables: {\n fullPath: this.fullPath,\n iid: this.iid,\n subscribedState: subscribed,\n },\n })\n .then(\n ({\n data: {\n updateIssuableSubscription: { errors },\n },\n }) => {\n if (errors.length) {\n createAlert({\n message: errors[0],\n });\n }\n\n toast(subscribed ? __('Notifications turned on.') : __('Notifications turned off.'));\n },\n )\n .catch(() => {\n createAlert({\n message: sprintf(\n __('Something went wrong while setting %{issuableType} notifications.'),\n {\n issuableType: this.issuableType,\n },\n ),\n });\n })\n .finally(() => {\n this.loading = false;\n });\n },\n toggleSubscribed() {\n if (this.emailsDisabled) {\n this.expandSidebar();\n } else {\n this.setSubscribed(!this.subscribed);\n }\n },\n expandSidebar() {\n this.$emit('expandSidebar');\n },\n },\n i18n: {\n notifications: __('Notifications'),\n labelOn: __('Notifications on'),\n labelOff: __('Notifications off'),\n },\n};\n</script>\n\n<template>\n <gl-disclosure-dropdown-item\n v-if=\"showInDropdown && !isNotificationsTodosButtons\"\n data-testid=\"notification-toggle\"\n @action=\"toggleSubscribed\"\n >\n <template #list-item>\n <gl-toggle\n :value=\"subscribed\"\n :label=\"__('Notifications')\"\n class=\"merge-request-notification-toggle\"\n label-position=\"left\"\n />\n </template>\n </gl-disclosure-dropdown-item>\n <div v-else-if=\"isNotificationsTodosButtons\" :class=\"{ 'inline-block': !isMergeRequest }\">\n <gl-button\n ref=\"tooltip\"\n v-gl-tooltip.hover.top\n category=\"secondary\"\n data-testid=\"subscribe-button\"\n class=\"hide-collapsed\"\n :title=\"notificationTooltip\"\n :class=\"{ 'gl-ml-2': isIssuable, 'btn-icon': isNotificationsTodosButtons }\"\n @click=\"toggleSubscribed\"\n >\n <gl-animated-notification-icon\n :class=\"{ '!gl-text-blue-500': subscribed }\"\n :is-on=\"!subscribed\"\n />\n </gl-button>\n <gl-button\n v-if=\"!isMergeRequest\"\n ref=\"tooltip\"\n v-gl-tooltip.left.viewport\n category=\"secondary\"\n data-testid=\"subscribe-button\"\n :title=\"notificationTooltip\"\n class=\"sidebar-collapsed-icon sidebar-collapsed-container !gl-rounded-none !gl-border-0\"\n @click=\"toggleSubscribed\"\n >\n <gl-animated-notification-icon\n :class=\"{ '!gl-text-blue-500': subscribed }\"\n :is-on=\"!subscribed\"\n />\n </gl-button>\n </div>\n <sidebar-editable-item\n v-else\n ref=\"editable\"\n :title=\"$options.i18n.notifications\"\n :tracking=\"$options.tracking\"\n :loading=\"isLoading\"\n :can-edit=\"false\"\n class=\"block subscriptions\"\n >\n <template #collapsed-right>\n <gl-toggle\n :value=\"subscribed\"\n :is-loading=\"isLoading\"\n :disabled=\"canSubscribe\"\n class=\"hide-collapsed gl-ml-auto\"\n data-testid=\"subscription-toggle\"\n :label=\"$options.i18n.notifications\"\n label-position=\"hidden\"\n @change=\"setSubscribed\"\n />\n </template>\n <template #collapsed>\n <span\n ref=\"tooltip\"\n v-gl-tooltip.viewport.left\n :title=\"notificationTooltip\"\n class=\"sidebar-collapsed-icon\"\n @click=\"toggleSubscribed\"\n >\n <gl-loading-icon v-if=\"isLoading\" size=\"sm\" class=\"sidebar-item-icon is-active\" />\n <gl-icon v-else :name=\"notificationIcon\" :size=\"16\" class=\"sidebar-item-icon is-active\" />\n </span>\n <div v-show=\"emailsDisabled\" class=\"hide-collapsed gl-mt-3 gl-text-subtle\">\n {{ subscribeDisabledDescription }}\n </div>\n </template>\n <template #default> </template>\n </sidebar-editable-item>\n</template>\n","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!./sidebar_subscriptions_widget.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!./sidebar_subscriptions_widget.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./sidebar_subscriptions_widget.vue?vue&type=template&id=b8d97386\"\nimport script from \"./sidebar_subscriptions_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_subscriptions_widget.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-disclosure-dropdown-item',{staticClass:\"ci-job-component\",attrs:{\"item\":_vm.item,\"data-testid\":\"ci-job-item\"},scopedSlots:_vm._u([{key:\"list-item\",fn:function(){return [_c('div',{staticClass:\"-gl-my-2 gl-flex gl-items-center gl-justify-between\"},[_c('job-name-component',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],attrs:{\"title\":_vm.tooltipText,\"name\":_vm.job.name,\"status\":_vm.status,\"data-testid\":\"job-name\"}}),_vm._v(\" \"),(_vm.hasJobAction)?_c('job-action-button',{staticClass:\"gl-ml-6\",attrs:{\"job-id\":_vm.job.id,\"job-action\":_vm.status.action,\"job-name\":_vm.job.name},on:{\"jobActionExecuted\":function($event){return _vm.$emit('jobActionExecuted')}}}):_vm._e()],1)]},proxy:true}])})\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!./job_action_modal.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!./job_action_modal.vue?vue&type=script&lang=js\"","<script>\nimport { GlModal } from '@gitlab/ui';\nimport { s__, __, sprintf } from '~/locale';\n\nexport default {\n name: 'JobActionModal',\n i18n: {\n title: s__('PipelineGraph|Are you sure you want to run %{jobName}?'),\n confirmationText: s__('PipelineGraph|Do you want to continue?'),\n actionCancel: { text: __('Cancel') },\n },\n components: {\n GlModal,\n },\n model: {\n prop: 'visible',\n event: 'change',\n },\n props: {\n customMessage: {\n type: String,\n required: true,\n },\n visible: {\n type: Boolean,\n required: false,\n default: false,\n },\n jobName: {\n type: String,\n required: true,\n },\n },\n computed: {\n modalText() {\n return {\n confirmButton: {\n text: sprintf(__('Yes, run %{jobName}'), {\n jobName: this.jobName,\n }),\n },\n message: sprintf(__('Custom confirmation message: %{message}'), {\n message: this.customMessage,\n }),\n title: sprintf(this.$options.i18n.title, {\n jobName: this.jobName,\n }),\n };\n },\n },\n};\n</script>\n\n<template>\n <gl-modal\n modal-id=\"job-action-modal\"\n :action-cancel=\"$options.i18n.actionCancel\"\n :action-primary=\"modalText.confirmButton\"\n :title=\"modalText.title\"\n :visible=\"visible\"\n @primary=\"$emit('confirm')\"\n @change=\"$emit('change', $event)\"\n >\n <div>\n <p>{{ modalText.message }}</p>\n <span>{{ $options.i18n.confirmationText }}</span>\n </div>\n </gl-modal>\n</template>\n","import { render, staticRenderFns } from \"./job_action_modal.vue?vue&type=template&id=0793f7d2\"\nimport script from \"./job_action_modal.vue?vue&type=script&lang=js\"\nexport * from \"./job_action_modal.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-modal',{attrs:{\"modal-id\":\"job-action-modal\",\"action-cancel\":_vm.$options.i18n.actionCancel,\"action-primary\":_vm.modalText.confirmButton,\"title\":_vm.modalText.title,\"visible\":_vm.visible},on:{\"primary\":function($event){return _vm.$emit('confirm')},\"change\":function($event){return _vm.$emit('change', $event)}}},[_c('div',[_c('p',[_vm._v(_vm._s(_vm.modalText.message))]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(_vm.$options.i18n.confirmationText))])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<script>\nimport { GlButton, GlIcon, GlLoadingIcon, GlTooltipDirective } from '@gitlab/ui';\nimport { createAlert } from '~/alert';\nimport { s__ } from '~/locale';\nimport { reportToSentry } from '~/ci/utils';\nimport cancelJobMutation from '~/ci/pipeline_mini_graph/graphql/mutations/job_cancel.mutation.graphql';\nimport playJobMutation from '~/ci/pipeline_mini_graph/graphql/mutations/job_play.mutation.graphql';\nimport retryJobMutation from '~/ci/pipeline_mini_graph/graphql/mutations/job_retry.mutation.graphql';\nimport unscheduleJobMutation from '~/ci/pipeline_mini_graph/graphql/mutations/job_unschedule.mutation.graphql';\nimport JobActionModal from './job_action_modal.vue';\n\nexport const i18n = {\n errors: {\n cancelJob: s__('Pipeline|There was a problem canceling the job.'),\n playJob: s__('Pipeline|There was a problem running the job.'),\n retryJob: s__('Pipeline|There was a problem running the job again.'),\n unscheduleJob: s__('Pipeline|There was a problem unscheduling the job.'),\n },\n};\n\nexport default {\n name: 'JobActionButton',\n JOB_ACTIONS: {\n cancel: {\n dataName: 'jobCancel',\n error: i18n.errors.cancelJob,\n mutation: cancelJobMutation,\n },\n play: {\n dataName: 'jobPlay',\n error: i18n.errors.playJob,\n mutation: playJobMutation,\n },\n retry: {\n dataName: 'jobRetry',\n error: i18n.errors.retryJob,\n mutation: retryJobMutation,\n },\n 'time-out': {\n dataName: 'jobUnschedule',\n error: i18n.errors.unscheduleJob,\n mutation: unscheduleJobMutation,\n },\n },\n i18n,\n components: {\n GlButton,\n GlIcon,\n GlLoadingIcon,\n JobActionModal,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n jobId: {\n type: String,\n required: true,\n },\n jobAction: {\n type: Object,\n required: true,\n },\n jobName: {\n type: String,\n required: true,\n },\n },\n emits: ['jobActionExecuted'],\n data() {\n return {\n isLoading: false,\n showConfirmationModal: false,\n };\n },\n computed: {\n actionType() {\n return this.jobAction.icon;\n },\n hasConfirmationModal() {\n return this.jobAction?.confirmationMessage !== null;\n },\n },\n methods: {\n onActionButtonClick() {\n if (this.hasConfirmationModal) {\n this.showConfirmationModal = true;\n } else {\n this.executeJobAction();\n }\n },\n async executeJobAction() {\n try {\n this.isLoading = true;\n const {\n data: {\n [this.$options.JOB_ACTIONS[this.actionType].dataName]: { errors },\n },\n } = await this.$apollo.mutate({\n mutation: this.$options.JOB_ACTIONS[this.actionType].mutation,\n variables: { id: this.jobId },\n });\n if (errors.length) {\n reportToSentry(this.$options.name, new Error(errors.join(', ')));\n }\n } catch (error) {\n createAlert({ message: this.$options.JOB_ACTIONS[this.actionType].error });\n reportToSentry(this.$options.name, error);\n } finally {\n this.isLoading = false;\n this.$emit('jobActionExecuted');\n }\n },\n },\n};\n</script>\n\n<template>\n <div>\n <gl-button\n v-gl-tooltip.viewport.left\n :title=\"jobAction.title\"\n :aria-label=\"jobAction.title\"\n :disabled=\"isLoading\"\n size=\"small\"\n class=\"gl-h-6 gl-w-6 !gl-rounded-full !gl-p-0\"\n data-testid=\"ci-action-button\"\n @click.prevent=\"onActionButtonClick\"\n >\n <gl-loading-icon v-if=\"isLoading\" size=\"sm\" class=\"gl-m-2\" />\n <gl-icon v-else :name=\"jobAction.icon\" :size=\"12\" />\n </gl-button>\n <job-action-modal\n v-if=\"hasConfirmationModal\"\n v-model=\"showConfirmationModal\"\n :job-name=\"jobName\"\n :custom-message=\"jobAction.confirmationMessage\"\n @confirm=\"executeJobAction\"\n />\n </div>\n</template>\n","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!./job_action_button.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!./job_action_button.vue?vue&type=script&lang=js\"","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!./job_dropdown_item.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!./job_dropdown_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlDisclosureDropdownItem, GlTooltipDirective } from '@gitlab/ui';\nimport { sprintf } from '~/locale';\nimport { capitalizeFirstCharacter } from '~/lib/utils/text_utility';\nimport delayedJobMixin from '~/ci/mixins/delayed_job_mixin';\nimport JobActionButton from './job_action_button.vue';\nimport JobNameComponent from './job_name_component.vue';\n\nexport default {\n name: 'JobDropdownItem',\n components: {\n JobActionButton,\n JobNameComponent,\n GlDisclosureDropdownItem,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n mixins: [delayedJobMixin],\n props: {\n job: {\n type: Object,\n required: true,\n },\n },\n emits: ['jobActionExecuted'],\n computed: {\n hasJobAction() {\n return Boolean(this.status?.action?.id);\n },\n item() {\n return {\n text: this.job.name,\n href: this.status?.detailsPath || '',\n };\n },\n status() {\n return this.job.detailedStatus || this.job.status;\n },\n tooltipText() {\n const statusTooltip = capitalizeFirstCharacter(this.status?.tooltip);\n\n if (this.isDelayedJob) {\n return sprintf(statusTooltip, { remainingTime: this.remainingTime });\n }\n return statusTooltip;\n },\n },\n};\n</script>\n<template>\n <gl-disclosure-dropdown-item :item=\"item\" class=\"ci-job-component\" data-testid=\"ci-job-item\">\n <template #list-item>\n <div class=\"-gl-my-2 gl-flex gl-items-center gl-justify-between\">\n <job-name-component\n v-gl-tooltip.viewport.left\n :title=\"tooltipText\"\n :name=\"job.name\"\n :status=\"status\"\n data-testid=\"job-name\"\n />\n <job-action-button\n v-if=\"hasJobAction\"\n class=\"gl-ml-6\"\n :job-id=\"job.id\"\n :job-action=\"status.action\"\n :job-name=\"job.name\"\n @jobActionExecuted=\"$emit('jobActionExecuted')\"\n />\n </div>\n </template>\n </gl-disclosure-dropdown-item>\n</template>\n","import { render, staticRenderFns } from \"./job_action_button.vue?vue&type=template&id=6a2f3078\"\nimport script from \"./job_action_button.vue?vue&type=script&lang=js\"\nexport * from \"./job_action_button.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('gl-button',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.viewport.left\",modifiers:{\"viewport\":true,\"left\":true}}],staticClass:\"gl-h-6 gl-w-6 !gl-rounded-full !gl-p-0\",attrs:{\"title\":_vm.jobAction.title,\"aria-label\":_vm.jobAction.title,\"disabled\":_vm.isLoading,\"size\":\"small\",\"data-testid\":\"ci-action-button\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onActionButtonClick.apply(null, arguments)}}},[(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"gl-m-2\",attrs:{\"size\":\"sm\"}}):_c('gl-icon',{attrs:{\"name\":_vm.jobAction.icon,\"size\":12}})],1),_vm._v(\" \"),(_vm.hasConfirmationModal)?_c('job-action-modal',{attrs:{\"job-name\":_vm.jobName,\"custom-message\":_vm.jobAction.confirmationMessage},on:{\"confirm\":_vm.executeJobAction},model:{value:(_vm.showConfirmationModal),callback:function ($$v) {_vm.showConfirmationModal=$$v},expression:\"showConfirmationModal\"}}):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./job_dropdown_item.vue?vue&type=template&id=2ef1d186\"\nimport script from \"./job_dropdown_item.vue?vue&type=script&lang=js\"\nexport * from \"./job_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","import { extend } from '../../../vue';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_BOOLEAN_STRING, PROP_TYPE_ARRAY_OBJECT_STRING, PROP_TYPE_STRING } from '../../../constants/props';\nimport { identity } from '../../../utils/identity';\nimport { isBoolean } from '../../../utils/inspect';\nimport { makeProp } from '../../../utils/props';\nimport { safeVueInstance } from '../../../utils/safe-vue-instance';\nimport { toString } from '../../../utils/string';\nimport { attrsMixin } from '../../../mixins/attrs';\n\n// Main `<table>` render mixin\n// Includes all main table styling options\n\n// --- Props ---\n\nconst props = {\n bordered: makeProp(PROP_TYPE_BOOLEAN, false),\n borderless: makeProp(PROP_TYPE_BOOLEAN, false),\n captionTop: makeProp(PROP_TYPE_BOOLEAN, false),\n dark: makeProp(PROP_TYPE_BOOLEAN, false),\n fixed: makeProp(PROP_TYPE_BOOLEAN, false),\n hover: makeProp(PROP_TYPE_BOOLEAN, false),\n noBorderCollapse: makeProp(PROP_TYPE_BOOLEAN, false),\n outlined: makeProp(PROP_TYPE_BOOLEAN, false),\n responsive: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n small: makeProp(PROP_TYPE_BOOLEAN, false),\n // If a string, it is assumed to be the table `max-height` value\n stickyHeader: makeProp(PROP_TYPE_BOOLEAN_STRING, false),\n striped: makeProp(PROP_TYPE_BOOLEAN, false),\n tableClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING),\n tableVariant: makeProp(PROP_TYPE_STRING)\n};\n\n// --- Mixin ---\n\n// @vue/component\nconst tableRendererMixin = extend({\n mixins: [attrsMixin],\n provide() {\n return {\n getBvTable: () => this\n };\n },\n // Don't place attributes on root element automatically,\n // as table could be wrapped in responsive `<div>`\n inheritAttrs: false,\n props,\n computed: {\n isTableSimple() {\n return false;\n },\n // Layout related computed props\n isResponsive() {\n const {\n responsive\n } = this;\n return responsive === '' ? true : responsive;\n },\n isStickyHeader() {\n let {\n stickyHeader\n } = this;\n stickyHeader = stickyHeader === '' ? true : stickyHeader;\n return this.isStacked ? false : stickyHeader;\n },\n wrapperClasses() {\n const {\n isResponsive\n } = this;\n return [this.isStickyHeader ? 'b-table-sticky-header' : '', isResponsive === true ? 'table-responsive' : isResponsive ? `table-responsive-${this.responsive}` : ''].filter(identity);\n },\n wrapperStyles() {\n const {\n isStickyHeader\n } = this;\n return isStickyHeader && !isBoolean(isStickyHeader) ? {\n maxHeight: isStickyHeader\n } : {};\n },\n tableClasses() {\n let {\n hover,\n tableVariant,\n selectableTableClasses,\n stackedTableClasses,\n tableClass,\n computedBusy\n } = safeVueInstance(this);\n hover = this.isTableSimple ? hover : hover && this.computedItems.length > 0 && !computedBusy;\n return [\n // User supplied classes\n tableClass,\n // Styling classes\n {\n 'table-striped': this.striped,\n 'table-hover': hover,\n 'table-dark': this.dark,\n 'table-bordered': this.bordered,\n 'table-borderless': this.borderless,\n 'table-sm': this.small,\n // The following are b-table custom styles\n 'gl-border': this.outlined,\n 'b-table-fixed': this.fixed,\n 'b-table-caption-top': this.captionTop,\n 'b-table-no-border-collapse': this.noBorderCollapse\n }, tableVariant ? `${this.dark ? 'bg' : 'table'}-${tableVariant}` : '',\n // Stacked table classes\n stackedTableClasses,\n // Selectable classes\n selectableTableClasses];\n },\n tableAttrs() {\n const {\n computedItems: items,\n filteredItems,\n computedFields: fields,\n selectableTableAttrs,\n computedBusy\n } = safeVueInstance(this);\n const ariaAttrs = this.isTableSimple ? {} : {\n 'aria-busy': toString(computedBusy),\n 'aria-colcount': toString(fields.length),\n // Preserve user supplied `aria-describedby`, if provided\n 'aria-describedby': this.bvAttrs['aria-describedby'] || this.$refs.caption ? this.captionId : null\n };\n const rowCount = items && filteredItems && filteredItems.length > items.length ? toString(filteredItems.length) : null;\n return {\n // We set `aria-rowcount` before merging in `$attrs`,\n // in case user has supplied their own\n 'aria-rowcount': rowCount,\n // Merge in user supplied `$attrs` if any\n ...this.bvAttrs,\n // Now we can override any `$attrs` here\n id: this.safeId(),\n role: this.bvAttrs.role || 'table',\n ...ariaAttrs,\n ...selectableTableAttrs\n };\n }\n },\n render(h) {\n const {\n wrapperClasses,\n renderCaption,\n renderColgroup,\n renderThead,\n renderTbody,\n renderTfoot\n } = safeVueInstance(this);\n const $content = [];\n if (this.isTableSimple) {\n $content.push(this.normalizeSlot());\n } else {\n // Build the `<caption>` (from caption mixin)\n $content.push(renderCaption ? renderCaption() : null);\n\n // Build the `<colgroup>`\n $content.push(renderColgroup ? renderColgroup() : null);\n\n // Build the `<thead>`\n $content.push(renderThead ? renderThead() : null);\n\n // Build the `<tbody>`\n $content.push(renderTbody ? renderTbody() : null);\n\n // Build the `<tfoot>`\n $content.push(renderTfoot ? renderTfoot() : null);\n }\n\n // Assemble `<table>`\n const $table = h('table', {\n staticClass: 'table b-table',\n class: this.tableClasses,\n attrs: this.tableAttrs,\n key: 'b-table'\n }, $content.filter(identity));\n\n // Add responsive/sticky wrapper if needed and return table\n return wrapperClasses.length > 0 ? h('div', {\n class: wrapperClasses,\n style: this.wrapperStyles,\n key: 'wrap'\n }, [$table]) : $table;\n }\n});\n\nexport { props, tableRendererMixin };\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"issueEpics\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicState\"}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}},\"type\":{\"kind\":\"ListType\",\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableSearchableField\"}}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iidStartsWith\"}},\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"workspace\"},\"name\":{\"kind\":\"Name\",\"value\":\"group\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"alias\":{\"kind\":\"Name\",\"value\":\"attributes\"},\"name\":{\"kind\":\"Name\",\"value\":\"epics\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"search\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"in\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"}}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeAncestorGroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":true}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"includeDescendantGroups\"},\"value\":{\"kind\":\"BooleanValue\",\"value\":false}},{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iidStartsWith\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iidStartsWith\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicFragment\"},\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"state\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":496}};\n doc.loc.source = {\"body\":\"#import \\\"./epic.fragment.graphql\\\"\\n\\nquery issueEpics(\\n $fullPath: ID!\\n $title: String\\n $state: EpicState\\n $in: [IssuableSearchableField!]\\n $iidStartsWith: String\\n) {\\n workspace: group(fullPath: $fullPath) {\\n id\\n attributes: epics(\\n search: $title\\n in: $in\\n state: $state\\n includeAncestorGroups: true\\n includeDescendantGroups: false\\n iidStartsWith: $iidStartsWith\\n ) {\\n nodes {\\n ...EpicFragment\\n state\\n iid\\n }\\n }\\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(\"./epic.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[\"issueEpics\"] = oneQuery(doc, \"issueEpics\");\n \n","import { extend, mergeData } from '../../vue';\nimport { NAME_DROPDOWN_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_ARRAY_OBJECT_STRING } from '../../constants/props';\nimport { sortKeys, omit } from '../../utils/object';\nimport { makePropsConfigurable, makeProp } from '../../utils/props';\nimport { props as props$1, BForm } from '../form/form';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n ...props$1,\n disabled: makeProp(PROP_TYPE_BOOLEAN, false),\n formClass: makeProp(PROP_TYPE_ARRAY_OBJECT_STRING)\n}), NAME_DROPDOWN_FORM);\n\n// --- Main component ---\n\n// @vue/component\nconst BDropdownForm = /*#__PURE__*/extend({\n name: NAME_DROPDOWN_FORM,\n functional: true,\n props,\n render(h, _ref) {\n let {\n props,\n data,\n listeners,\n children\n } = _ref;\n return h('li', mergeData(omit(data, ['attrs', 'on']), {\n attrs: {\n role: 'presentation'\n }\n }), [h(BForm, {\n staticClass: 'b-dropdown-form',\n class: [props.formClass, {\n disabled: props.disabled\n }],\n props,\n attrs: {\n ...(data.attrs || {}),\n disabled: props.disabled,\n // Tab index of -1 for keyboard navigation\n tabindex: props.disabled ? null : '-1'\n },\n on: listeners,\n ref: 'form'\n }, children)]);\n }\n});\n\nexport { BDropdownForm, props };\n","import { BDropdownForm } from '../../../vendor/bootstrap-vue/src/components/dropdown/dropdown-form';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlDropdownForm',\n components: {\n BDropdownForm\n },\n inheritAttrs: false\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-dropdown-form',_vm._g(_vm._b({attrs:{\"form-class\":\"gl-p-0\"}},'b-dropdown-form',_vm.$attrs,false),_vm.$listeners),[_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 isString from 'lodash/isString';\nimport Pikaday from 'pikaday';\nimport { defaultDateFormat, datepickerWidthOptionsMap } from '../../../utils/constants';\nimport { areDatesEqual } from '../../../utils/datetime_utility';\nimport GlButton from '../button/button';\nimport GlFormInput from '../form/form_input/form_input';\nimport GlIcon from '../icon/icon';\nimport { translate } from '../../../utils/i18n';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\n//\nconst pad = function (val) {\n let len = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 2;\n return `0${val}`.slice(-len);\n};\n\n/**\n * Used `onSelect` method in pickaday\n * @param {Date} date UTC format\n * @return {String} Date formated in yyyy-mm-dd\n */\nconst defaultDateFormatter = date => {\n const day = pad(date.getDate());\n const month = pad(date.getMonth() + 1);\n const year = date.getFullYear();\n return `${year}-${month}-${day}`;\n};\nconst isBefore = (compareTo, date) => compareTo && date && date.getTime() < compareTo.getTime();\nconst highlightPastDates = pikaday => {\n const pikaButtons = pikaday.el.querySelectorAll('.pika-button');\n const today = new Date();\n pikaButtons.forEach(pikaButton => {\n const {\n pikaYear,\n pikaMonth,\n pikaDay\n } = pikaButton.dataset;\n const pikaButtonDate = new Date(pikaYear, pikaMonth, pikaDay);\n if (isBefore(today, pikaButtonDate)) {\n pikaButton.classList.add('is-past-date');\n }\n });\n};\nconst addAccessibleLabels = element => {\n // Pikaday sets `role=\"heading\"`, which requires a corresponding\n // `aria-level`. Ensure we have one.\n const titleEl = element.querySelector('.pika-title[role=\"heading\"]');\n if (titleEl) {\n titleEl.setAttribute('aria-level', 3);\n }\n\n // Add aria-label to month & year select dropdowns\n const monthEl = element.querySelector('select.pika-select-month');\n if (monthEl) {\n monthEl.setAttribute('aria-label', translate('GlDatepicker.monthLabel', 'Month'));\n }\n const yearEl = element.querySelector('select.pika-select-year');\n if (yearEl) {\n yearEl.setAttribute('aria-label', translate('GlDatepicker.yearLabel', 'Year'));\n }\n};\nvar script = {\n name: 'GlDatepicker',\n components: {\n GlFormInput,\n GlIcon,\n GlButton\n },\n props: {\n /**\n * Selector of element that triggers the datepicker. Defaults to the calendar icon. Pass `null` to trigger on input focus.\n */\n target: {\n type: String,\n required: false,\n default: ''\n },\n /**\n * DOM node to render calendar into. Defaults to the datepicker container. Pass `null` to use Pikaday default.\n */\n container: {\n type: String,\n required: false,\n default: ''\n },\n value: {\n type: Date,\n required: false,\n default: null\n },\n minDate: {\n type: Date,\n required: false,\n default: null\n },\n maxDate: {\n type: Date,\n required: false,\n default: null\n },\n startRange: {\n type: Date,\n required: false,\n default: null\n },\n endRange: {\n type: Date,\n required: false,\n default: null\n },\n /**\n * Accepts a function that accepts a date as argument and returns true if the date is disabled.\n */\n disableDayFn: {\n type: Function,\n required: false,\n default: null\n },\n firstDay: {\n type: Number,\n required: false,\n default: 0\n },\n ariaLabel: {\n type: String,\n required: false,\n default: ''\n },\n placeholder: {\n type: String,\n required: false,\n default: defaultDateFormat\n },\n /**\n * Defaults to `off` when datepicker opens on focus, otherwise defaults to `null`.\n */\n autocomplete: {\n type: String,\n required: false,\n default: ''\n },\n disabled: {\n type: Boolean,\n required: false,\n default: false\n },\n displayField: {\n type: Boolean,\n required: false,\n default: true\n },\n startOpened: {\n type: Boolean,\n required: false,\n default: false\n },\n /**\n * Use this prop to set the initial date for the datepicker.\n */\n defaultDate: {\n type: Date,\n required: false,\n default: null\n },\n i18n: {\n type: Object,\n required: false,\n default: null\n },\n theme: {\n type: String,\n required: false,\n default: ''\n },\n showClearButton: {\n type: Boolean,\n required: false,\n default: false\n },\n inputId: {\n type: String,\n required: false,\n default: null\n },\n inputLabel: {\n type: String,\n required: false,\n default: 'Enter date'\n },\n inputName: {\n type: String,\n required: false,\n default: null\n },\n /**\n * Maximum width of the Datepicker\n */\n width: {\n type: String,\n required: false,\n default: null,\n validator: value => Object.keys(datepickerWidthOptionsMap).includes(value)\n },\n state: {\n type: Boolean,\n required: false,\n default: null\n }\n },\n data() {\n return {\n textInput: ''\n };\n },\n computed: {\n formattedDate() {\n return 'calendar' in this ? this.calendar.toString() : '';\n },\n customTrigger() {\n return isString(this.target) && this.target !== '';\n },\n triggerOnFocus() {\n return this.target === null;\n },\n showDefaultField() {\n return !this.customTrigger || this.triggerOnFocus;\n },\n renderClearButton() {\n return this.showClearButton && this.textInput !== '' && !this.disabled;\n },\n inputAutocomplete() {\n if (this.autocomplete !== '') {\n return this.autocomplete;\n }\n if (this.triggerOnFocus) {\n return 'off';\n }\n return null;\n },\n datepickerClasses() {\n return ['gl-datepicker', 'gl-inline-block', 'gl-w-full',\n // eslint-disable-next-line @gitlab/tailwind-no-interpolation -- Not a CSS utility\n `gl-form-input-${this.computedWidth}`];\n },\n computedWidth() {\n if (this.width) {\n return this.width;\n }\n return 'md';\n }\n },\n watch: {\n value(val) {\n if (!areDatesEqual(val, this.calendar.getDate())) {\n this.calendar.setDate(val, true);\n }\n },\n minDate(minDate) {\n this.calendar.setMinDate(minDate);\n },\n maxDate(maxDate) {\n this.calendar.setMaxDate(maxDate);\n },\n startRange(startRange) {\n this.calendar.setStartRange(startRange);\n },\n endRange(endRange) {\n this.calendar.setEndRange(endRange);\n }\n },\n mounted() {\n const $parentEl = this.$parent.$el;\n const openedEvent = this.opened.bind(this);\n const drawEvent = this.draw.bind(this);\n const pikadayConfig = {\n field: this.$el.querySelector('input[type=\"text\"]'),\n // `!gl-absolute` is needed because of this bug: https://github.com/Pikaday/Pikaday/issues/840\n theme: `gl-datepicker-theme !gl-absolute ${this.theme}`,\n defaultDate: this.defaultDate || this.value,\n setDefaultDate: Boolean(this.value) || Boolean(this.defaultDate),\n minDate: this.minDate,\n maxDate: this.maxDate,\n // Only supports default gitlab format YYYY-MM-DD. We have to decide if we want to support other formats.\n format: defaultDateFormat,\n parse: dateString => {\n const parsedDate = Date.parse(dateString.replace(/-/g, '/'));\n return Number.isNaN(parsedDate) ? new Date() : new Date(parsedDate);\n },\n disableDayFn: this.disableDayFn,\n firstDay: this.firstDay,\n ariaLabel: this.ariaLabel,\n toString: date => defaultDateFormatter(date),\n onSelect: this.selected.bind(this),\n onClose: this.closed.bind(this),\n onOpen: () => {\n addAccessibleLabels(this.$el);\n openedEvent();\n },\n onDraw: pikaday => {\n highlightPastDates(pikaday);\n drawEvent();\n }\n };\n\n // Pass `null` as `target` prop to use the `field` as the trigger (open on focus)\n if (!this.triggerOnFocus && !this.disabled) {\n const trigger = this.customTrigger ? $parentEl.querySelector(this.target) : this.$refs.calendarTriggerBtn.$el;\n pikadayConfig.trigger = trigger;\n\n // Set `trigger` as the `field` if `field` element doesn't exist (not passed via the slot)\n if (!pikadayConfig.field && this.customTrigger) {\n pikadayConfig.field = trigger;\n }\n }\n\n // Pass `null` as `container` prop to prevent passing the `container` option to Pikaday\n if (this.container !== null) {\n const container = this.container ? $parentEl.querySelector(this.container) : this.$el;\n pikadayConfig.container = container;\n }\n if (this.i18n) {\n pikadayConfig.i18n = this.i18n;\n }\n this.calendar = new Pikaday(pikadayConfig);\n if (this.startOpened) {\n this.calendar.show();\n }\n },\n beforeDestroy() {\n this.calendar.destroy();\n },\n methods: {\n // is used to open datepicker programmatically\n show() {\n this.calendar.show();\n },\n selected(date) {\n /**\n * Emitted when a new date has been selected.\n * @property {Date} date The selected date\n */\n this.$emit('input', date);\n },\n closed() {\n /**\n * Emitted when the datepicker is hidden.\n */\n this.$emit('close');\n },\n opened() {\n /**\n * Emitted when the datepicker becomes visible.\n */\n this.$emit('open');\n },\n cleared() {\n this.textInput = '';\n /**\n * Emitted when the clear button is clicked.\n */\n this.$emit('clear');\n },\n draw() {\n /**\n * Emitted when the datepicker draws a new month.\n */\n this.$emit('monthChange');\n },\n onKeydown() {\n if (this.textInput === '') {\n const resetDate = this.minDate || null;\n this.calendar.setDate(resetDate);\n this.selected(resetDate);\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('div',{class:_vm.datepickerClasses},[(_vm.showDefaultField)?_c('div',{staticClass:\"gl-flex gl-items-start gl-gap-3\"},[_c('div',{staticClass:\"gl-relative gl-flex gl-grow\"},[_vm._t(\"default\",function(){return [_c('gl-form-input',{class:_vm.renderClearButton ? '!gl-pr-9' : '!gl-pr-7',attrs:{\"id\":_vm.inputId,\"name\":_vm.inputName,\"data-testid\":\"gl-datepicker-input\",\"value\":_vm.formattedDate,\"placeholder\":_vm.placeholder,\"autocomplete\":_vm.inputAutocomplete,\"disabled\":_vm.disabled,\"aria-label\":_vm.inputLabel,\"state\":_vm.state},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.onKeydown.apply(null, arguments)}},model:{value:(_vm.textInput),callback:function ($$v) {_vm.textInput=$$v;},expression:\"textInput\"}})]},{\"formattedDate\":_vm.formattedDate}),_vm._v(\" \"),_c('div',{staticClass:\"gl-datepicker-actions\"},[(_vm.renderClearButton)?_c('gl-button',{staticClass:\"gl-pointer-events-auto\",attrs:{\"data-testid\":\"clear-button\",\"aria-label\":\"Clear date\",\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"clear\"},on:{\"click\":_vm.cleared}}):_vm._e(),_vm._v(\" \"),(_vm.triggerOnFocus || _vm.disabled)?_c('span',{staticClass:\"gl-px-2\",class:_vm.disabled ? 'gl-text-gray-400' : 'gl-text-gray-500',attrs:{\"data-testid\":\"datepicker-calendar-icon\"}},[_c('gl-icon',{staticClass:\"gl-block\",attrs:{\"name\":\"calendar\",\"size\":16}})],1):_c('gl-button',{ref:\"calendarTriggerBtn\",staticClass:\"gl-pointer-events-auto\",attrs:{\"aria-label\":\"Open datepicker\",\"category\":\"tertiary\",\"size\":\"small\",\"icon\":\"calendar\"}})],1)],2),_vm._v(\" \"),_vm._t(\"after\")],2):_vm._t(\"default\",null,{\"formattedDate\":_vm.formattedDate})],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__;\nexport { defaultDateFormatter, pad };\n","var filterEvents = {};\n\nexport var event = null;\n\nif (typeof document !== \"undefined\") {\n var element = document.documentElement;\n if (!(\"onmouseenter\" in element)) {\n filterEvents = {mouseenter: \"mouseover\", mouseleave: \"mouseout\"};\n }\n}\n\nfunction filterContextListener(listener, index, group) {\n listener = contextListener(listener, index, group);\n return function(event) {\n var related = event.relatedTarget;\n if (!related || (related !== this && !(related.compareDocumentPosition(this) & 8))) {\n listener.call(this, event);\n }\n };\n}\n\nfunction contextListener(listener, index, group) {\n return function(event1) {\n var event0 = event; // Events can be reentrant (e.g., focus).\n event = event1;\n try {\n listener.call(this, this.__data__, index, group);\n } finally {\n event = event0;\n }\n };\n}\n\nfunction parseTypenames(typenames) {\n return typenames.trim().split(/^|\\s+/).map(function(t) {\n var name = \"\", i = t.indexOf(\".\");\n if (i >= 0) name = t.slice(i + 1), t = t.slice(0, i);\n return {type: t, name: name};\n });\n}\n\nfunction onRemove(typename) {\n return function() {\n var on = this.__on;\n if (!on) return;\n for (var j = 0, i = -1, m = on.length, o; j < m; ++j) {\n if (o = on[j], (!typename.type || o.type === typename.type) && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n } else {\n on[++i] = o;\n }\n }\n if (++i) on.length = i;\n else delete this.__on;\n };\n}\n\nfunction onAdd(typename, value, capture) {\n var wrap = filterEvents.hasOwnProperty(typename.type) ? filterContextListener : contextListener;\n return function(d, i, group) {\n var on = this.__on, o, listener = wrap(value, i, group);\n if (on) for (var j = 0, m = on.length; j < m; ++j) {\n if ((o = on[j]).type === typename.type && o.name === typename.name) {\n this.removeEventListener(o.type, o.listener, o.capture);\n this.addEventListener(o.type, o.listener = listener, o.capture = capture);\n o.value = value;\n return;\n }\n }\n this.addEventListener(typename.type, listener, capture);\n o = {type: typename.type, name: typename.name, value: value, listener: listener, capture: capture};\n if (!on) this.__on = [o];\n else on.push(o);\n };\n}\n\nexport default function(typename, value, capture) {\n var typenames = parseTypenames(typename + \"\"), i, n = typenames.length, t;\n\n if (arguments.length < 2) {\n var on = this.node().__on;\n if (on) for (var j = 0, m = on.length, o; j < m; ++j) {\n for (i = 0, o = on[j]; i < n; ++i) {\n if ((t = typenames[i]).type === o.type && t.name === o.name) {\n return o.value;\n }\n }\n }\n return;\n }\n\n on = value ? onAdd : onRemove;\n if (capture == null) capture = false;\n for (i = 0; i < n; ++i) this.each(on(typenames[i], value, capture));\n return this;\n}\n\nexport function customEvent(event1, listener, that, args) {\n var event0 = event;\n event1.sourceEvent = event;\n event = event1;\n try {\n return listener.apply(that, args);\n } finally {\n event = event0;\n }\n}\n","var baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","import mountNotesApp from '~/mr_notes/mount_app';\nimport { initMrPage } from '~/pages/projects/merge_requests/page';\n\ninitMrPage();\nmountNotesApp();\n","import '~/pages/projects/merge_requests/show';\nimport Vue from 'vue';\nimport PipelineAccountVerificationAlert from 'ee/vue_shared/components/pipeline_account_verification_alert.vue';\nimport { parseBoolean } from '~/lib/utils/common_utils';\n\nconst initVerificationAlert = (el) => {\n return new Vue({\n el,\n name: 'PipelineAccountVerificationAlertRoot',\n provide: {\n identityVerificationRequired: parseBoolean(el.dataset.identityVerificationRequired),\n identityVerificationPath: el.dataset.identityVerificationPath,\n },\n render(createElement) {\n return createElement(PipelineAccountVerificationAlert, { class: 'gl-mt-3' });\n },\n });\n};\n\nconst el = document.querySelector('.js-verification-alert');\nif (el) {\n initVerificationAlert(el);\n}\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"EpicFragment\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Epic\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"title\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"webUrl\"},\"arguments\":[],\"directives\":[]}]}}],\"loc\":{\"start\":0,\"end\":56}};\n doc.loc.source = {\"body\":\"fragment EpicFragment on Epic {\\n id\\n title\\n webUrl\\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[\"EpicFragment\"] = oneQuery(doc, \"EpicFragment\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeTrainCarIndex\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeTrainCar\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"index\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":92}};\n doc.loc.source = {\"body\":\"fragment MergeTrainCarIndex on MergeRequest {\\n id\\n mergeTrainCar {\\n id\\n index\\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[\"MergeTrainCarIndex\"] = oneQuery(doc, \"MergeTrainCarIndex\");\n \n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\nvar kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n});\n\nmodule.exports = kebabCase;\n","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!./report_abuse_dropdown_item.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!./report_abuse_dropdown_item.vue?vue&type=script&lang=js\"","<script>\nimport { GlDropdownItem } from '@gitlab/ui';\nimport { MountingPortal } from 'portal-vue';\nimport { s__ } from '~/locale';\n\nimport AbuseCategorySelector from '~/abuse_reports/components/abuse_category_selector.vue';\n\nexport default {\n name: 'ReportAbuseDropdownItem',\n components: {\n GlDropdownItem,\n MountingPortal,\n AbuseCategorySelector,\n },\n inject: ['reportedUserId', 'reportedFromUrl'],\n i18n: {\n reportAbuse: s__('ReportAbuse|Report abuse'),\n },\n data() {\n return {\n open: false,\n };\n },\n methods: {\n toggleDrawer(open) {\n this.open = open;\n },\n },\n};\n</script>\n<template>\n <span>\n <gl-dropdown-item @click=\"toggleDrawer(true)\">{{ $options.i18n.reportAbuse }}</gl-dropdown-item>\n\n <mounting-portal mount-to=\"#js-report-abuse-drawer\" name=\"abuse-category-selector\" append>\n <abuse-category-selector\n :reported-user-id=\"reportedUserId\"\n :reported-from-url=\"reportedFromUrl\"\n :show-drawer=\"open\"\n @close-drawer=\"toggleDrawer(false)\"\n />\n </mounting-portal>\n </span>\n</template>\n","import { render, staticRenderFns } from \"./report_abuse_dropdown_item.vue?vue&type=template&id=59e7af4a\"\nimport script from \"./report_abuse_dropdown_item.vue?vue&type=script&lang=js\"\nexport * from \"./report_abuse_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('span',[_c('gl-dropdown-item',{on:{\"click\":function($event){return _vm.toggleDrawer(true)}}},[_vm._v(_vm._s(_vm.$options.i18n.reportAbuse))]),_vm._v(\" \"),_c('mounting-portal',{attrs:{\"mount-to\":\"#js-report-abuse-drawer\",\"name\":\"abuse-category-selector\",\"append\":\"\"}},[_c('abuse-category-selector',{attrs:{\"reported-user-id\":_vm.reportedUserId,\"reported-from-url\":_vm.reportedFromUrl,\"show-drawer\":_vm.open},on:{\"close-drawer\":function($event){return _vm.toggleDrawer(false)}}})],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport ReportAbuseDropdownItem from './components/report_abuse_dropdown_item.vue';\n\nexport const initReportAbuse = () => {\n const items = document.querySelectorAll('.js-report-abuse-dropdown-item');\n\n items.forEach((el) => {\n if (!el) return false;\n\n const { reportAbusePath, reportedUserId, reportedFromUrl } = el.dataset;\n\n return new Vue({\n el,\n name: 'ReportAbuseDropdownItemRoot',\n provide: {\n reportAbusePath,\n reportedUserId: parseInt(reportedUserId, 10),\n reportedFromUrl,\n },\n render(createElement) {\n return createElement(ReportAbuseDropdownItem);\n },\n });\n });\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeChecksSubscription\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestMergeStatusUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequest\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canMerge\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeabilityChecks\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"identifier\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"status\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":290}};\n doc.loc.source = {\"body\":\"subscription mergeChecksSubscription($issuableId: IssuableID!) {\\n mergeRequestMergeStatusUpdated(issuableId: $issuableId) {\\n ... on MergeRequest {\\n id\\n userPermissions {\\n canMerge\\n }\\n mergeabilityChecks {\\n identifier\\n status\\n }\\n }\\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[\"mergeChecksSubscription\"] = oneQuery(doc, \"mergeChecksSubscription\");\n \n","import { isEmpty, uniqueId } from 'lodash';\nimport { s__, sprintf } from '~/locale';\nimport Api from 'ee/api';\nimport { SEVERITY_LEVELS, REPORT_TYPES_DEFAULT } from 'ee/security_dashboard/constants';\nimport { isPositiveInteger } from '~/lib/utils/number_utils';\nimport {\n ALL_PROTECTED_BRANCHES,\n ANY_COMMIT,\n BRANCH_TYPE_KEY,\n INVALID_PROTECTED_BRANCHES,\n VALID_SCAN_RESULT_BRANCH_TYPE_OPTIONS,\n VULNERABILITY_AGE_OPERATORS,\n} from 'ee/security_orchestration/components/policy_editor/constants';\nimport {\n APPROVAL_VULNERABILITY_STATES,\n NEWLY_DETECTED,\n PREVIOUSLY_EXISTING,\n AGE_INTERVALS,\n VULNERABILITY_AGE_ALLOWED_KEYS,\n VULNERABILITY_ATTRIBUTES,\n} from '../rule/scan_filters/constants';\n\nconst REPORT_TYPES_KEYS = Object.keys(REPORT_TYPES_DEFAULT);\n\nexport const VULNERABILITY_STATE_KEYS = [\n NEWLY_DETECTED,\n ...Object.keys(APPROVAL_VULNERABILITY_STATES[NEWLY_DETECTED]),\n ...Object.keys(APPROVAL_VULNERABILITY_STATES[PREVIOUSLY_EXISTING]),\n];\nexport const ANY_MERGE_REQUEST = 'any_merge_request';\nexport const SCAN_FINDING = 'scan_finding';\nexport const LICENSE_FINDING = 'license_finding';\nexport const MATCHING = s__('ScanResultPolicy|Matching');\nexport const EXCEPT = s__('ScanResultPolicy|Except');\n\nexport const LICENSE_STATES = {\n newly_detected: s__('ScanResultPolicy|Newly Detected'),\n detected: s__('ScanResultPolicy|Pre-existing'),\n};\n\n/*\n Construct a new rule object.\n*/\nexport const securityScanBuildRule = () => ({\n id: uniqueId('rule_'),\n type: SCAN_FINDING,\n scanners: [],\n vulnerabilities_allowed: 0,\n severity_levels: [],\n vulnerability_states: [],\n branch_type: ALL_PROTECTED_BRANCHES.value,\n});\n\nexport const licenseScanBuildRule = () => {\n return {\n id: uniqueId('rule_'),\n type: LICENSE_FINDING,\n match_on_inclusion_license: true,\n license_types: [],\n license_states: [],\n branch_type: ALL_PROTECTED_BRANCHES.value,\n };\n};\n\nexport const anyMergeRequestBuildRule = () => ({\n id: uniqueId('rule_'),\n type: ANY_MERGE_REQUEST,\n branch_type: ALL_PROTECTED_BRANCHES.value,\n commits: ANY_COMMIT,\n});\n\n/*\n Construct a new rule object for when the licenseScanningPolicies flag is on\n*/\nexport const emptyBuildRule = () => ({\n type: '',\n});\n\n/**\n * Check if all rule values of certain key are included in the allowedValues list\n * @param {Array} rules - List of rules\n * @param {String} key - Rule key to check\n * @param {Array} allowedValues - List of possible values\n * @param {Boolean} areDuplicatesAllowed - check for duplicates in array\n * @returns\n */\n// eslint-disable-next-line max-params\nconst invalidRuleValues = (rules, key, allowedValues, areDuplicatesAllowed = false) => {\n if (!rules) {\n return false;\n }\n\n const hasDuplicates = (items = []) => new Set(items).size !== items.length;\n\n if (!areDuplicatesAllowed && rules.some((rule) => hasDuplicates(rule[key] || []))) {\n return true;\n }\n\n return rules.some((rule) => (rule[key] || []).some((value) => !allowedValues.includes(value)));\n};\n\nexport const invalidScanners = (rules) => invalidRuleValues(rules, 'scanners', REPORT_TYPES_KEYS);\n\nexport const invalidSeverities = (rules) =>\n invalidRuleValues(rules, 'severity_levels', Object.keys(SEVERITY_LEVELS));\n\nexport const invalidVulnerabilityStates = (rules) =>\n invalidRuleValues(rules, 'vulnerability_states', VULNERABILITY_STATE_KEYS);\n\nexport const invalidVulnerabilityAttributes = (rules) => {\n if (!rules) {\n return false;\n }\n\n const validAttributes = VULNERABILITY_ATTRIBUTES.map(({ value }) => value);\n\n return rules\n .filter((rule) => !isEmpty(rule.vulnerability_attributes))\n .flatMap((rule) => rule.vulnerability_attributes)\n .some((attribute) => {\n if (typeof attribute !== 'object') {\n return true;\n }\n return Object.entries(attribute).some(\n ([key, value]) => !validAttributes.includes(key) || typeof value !== 'boolean',\n );\n });\n};\n\nexport const invalidVulnerabilitiesAllowed = (rules) => {\n if (!rules) {\n return false;\n }\n\n return rules\n .filter((rule) => rule.vulnerabilities_allowed)\n .map((rule) => rule.vulnerabilities_allowed)\n .some((value) => !isPositiveInteger(value));\n};\n\nexport const invalidVulnerabilityAge = (rules) => {\n if (!rules) {\n return false;\n }\n\n const validOperators = VULNERABILITY_AGE_OPERATORS.map(({ value }) => value);\n const validIntervals = AGE_INTERVALS.map(({ value }) => value);\n const validVulnerabilityStates = Object.keys(APPROVAL_VULNERABILITY_STATES[PREVIOUSLY_EXISTING]);\n\n return rules\n .filter((rule) => rule.vulnerability_age)\n .some((rule) => {\n const {\n vulnerability_age: { value, operator, interval },\n vulnerability_states: states,\n } = rule;\n return (\n !validOperators.includes(operator) ||\n !isPositiveInteger(value) ||\n !validIntervals.includes(interval) ||\n !states?.length ||\n !states?.some((state) => validVulnerabilityStates.includes(state)) ||\n !Object.keys(rule.vulnerability_age).every((key) =>\n VULNERABILITY_AGE_ALLOWED_KEYS.includes(key),\n )\n );\n });\n};\n\n/*\n Returns the config for a particular rule type\n*/\nexport const getDefaultRule = (scanType) => {\n switch (scanType) {\n case SCAN_FINDING:\n return securityScanBuildRule();\n case LICENSE_FINDING:\n return licenseScanBuildRule();\n case ANY_MERGE_REQUEST:\n return anyMergeRequestBuildRule();\n default:\n return emptyBuildRule();\n }\n};\n\nconst doesBranchExist = async ({ branch, projectId }) => {\n try {\n await Api.projectProtectedBranch(projectId, branch);\n return true;\n } catch {\n return false;\n }\n};\n\nexport const getInvalidBranches = async ({ branches, projectId }) => {\n const uniqueBranches = [...new Set(branches)];\n const invalidBranches = [];\n\n for await (const branch of uniqueBranches) {\n if (!(await doesBranchExist({ branch, projectId }))) {\n invalidBranches.push(branch);\n }\n }\n\n return invalidBranches;\n};\n\n/**\n * Check if any rule has invalid branch type\n * @param rules list of rules with either branches or branch_type property\n * @returns {Boolean}\n */\nexport const invalidBranchType = (rules) => {\n if (!rules) return false;\n\n return rules.some(\n (rule) =>\n BRANCH_TYPE_KEY in rule && !VALID_SCAN_RESULT_BRANCH_TYPE_OPTIONS.includes(rule.branch_type),\n );\n};\n\nexport const humanizeInvalidBranchesError = (branches) => {\n const sentence = [];\n if (branches.length > 1) {\n const lastBranch = branches.pop();\n sentence.push(branches.join(', '), s__('SecurityOrchestration| and '), lastBranch);\n } else {\n sentence.push(branches.join());\n }\n return sprintf(INVALID_PROTECTED_BRANCHES, { branches: sentence.join('') });\n};\n","import axios from '~/lib/utils/axios_utils';\n\nexport default {\n createNewDraft(endpoint, data) {\n const postData = { ...data, draft_note: data.note };\n delete postData.note;\n\n return axios.post(endpoint, postData);\n },\n deleteDraft(endpoint, draftId) {\n return axios.delete(`${endpoint}/${draftId}`);\n },\n publishDraft(endpoint, draftId) {\n return axios.post(endpoint, { id: draftId });\n },\n addDraftToDiscussion(endpoint, data) {\n return axios.post(endpoint, data);\n },\n fetchDrafts(endpoint) {\n return axios.get(endpoint);\n },\n publish(endpoint, noteData) {\n return axios.post(endpoint, noteData);\n },\n discard(endpoint) {\n return axios.delete(endpoint);\n },\n update(endpoint, { draftId, note, resolveDiscussion, position }) {\n return axios.put(`${endpoint}/${draftId}`, {\n draft_note: { note, resolve_discussion: resolveDiscussion, position },\n });\n },\n};\n","import { isEmpty } from 'lodash';\nimport { createAlert } from '~/alert';\nimport { scrollToElement } from '~/lib/utils/common_utils';\nimport { __ } from '~/locale';\nimport { FILE_DIFF_POSITION_TYPE } from '~/diffs/constants';\nimport { updateNoteErrorMessage } from '~/notes/utils';\nimport { CHANGES_TAB, DISCUSSION_TAB, SHOW_TAB } from '../../../constants';\nimport service from '../../../services/drafts_service';\nimport * as types from './mutation_types';\n\nexport const saveDraft = ({ dispatch }, draft) =>\n dispatch('saveNote', { ...draft, isDraft: true }, { root: true });\n\nexport const addDraftToDiscussion = ({ commit }, { endpoint, data }) =>\n service\n .addDraftToDiscussion(endpoint, data)\n .then((res) => res.data)\n .then((res) => {\n commit(types.ADD_NEW_DRAFT, res);\n return res;\n })\n .catch((e) => {\n throw e.response;\n });\n\nexport const createNewDraft = ({ commit, dispatch }, { endpoint, data }) =>\n service\n .createNewDraft(endpoint, data)\n .then((res) => res.data)\n .then((res) => {\n commit(types.ADD_NEW_DRAFT, res);\n\n if (res.position?.position_type === FILE_DIFF_POSITION_TYPE) {\n dispatch('diffs/addDraftToFile', { filePath: res.file_path, draft: res }, { root: true });\n }\n\n return res;\n })\n .catch((e) => {\n throw e.response;\n });\n\nexport const deleteDraft = ({ commit, getters }, draft) =>\n service\n .deleteDraft(getters.getNotesData.draftsPath, draft.id)\n .then(() => {\n commit(types.DELETE_DRAFT, draft.id);\n })\n .catch(() =>\n createAlert({\n message: __('An error occurred while deleting the comment'),\n }),\n );\n\nexport const fetchDrafts = ({ commit, getters, state, dispatch }) =>\n service\n .fetchDrafts(getters.getNotesData.draftsPath)\n .then((res) => res.data)\n .then((data) => commit(types.SET_BATCH_COMMENTS_DRAFTS, data))\n .then(() => {\n state.drafts.forEach((draft) => {\n if (draft.position?.position_type === FILE_DIFF_POSITION_TYPE) {\n dispatch('diffs/addDraftToFile', { filePath: draft.file_path, draft }, { root: true });\n } else if (!draft.line_code) {\n dispatch('convertToDiscussion', draft.discussion_id, { root: true });\n }\n });\n })\n .catch(() =>\n createAlert({\n message: __('An error occurred while fetching pending comments'),\n }),\n );\n\nexport const publishSingleDraft = ({ commit, getters }, draftId) => {\n commit(types.REQUEST_PUBLISH_DRAFT, draftId);\n\n service\n .publishDraft(getters.getNotesData.draftsPublishPath, draftId)\n .then(() => commit(types.RECEIVE_PUBLISH_DRAFT_SUCCESS, draftId))\n .catch(() => commit(types.RECEIVE_PUBLISH_DRAFT_ERROR, draftId));\n};\n\nexport const publishReview = ({ commit, getters }, noteData = {}) => {\n commit(types.REQUEST_PUBLISH_REVIEW);\n\n return service\n .publish(getters.getNotesData.draftsPublishPath, noteData)\n .then(() => commit(types.RECEIVE_PUBLISH_REVIEW_SUCCESS))\n .catch((e) => {\n commit(types.RECEIVE_PUBLISH_REVIEW_ERROR);\n\n throw e.response;\n });\n};\n\nexport const updateDraft = (\n { commit, getters },\n { note, noteText, resolveDiscussion, position, flashContainer, callback, errorCallback },\n) => {\n const params = {\n draftId: note.id,\n note: noteText,\n resolveDiscussion,\n };\n // Stringifying an empty object yields `{}` which breaks graphql queries\n // https://gitlab.com/gitlab-org/gitlab/-/issues/298827\n if (!isEmpty(position)) params.position = JSON.stringify(position);\n\n return service\n .update(getters.getNotesData.draftsPath, params)\n .then((res) => res.data)\n .then((data) => commit(types.RECEIVE_DRAFT_UPDATE_SUCCESS, data))\n .then(callback)\n .catch((e) => {\n createAlert({\n message: updateNoteErrorMessage(e),\n parent: flashContainer,\n });\n\n errorCallback();\n });\n};\n\nexport const scrollToDraft = ({ dispatch, rootGetters }, draft) => {\n const discussion = draft.discussion_id && rootGetters.getDiscussion(draft.discussion_id);\n const tab =\n draft.file_hash || (discussion && discussion.diff_discussion) ? CHANGES_TAB : SHOW_TAB;\n const tabEl = tab === CHANGES_TAB ? CHANGES_TAB : DISCUSSION_TAB;\n const draftID = `note_${draft.id}`;\n const el = document.querySelector(`#${tabEl} #${draftID}`);\n\n window.location.hash = draftID;\n\n if (window.mrTabs.currentAction !== tab) {\n window.mrTabs.tabShown(tab);\n }\n\n const { file_path: filePath } = draft;\n\n if (filePath) {\n dispatch('diffs/setFileCollapsedAutomatically', { filePath, collapsed: false }, { root: true });\n }\n\n if (discussion) {\n dispatch('expandDiscussion', { discussionId: discussion.id }, { root: true });\n }\n\n if (el) {\n setTimeout(() => scrollToElement(el.closest('.draft-note-component')));\n }\n};\n\nexport const expandAllDiscussions = ({ dispatch, state }) =>\n state.drafts\n .filter((draft) => draft.discussion_id)\n .forEach((draft) => {\n dispatch('expandDiscussion', { discussionId: draft.discussion_id }, { root: true });\n });\n\nexport const toggleResolveDiscussion = ({ commit }, draftId) => {\n commit(types.TOGGLE_RESOLVE_DISCUSSION, draftId);\n};\n\nexport const clearDrafts = ({ commit }) => commit(types.CLEAR_DRAFTS);\n\nexport const discardDrafts = ({ getters, commit }) => {\n return service\n .discard(getters.getNotesData.draftsDiscardPath)\n .then(() => {\n commit(types.CLEAR_DRAFTS);\n })\n .catch((error) =>\n createAlert({\n captureError: true,\n error,\n message: __('An error occurred while discarding your review. Please try again.'),\n }),\n );\n};\n","import { parallelLineKey, showDraftOnSide } from '../../../utils';\n\nexport const draftsCount = (state) => state.drafts.length;\n\n// eslint-disable-next-line max-params\nexport const getNotesData = (state, getters, rootState, rootGetters) => rootGetters.getNotesData;\n\nexport const hasDrafts = (state) => state.drafts.length > 0;\n\nexport const draftsPerDiscussionId = (state) =>\n state.drafts.reduce((acc, draft) => {\n if (draft.discussion_id) {\n acc[draft.discussion_id] = draft;\n }\n\n return acc;\n }, {});\n\nexport const draftsPerFileHashAndLine = (state) =>\n state.drafts.reduce((acc, draft) => {\n if (draft.file_hash) {\n if (!acc[draft.file_hash]) {\n acc[draft.file_hash] = {};\n }\n\n if (!acc[draft.file_hash][draft.line_code]) {\n acc[draft.file_hash][draft.line_code] = [];\n }\n\n acc[draft.file_hash][draft.line_code].push(draft);\n }\n\n return acc;\n }, {});\n\nexport const shouldRenderDraftRow = (state, getters) => (diffFileSha, line) =>\n Boolean(\n diffFileSha in getters.draftsPerFileHashAndLine &&\n getters.draftsPerFileHashAndLine[diffFileSha][line.line_code],\n );\n\nexport const shouldRenderParallelDraftRow = (state, getters) => (diffFileSha, line) => {\n const draftsForFile = getters.draftsPerFileHashAndLine[diffFileSha];\n const [lkey, rkey] = [parallelLineKey(line, 'left'), parallelLineKey(line, 'right')];\n\n return draftsForFile ? Boolean(draftsForFile[lkey] || draftsForFile[rkey]) : false;\n};\n\nexport const hasParallelDraftLeft = (state, getters) => (diffFileSha, line) => {\n const draftsForFile = getters.draftsPerFileHashAndLine[diffFileSha];\n const lkey = parallelLineKey(line, 'left');\n\n return draftsForFile ? Boolean(draftsForFile[lkey]) : false;\n};\n\nexport const hasParallelDraftRight = (state, getters) => (diffFileSha, line) => {\n const draftsForFile = getters.draftsPerFileHashAndLine[diffFileSha];\n const rkey = parallelLineKey(line, 'left');\n\n return draftsForFile ? Boolean(draftsForFile[rkey]) : false;\n};\n\nexport const shouldRenderDraftRowInDiscussion = (state, getters) => (discussionId) =>\n typeof getters.draftsPerDiscussionId[discussionId] !== 'undefined';\n\nexport const draftForDiscussion = (state, getters) => (discussionId) =>\n getters.draftsPerDiscussionId[discussionId] || {};\n\nexport const draftsForLine =\n (state, getters) =>\n (diffFileSha, line, side = null) => {\n const draftsForFile = getters.draftsPerFileHashAndLine[diffFileSha];\n const key = side !== null ? parallelLineKey(line, side) : line.line_code;\n const showDraftsForThisSide = showDraftOnSide(line, side);\n\n if (showDraftsForThisSide && draftsForFile?.[key]) {\n return draftsForFile[key].filter((d) => d.position.position_type === 'text');\n }\n return [];\n };\n\nexport const draftsForFile = (state) => (diffFileSha) =>\n state.drafts.filter((draft) => draft.file_hash === diffFileSha);\n\nexport const isPublishingDraft = (state) => (draftId) =>\n state.currentlyPublishingDrafts.indexOf(draftId) !== -1;\n\nexport const sortedDrafts = (state) => [...state.drafts].sort((a, b) => a.id > b.id);\n","import * as types from './mutation_types';\n\nconst processDraft = (draft) => ({\n ...draft,\n isDraft: true,\n});\n\nexport default {\n [types.ADD_NEW_DRAFT](state, draft) {\n state.drafts.push(processDraft(draft));\n if (state.drafts.length === 1) {\n state.shouldAnimateReviewButton = true;\n }\n },\n\n [types.DELETE_DRAFT](state, draftId) {\n state.drafts = state.drafts.filter((draft) => draft.id !== draftId);\n },\n\n [types.SET_BATCH_COMMENTS_DRAFTS](state, drafts) {\n state.drafts = drafts.map(processDraft);\n },\n\n [types.REQUEST_PUBLISH_DRAFT](state, draftId) {\n state.currentlyPublishingDrafts.push(draftId);\n },\n [types.RECEIVE_PUBLISH_DRAFT_SUCCESS](state, draftId) {\n state.currentlyPublishingDrafts = state.currentlyPublishingDrafts.filter(\n (publishingDraftId) => publishingDraftId !== draftId,\n );\n state.drafts = state.drafts.filter((d) => d.id !== draftId);\n },\n [types.RECEIVE_PUBLISH_DRAFT_ERROR](state, draftId) {\n state.currentlyPublishingDrafts = state.currentlyPublishingDrafts.filter(\n (publishingDraftId) => publishingDraftId !== draftId,\n );\n },\n\n [types.REQUEST_PUBLISH_REVIEW](state) {\n state.isPublishing = true;\n },\n [types.RECEIVE_PUBLISH_REVIEW_SUCCESS](state) {\n state.isPublishing = false;\n },\n [types.RECEIVE_PUBLISH_REVIEW_ERROR](state) {\n state.isPublishing = false;\n },\n [types.RECEIVE_DRAFT_UPDATE_SUCCESS](state, data) {\n const index = state.drafts.findIndex((draft) => draft.id === data.id);\n\n if (index >= 0) {\n state.drafts.splice(index, 1, processDraft(data));\n }\n },\n [types.TOGGLE_RESOLVE_DISCUSSION](state, draftId) {\n state.drafts = state.drafts.map((draft) => {\n if (draft.id === draftId) {\n return {\n ...draft,\n resolve_discussion: !draft.resolve_discussion,\n };\n }\n\n return draft;\n });\n },\n [types.CLEAR_DRAFTS](state) {\n state.drafts = [];\n },\n [types.SET_REVIEW_BAR_RENDERED](state) {\n state.reviewBarRendered = true;\n },\n [types.SET_DRAFT_EDITING](state, { draftId, isEditing }) {\n const draftIndex = state.drafts.findIndex((draft) => draft.id === draftId);\n const draft = state.drafts[draftIndex];\n state.drafts.splice(draftIndex, 1, { ...draft, isEditing });\n },\n};\n","function removeEmptyProperties(dict) {\n const noBlanks = Object.entries(dict).reduce((final, [key, value]) => {\n const upd = { ...final };\n\n // The number 0 shouldn't be falsey when we're printing variables\n if (value || value === 0) {\n upd[key] = value;\n }\n\n return upd;\n }, {});\n\n return noBlanks;\n}\n\nexport function computeSuggestionCommitMessage({ message, values = {} } = {}) {\n const noEmpties = removeEmptyProperties(values);\n const matchPhrases = Object.keys(noEmpties)\n .map((key) => `%{${key}}`)\n .join('|');\n const replacementExpression = new RegExp(`(${matchPhrases})`, 'gm');\n\n return message.replace(replacementExpression, (match) => {\n const key = match.replace(/(^%{|}$)/gm, '');\n\n return noEmpties[key];\n });\n}\n","import { parseBoolean } from '~/lib/utils/common_utils';\nimport { getParameterByName } from '~/lib/utils/url_utility';\nimport { __, n__, sprintf } from '~/locale';\nimport { DIFF_COMPARE_BASE_VERSION_INDEX, DIFF_COMPARE_HEAD_VERSION_INDEX } from '../constants';\n\nexport const selectedTargetIndex = (state) =>\n state.startVersion?.version_index || DIFF_COMPARE_BASE_VERSION_INDEX;\n\nexport const selectedSourceIndex = (state) => state.mergeRequestDiff.version_index;\n\nexport const selectedContextCommitsDiffs = (state) =>\n state.contextCommitsDiff && state.contextCommitsDiff.showing_context_commits_diff;\n\nexport const diffCompareDropdownTargetVersions = (state, getters) => {\n // startVersion only exists if the user has selected a version other\n // than \"base\" so if startVersion is null then base must be selected\n\n const diffHeadParam = getParameterByName('diff_head');\n const diffHead = parseBoolean(diffHeadParam) || !diffHeadParam;\n const isBaseSelected = !state.startVersion;\n const isHeadSelected = !state.startVersion && diffHead;\n let baseVersion = null;\n\n if (!state.mergeRequestDiff.head_version_path) {\n baseVersion = {\n versionName: state.targetBranchName,\n version_index: DIFF_COMPARE_BASE_VERSION_INDEX,\n href: state.mergeRequestDiff.base_version_path,\n isBase: true,\n selected: isBaseSelected,\n };\n }\n\n const headVersion = {\n versionName: state.targetBranchName,\n version_index: DIFF_COMPARE_HEAD_VERSION_INDEX,\n href: state.mergeRequestDiff.head_version_path,\n isHead: true,\n selected: isHeadSelected,\n };\n // Appended properties here are to make the compare_dropdown_layout easier to reason about\n const formatVersion = (v) => {\n return {\n href: v.compare_path,\n versionName: sprintf(__(`version %{versionIndex}`), { versionIndex: v.version_index }),\n selected: v.version_index === getters.selectedTargetIndex,\n ...v,\n };\n };\n\n return [\n ...state.mergeRequestDiffs.slice(1).map(formatVersion),\n baseVersion,\n state.mergeRequestDiff.head_version_path && headVersion,\n ].filter((a) => a);\n};\n\nexport const diffCompareDropdownSourceVersions = (state, getters) => {\n // Appended properties here are to make the compare_dropdown_layout easier to reason about\n const versions = state.mergeRequestDiffs.map((v, i) => {\n const isLatestVersion = i === 0;\n\n return {\n ...v,\n href: v.version_path,\n commitsText: n__(`%d commit,`, `%d commits,`, v.commits_count),\n isLatestVersion,\n versionName: isLatestVersion\n ? __('latest version')\n : sprintf(__(`version %{versionIndex}`), { versionIndex: v.version_index }),\n selected:\n v.version_index === getters.selectedSourceIndex && !getters.selectedContextCommitsDiffs,\n };\n });\n\n const { contextCommitsDiff } = state;\n if (contextCommitsDiff) {\n versions.push({\n href: contextCommitsDiff.diffs_path,\n commitsText: n__(`%d commit`, `%d commits`, contextCommitsDiff.commits_count),\n versionName: __('previously merged commits'),\n selected: getters.selectedContextCommitsDiffs,\n addDivider: state.mergeRequestDiffs.length > 0,\n });\n }\n return versions;\n};\n","import { __, n__ } from '~/locale';\nimport { getParameterValues } from '~/lib/utils/url_utility';\nimport {\n PARALLEL_DIFF_VIEW_TYPE,\n INLINE_DIFF_VIEW_TYPE,\n INLINE_DIFF_LINES_KEY,\n} from '../constants';\nimport { computeSuggestionCommitMessage } from '../utils/suggestions';\nimport { parallelizeDiffLines } from './utils';\n\nexport * from './getters_versions_dropdowns';\n\nexport const isParallelView = (state) => state.diffViewType === PARALLEL_DIFF_VIEW_TYPE;\n\nexport const isInlineView = (state) => state.diffViewType === INLINE_DIFF_VIEW_TYPE;\n\nexport const whichCollapsedTypes = (state) => {\n const automatic = state.diffFiles.some((file) => file.viewer?.automaticallyCollapsed);\n const manual = state.diffFiles.some((file) => file.viewer?.manuallyCollapsed);\n\n return {\n any: automatic || manual,\n automatic,\n manual,\n };\n};\n\nexport const commitId = (state) => (state.commit && state.commit.id ? state.commit.id : null);\n\n/**\n * Checks if the diff has all discussions expanded\n * @param {Object} diff\n * @returns {Boolean}\n */\nexport const diffHasAllExpandedDiscussions = (state, getters) => (diff) => {\n const discussions = getters.getDiffFileDiscussions(diff);\n\n return (\n (discussions && discussions.length && discussions.every((discussion) => discussion.expanded)) ||\n false\n );\n};\n\n/**\n * Checks if the diff has all discussions collapsed\n * @param {Object} diff\n * @returns {Boolean}\n */\nexport const diffHasAllCollapsedDiscussions = (state, getters) => (diff) => {\n const discussions = getters.getDiffFileDiscussions(diff);\n\n return (\n (discussions &&\n discussions.length &&\n discussions.every((discussion) => !discussion.expanded)) ||\n false\n );\n};\n\n/**\n * Checks if the diff has any open discussions\n * @param {Object} diff\n * @returns {Boolean}\n */\nexport const diffHasExpandedDiscussions = () => (diff) => {\n const diffLineDiscussionsExpanded = diff[INLINE_DIFF_LINES_KEY].filter(\n (l) => l.discussions.length >= 1,\n ).some((l) => l.discussionsExpanded);\n const diffFileDiscussionsExpanded = diff.discussions?.some((d) => d.expandedOnDiff);\n\n return diffFileDiscussionsExpanded || diffLineDiscussionsExpanded;\n};\n\n/**\n * Checks if every diff has every discussion open\n * @returns {Boolean}\n */\nexport const allDiffDiscussionsExpanded = (state) => {\n return state.diffFiles.every((diff) => {\n const highlightedLines = diff[INLINE_DIFF_LINES_KEY];\n if (highlightedLines.length) {\n return highlightedLines\n .filter((l) => l.discussions.length >= 1)\n .every((l) => l.discussionsExpanded);\n }\n if (diff.viewer.name === 'image') {\n return diff.discussions.every((discussion) => discussion.expandedOnDiff);\n }\n return true;\n });\n};\n\n/**\n * Checks if the diff has any discussion\n * @param {Boolean} diff\n * @returns {Boolean}\n */\nexport const diffHasDiscussions = () => (diff) => {\n return (\n diff.discussions?.length >= 1 ||\n diff[INLINE_DIFF_LINES_KEY].some((l) => l.discussions.length >= 1)\n );\n};\n\n/**\n * Returns an array with the discussions of the given diff\n * @param {Object} diff\n * @returns {Array}\n */\n// eslint-disable-next-line max-params\nexport const getDiffFileDiscussions = (state, getters, rootState, rootGetters) => (diff) =>\n rootGetters.discussions.filter(\n (discussion) => discussion.diff_discussion && discussion.diff_file.file_hash === diff.file_hash,\n ) || [];\n\nexport const getDiffFileByHash = (state) => (fileHash) =>\n state.diffFiles.find((file) => file.file_hash === fileHash);\n\nexport function isTreePathLoaded(state) {\n return (path) => {\n return Boolean(state.treeEntries[path]?.diffLoaded);\n };\n}\n\nexport const flatBlobsList = (state) =>\n Object.values(state.treeEntries).filter((f) => f.type === 'blob');\n\nexport const allBlobs = (state, getters) =>\n getters.flatBlobsList.reduce((acc, file) => {\n const { parentPath } = file;\n\n if (parentPath && !acc.some((f) => f.path === parentPath)) {\n acc.push({\n path: parentPath,\n isHeader: true,\n tree: [],\n });\n }\n\n acc.find((f) => f.path === parentPath).tree.push(file);\n\n return acc;\n }, []);\n\nexport const getCommentFormForDiffFile = (state) => (fileHash) =>\n state.commentForms.find((form) => form.fileHash === fileHash);\n\n/**\n * Returns the test coverage hits for a specific line of a given file\n * @param {string} file\n * @param {number} line\n * @returns {number}\n */\nexport const fileLineCoverage = (state) => (file, line) => {\n if (!state.coverageFiles.files) return {};\n const fileCoverage = state.coverageFiles.files[file];\n if (!fileCoverage) return {};\n const lineCoverage = fileCoverage[String(line)];\n\n if (lineCoverage === 0) {\n return { text: __('No test coverage'), class: 'no-coverage' };\n }\n if (lineCoverage >= 0) {\n return {\n text: n__('Test coverage: %d hit', 'Test coverage: %d hits', lineCoverage),\n class: 'coverage',\n };\n }\n return {};\n};\n\n/**\n * Returns index of a currently selected diff in diffFiles\n * @returns {number}\n */\nexport const currentDiffIndex = (state) =>\n Math.max(\n 0,\n flatBlobsList(state).findIndex((diff) => diff.fileHash === state.currentDiffFileId),\n );\n\nexport const diffLines = (state) => (file) => {\n return parallelizeDiffLines(\n file.highlighted_diff_lines || [],\n state.diffViewType === INLINE_DIFF_VIEW_TYPE,\n );\n};\n\nexport function suggestionCommitMessage(state, _, rootState) {\n return (values = {}) =>\n computeSuggestionCommitMessage({\n message: state.defaultSuggestionCommitMessage,\n values: {\n branch_name: rootState.page.mrMetadata.branch_name,\n project_path: rootState.page.mrMetadata.project_path,\n project_name: rootState.page.mrMetadata.project_name,\n username: rootState.page.mrMetadata.username,\n user_full_name: rootState.page.mrMetadata.user_full_name,\n ...values,\n },\n });\n}\n\nexport const isVirtualScrollingEnabled = (state) => {\n if (state.disableVirtualScroller || getParameterValues('virtual_scrolling')[0] === 'false') {\n return false;\n }\n\n return !state.viewDiffsFileByFile;\n};\n\nexport const isBatchLoading = (state) => state.batchLoadingState === 'loading';\nexport const isBatchLoadingError = (state) => state.batchLoadingState === 'error';\n\nexport const diffFiles = (state, getters) => {\n const { linkedFile } = getters;\n if (linkedFile) {\n const diffs = state.diffFiles.slice(0);\n diffs.splice(diffs.indexOf(linkedFile), 1);\n return [linkedFile, ...diffs];\n }\n return state.diffFiles;\n};\n\nexport const linkedFile = (state) => {\n if (!state.linkedFileHash) return null;\n return state.diffFiles.find((file) => file.file_hash === state.linkedFileHash);\n};\n","import { convertObjectPropsToCamelCase } from '~/lib/utils/common_utils';\nimport {\n DIFF_FILE_MANUAL_COLLAPSE,\n DIFF_FILE_AUTOMATIC_COLLAPSE,\n INLINE_DIFF_LINES_KEY,\n EXPANDED_LINE_TYPE,\n FILE_DIFF_POSITION_TYPE,\n} from '../constants';\nimport * as types from './mutation_types';\nimport {\n findDiffFile,\n addLineReferences,\n removeMatchLine,\n addContextLines,\n prepareDiffData,\n isDiscussionApplicableToLine,\n updateLineInFile,\n markTreeEntriesLoaded,\n} from './utils';\n\nfunction updateDiffFilesInState(state, files) {\n return Object.assign(state, { diffFiles: files });\n}\n\nexport default {\n [types.SET_BASE_CONFIG](state, options) {\n const {\n endpoint,\n endpointMetadata,\n endpointBatch,\n endpointDiffForPath,\n endpointCoverage,\n endpointUpdateUser,\n projectPath,\n dismissEndpoint,\n showSuggestPopover,\n defaultSuggestionCommitMessage,\n viewDiffsFileByFile,\n mrReviews,\n diffViewType,\n perPage,\n } = options;\n Object.assign(state, {\n endpoint,\n endpointMetadata,\n endpointBatch,\n endpointDiffForPath,\n endpointCoverage,\n endpointUpdateUser,\n projectPath,\n dismissEndpoint,\n showSuggestPopover,\n defaultSuggestionCommitMessage,\n viewDiffsFileByFile,\n mrReviews,\n diffViewType,\n perPage,\n });\n },\n\n [types.SET_LOADING](state, isLoading) {\n Object.assign(state, { isLoading });\n },\n\n [types.SET_BATCH_LOADING_STATE](state, batchLoadingState) {\n Object.assign(state, { batchLoadingState });\n },\n\n [types.SET_RETRIEVING_BATCHES](state, retrievingBatches) {\n Object.assign(state, { retrievingBatches });\n },\n\n [types.SET_DIFF_FILES](state, files) {\n updateDiffFilesInState(state, files);\n },\n\n [types.SET_DIFF_METADATA](state, data) {\n Object.assign(state, {\n ...convertObjectPropsToCamelCase(data),\n });\n },\n\n [types.SET_DIFF_DATA_BATCH](state, { diff_files: diffFiles, updatePosition = true }) {\n Object.assign(state, {\n diffFiles: prepareDiffData({\n diff: { diff_files: diffFiles },\n priorFiles: state.diffFiles,\n // when a linked file is added to diffs its position may be incorrect since it's loaded out of order\n // we need to ensure when we load it in batched request it updates it position\n updatePosition,\n }),\n treeEntries: markTreeEntriesLoaded({\n priorEntries: state.treeEntries,\n loadedFiles: diffFiles,\n }),\n });\n },\n\n [types.SET_DIFF_TREE_ENTRY](state, diffFile) {\n Object.assign(state, {\n treeEntries: markTreeEntriesLoaded({\n priorEntries: state.treeEntries,\n loadedFiles: [diffFile],\n }),\n });\n },\n\n [types.SET_COVERAGE_DATA](state, coverageFiles) {\n Object.assign(state, { coverageFiles, coverageLoaded: true });\n },\n\n [types.SET_MERGE_REQUEST_DIFFS](state, mergeRequestDiffs) {\n Object.assign(state, {\n mergeRequestDiffs,\n });\n },\n\n [types.SET_DIFF_VIEW_TYPE](state, diffViewType) {\n Object.assign(state, { diffViewType });\n },\n\n [types.TOGGLE_LINE_HAS_FORM](state, { lineCode, fileHash, hasForm }) {\n const diffFile = state.diffFiles.find((f) => f.file_hash === fileHash);\n\n if (!diffFile) return;\n\n diffFile[INLINE_DIFF_LINES_KEY].find((l) => l.line_code === lineCode).hasForm = hasForm;\n },\n\n [types.ADD_CONTEXT_LINES](state, options) {\n const { lineNumbers, contextLines, fileHash, isExpandDown, nextLineNumbers } = options;\n const { bottom } = options.params;\n const diffFile = findDiffFile(state.diffFiles, fileHash);\n\n removeMatchLine(diffFile, lineNumbers, bottom);\n\n const lines = addLineReferences(\n contextLines,\n lineNumbers,\n bottom,\n isExpandDown,\n nextLineNumbers,\n ).map((line) => {\n const lineCode =\n line.type === 'match'\n ? `${fileHash}_${line.meta_data.old_pos}_${line.meta_data.new_pos}_match`\n : line.line_code || `${fileHash}_${line.old_line}_${line.new_line}`;\n return {\n ...line,\n type: line.type || EXPANDED_LINE_TYPE,\n line_code: lineCode,\n discussions: line.discussions || [],\n hasForm: false,\n };\n });\n\n addContextLines({\n inlineLines: diffFile[INLINE_DIFF_LINES_KEY],\n contextLines: lines,\n bottom,\n lineNumbers,\n isExpandDown,\n });\n },\n\n [types.ADD_COLLAPSED_DIFFS](state, { file, data }) {\n const files = prepareDiffData({ diff: data });\n const [newFileData] = files.filter((f) => f.file_hash === file.file_hash);\n const selectedFile = state.diffFiles.find((f) => f.file_hash === file.file_hash);\n Object.assign(selectedFile, {\n ...newFileData,\n whitespaceOnlyChange: selectedFile.whitespaceOnlyChange,\n });\n },\n\n [types.SET_LINE_DISCUSSIONS_FOR_FILE](state, { discussion, diffPositionByLineCode, hash }) {\n const { latestDiff } = state;\n const originalStartLineCode = discussion.original_position?.line_range?.start?.line_code;\n const positionType = discussion.position?.position_type;\n const discussionLineCodes = [\n discussion.line_code,\n originalStartLineCode,\n ...(discussion.line_codes || []),\n ];\n const fileHash = discussion.diff_file?.file_hash;\n\n const isHashTargeted = (discussionItem) =>\n discussionItem.notes && discussionItem.notes.some((note) => hash === `note_${note.id}`);\n\n const isTargetLine = (line) =>\n discussionLineCodes.some(\n (discussionLineCode) =>\n line.line_code === discussionLineCode &&\n isDiscussionApplicableToLine({\n discussion,\n diffPosition: diffPositionByLineCode[line.line_code],\n latestDiff,\n }),\n );\n\n const isExpandedDiscussion = (discussionItem) => {\n return !discussionItem.resolved || isHashTargeted(discussionItem);\n };\n\n const file = state.diffFiles.find((diff) => diff.file_hash === fileHash);\n // a file batch might not be loaded yet when we try to add a discussion\n if (!file) return;\n const diffLines = file[INLINE_DIFF_LINES_KEY];\n\n const addDiscussion = (discussions) =>\n discussions.filter(({ id }) => discussion.id !== id).concat(discussion);\n\n if (diffLines.length && positionType !== FILE_DIFF_POSITION_TYPE) {\n const line = diffLines.find(isTargetLine);\n // skip if none of the discussion positions matched a diff position\n if (!line) return;\n const originalDiscussions = line.discussions || [];\n if (originalDiscussions.includes(discussion)) return;\n const discussions = addDiscussion(originalDiscussions);\n Object.assign(line, {\n discussions,\n discussionsExpanded: line.discussionsExpanded || discussions.some(isExpandedDiscussion),\n });\n } else {\n const originalDiscussions = file.discussions || [];\n if (originalDiscussions.includes(discussion)) return;\n Object.assign(discussion, { expandedOnDiff: isExpandedDiscussion(discussion) });\n Object.assign(file, {\n discussions: addDiscussion(originalDiscussions),\n });\n }\n },\n\n [types.TOGGLE_FILE_DISCUSSION_EXPAND](\n state,\n { discussion, expandedOnDiff = !discussion.expandedOnDiff },\n ) {\n Object.assign(discussion, { expandedOnDiff });\n const fileHash = discussion.diff_file.file_hash;\n const diff = state.diffFiles.find((f) => f.file_hash === fileHash);\n // trigger Vue reactivity\n Object.assign(diff, { discussions: [...diff.discussions] });\n },\n\n [types.REMOVE_LINE_DISCUSSIONS_FOR_FILE](state, { fileHash, lineCode }) {\n const selectedFile = state.diffFiles.find((f) => f.file_hash === fileHash);\n if (selectedFile) {\n updateLineInFile(selectedFile, lineCode, (line) =>\n Object.assign(line, {\n discussions: line.discussions.filter((discussion) => discussion.notes.length),\n }),\n );\n\n if (selectedFile.discussions && selectedFile.discussions.length) {\n selectedFile.discussions = selectedFile.discussions.filter(\n (discussion) => discussion.notes.length,\n );\n }\n }\n },\n\n [types.TOGGLE_LINE_DISCUSSIONS](state, { fileHash, lineCode, expanded }) {\n const selectedFile = state.diffFiles.find((f) => f.file_hash === fileHash);\n\n updateLineInFile(selectedFile, lineCode, (line) => {\n Object.assign(line, { discussionsExpanded: expanded });\n });\n },\n\n [types.SET_EXPAND_ALL_DIFF_DISCUSSIONS](state, expanded) {\n const lineHasDiscussion = (line) => Boolean(line.discussions?.length);\n state.diffFiles.forEach((file) => {\n const highlightedLines = file[INLINE_DIFF_LINES_KEY];\n if (highlightedLines.length) {\n const discussionLines = highlightedLines.filter(lineHasDiscussion);\n discussionLines.forEach(({ line_code }) => {\n updateLineInFile(file, line_code, (line) => {\n Object.assign(line, { discussionsExpanded: expanded });\n });\n });\n }\n\n const discussions = file.discussions.map((discussion) => {\n Object.assign(discussion, { expandedOnDiff: expanded });\n return discussion;\n });\n Object.assign(file, { discussions });\n });\n },\n\n [types.TOGGLE_FOLDER_OPEN](state, path) {\n state.treeEntries[path].opened = !state.treeEntries[path].opened;\n },\n [types.SET_FOLDER_OPEN](state, { path, opened }) {\n state.treeEntries[path].opened = opened;\n },\n [types.TREE_ENTRY_DIFF_LOADING](state, { path, loading = true }) {\n state.treeEntries[path].diffLoading = loading;\n },\n [types.SET_SHOW_TREE_LIST](state, showTreeList) {\n state.showTreeList = showTreeList;\n },\n [types.SET_CURRENT_DIFF_FILE](state, fileId) {\n state.currentDiffFileId = fileId;\n },\n [types.SET_DIFF_FILE_VIEWED](state, { id, seen }) {\n state.viewedDiffFileIds = {\n ...state.viewedDiffFileIds,\n [id]: seen,\n };\n },\n [types.OPEN_DIFF_FILE_COMMENT_FORM](state, formData) {\n state.commentForms.push({\n ...formData,\n });\n },\n [types.UPDATE_DIFF_FILE_COMMENT_FORM](state, formData) {\n const { fileHash } = formData;\n\n state.commentForms = state.commentForms.map((form) => {\n if (form.fileHash === fileHash) {\n return {\n ...formData,\n };\n }\n\n return form;\n });\n },\n [types.CLOSE_DIFF_FILE_COMMENT_FORM](state, fileHash) {\n state.commentForms = state.commentForms.filter((form) => form.fileHash !== fileHash);\n },\n [types.SET_HIGHLIGHTED_ROW](state, lineCode) {\n state.highlightedRow = lineCode;\n },\n [types.SET_TREE_DATA](state, { treeEntries, tree }) {\n state.treeEntries = treeEntries;\n state.tree = tree;\n state.isTreeLoaded = true;\n },\n [types.SET_RENDER_TREE_LIST](state, renderTreeList) {\n state.renderTreeList = renderTreeList;\n },\n [types.SET_SHOW_WHITESPACE](state, showWhitespace) {\n state.showWhitespace = showWhitespace;\n state.diffFiles = [];\n },\n [types.TOGGLE_FILE_FINDER_VISIBLE](state, visible) {\n state.fileFinderVisible = visible;\n },\n [types.REQUEST_FULL_DIFF](state, filePath) {\n const file = findDiffFile(state.diffFiles, filePath, 'file_path');\n\n file.isLoadingFullFile = true;\n },\n [types.RECEIVE_FULL_DIFF_ERROR](state, filePath) {\n const file = findDiffFile(state.diffFiles, filePath, 'file_path');\n\n file.isLoadingFullFile = false;\n },\n [types.RECEIVE_FULL_DIFF_SUCCESS](state, { filePath }) {\n const file = findDiffFile(state.diffFiles, filePath, 'file_path');\n\n file.isShowingFullFile = true;\n file.isLoadingFullFile = false;\n },\n [types.SET_FILE_COLLAPSED](\n state,\n { filePath, collapsed, trigger = DIFF_FILE_AUTOMATIC_COLLAPSE },\n ) {\n const file = state.diffFiles.find((f) => f.file_path === filePath);\n\n if (file && file.viewer) {\n if (trigger === DIFF_FILE_MANUAL_COLLAPSE) {\n file.viewer.automaticallyCollapsed = false;\n file.viewer.manuallyCollapsed = collapsed;\n } else if (trigger === DIFF_FILE_AUTOMATIC_COLLAPSE) {\n file.viewer.automaticallyCollapsed = collapsed;\n file.viewer.manuallyCollapsed = null;\n }\n }\n },\n [types.SET_FILE_FORCED_OPEN](state, { filePath, forced = true }) {\n const file = state.diffFiles.find((f) => f.file_path === filePath);\n file.viewer.forceOpen = forced;\n },\n [types.SET_CURRENT_VIEW_DIFF_FILE_LINES](state, { filePath, lines }) {\n const file = state.diffFiles.find((f) => f.file_path === filePath);\n\n file[INLINE_DIFF_LINES_KEY] = lines;\n },\n [types.ADD_CURRENT_VIEW_DIFF_FILE_LINES](state, { filePath, line }) {\n const file = state.diffFiles.find((f) => f.file_path === filePath);\n\n file[INLINE_DIFF_LINES_KEY].push(line);\n },\n [types.TOGGLE_DIFF_FILE_RENDERING_MORE](state, filePath) {\n const file = state.diffFiles.find((f) => f.file_path === filePath);\n\n file.renderingLines = !file.renderingLines;\n },\n [types.SET_DIFF_FILE_VIEWER](state, { filePath, viewer }) {\n const file = findDiffFile(state.diffFiles, filePath, 'file_path');\n\n file.viewer = viewer;\n },\n [types.SET_SHOW_SUGGEST_POPOVER](state) {\n state.showSuggestPopover = false;\n },\n [types.SET_FILE_BY_FILE](state, fileByFile) {\n state.viewDiffsFileByFile = fileByFile;\n },\n [types.SET_MR_FILE_REVIEWS](state, newReviews) {\n state.mrReviews = newReviews;\n },\n [types.DISABLE_VIRTUAL_SCROLLING](state) {\n state.disableVirtualScroller = true;\n },\n [types.TOGGLE_FILE_COMMENT_FORM](state, filePath) {\n const file = findDiffFile(state.diffFiles, filePath, 'file_path');\n\n file.hasCommentForm = !file.hasCommentForm;\n },\n [types.SET_FILE_COMMENT_FORM](state, { filePath, expanded }) {\n const file = findDiffFile(state.diffFiles, filePath, 'file_path');\n\n file.hasCommentForm = expanded;\n },\n [types.ADD_DRAFT_TO_FILE](state, { filePath, draft }) {\n const file = findDiffFile(state.diffFiles, filePath, 'file_path');\n\n file?.drafts.push(draft);\n },\n [types.SET_LINKED_FILE_HASH](state, fileHash) {\n state.linkedFileHash = fileHash;\n },\n [types.SET_COLLAPSED_STATE_FOR_ALL_FILES](state, { collapsed }) {\n state.diffFiles.forEach((file) => {\n const { viewer } = file;\n if (!viewer) return;\n viewer.automaticallyCollapsed = false;\n viewer.manuallyCollapsed = collapsed;\n });\n },\n};\n","import { TREE_TYPE } from '../constants';\n\nexport const getLowestSingleFolder = (folder) => {\n const getFolder = (blob, start = []) =>\n blob.tree.reduce(\n (acc, file) => {\n const shouldGetFolder = file.tree.length === 1 && file.tree[0].type === TREE_TYPE;\n const currentFileTypeTree = file.type === TREE_TYPE;\n const path = shouldGetFolder || currentFileTypeTree ? acc.path.concat(file.name) : acc.path;\n const tree = shouldGetFolder || currentFileTypeTree ? acc.tree.concat(file) : acc.tree;\n\n if (shouldGetFolder) {\n const firstFolder = getFolder(file);\n\n path.push(...firstFolder.path);\n tree.push(...firstFolder.tree);\n }\n\n return {\n ...acc,\n path,\n tree,\n };\n },\n { path: start, tree: [] },\n );\n const { path, tree } = getFolder(folder, [folder.name]);\n\n return {\n path: path.join('/'),\n treeAcc: tree.length ? tree[tree.length - 1].tree : null,\n };\n};\n\nexport const flattenTree = (tree) => {\n const flatten = (blobTree) =>\n blobTree.reduce((acc, file) => {\n const blob = file;\n let treeToFlatten = blob.tree;\n\n if (file.type === TREE_TYPE && file.tree.length === 1) {\n const { treeAcc, path } = getLowestSingleFolder(file);\n\n if (treeAcc) {\n blob.name = path;\n treeToFlatten = flatten(treeAcc);\n }\n }\n\n blob.tree = flatten(treeToFlatten);\n\n return acc.concat(blob);\n }, []);\n\n return flatten(tree);\n};\n\nexport const generateTreeList = (files) => {\n const { treeEntries, tree } = files.reduce(\n (acc, file) => {\n const split = file.new_path.split('/');\n\n split.forEach((name, i) => {\n let parent = acc.treeEntries[split.slice(0, i).join('/')];\n const path = `${parent ? `${parent.path}/` : ''}${name}`;\n const child = acc.treeEntries[path];\n\n if (parent && !parent.tree) {\n parent = null;\n }\n\n if (!child || !child.tree) {\n const type = path === file.new_path ? 'blob' : 'tree';\n acc.treeEntries[path] = {\n key: path,\n path,\n name,\n type,\n tree: [],\n };\n\n const entry = acc.treeEntries[path];\n\n if (type === 'blob') {\n Object.assign(entry, {\n changed: true,\n diffLoaded: false,\n diffLoading: false,\n filePaths: {\n old: file.old_path,\n new: file.new_path,\n },\n tempFile: file.new_file,\n deleted: file.deleted_file,\n fileHash: file.file_hash,\n addedLines: file.added_lines,\n removedLines: file.removed_lines,\n parentPath: parent ? `${parent.path}/` : '/',\n submodule: file.submodule,\n });\n } else {\n Object.assign(entry, {\n opened: true,\n });\n }\n\n (parent ? parent.tree : acc.tree).push(entry);\n }\n });\n\n return acc;\n },\n { treeEntries: {}, tree: [] },\n );\n\n return { treeEntries, tree: flattenTree(tree) };\n};\n","import Vue from 'vue';\nimport {\n setCookie,\n handleLocationHash,\n historyPushState,\n scrollToElement,\n} from '~/lib/utils/common_utils';\nimport { createAlert, VARIANT_WARNING } from '~/alert';\nimport axios from '~/lib/utils/axios_utils';\n\nimport { HTTP_STATUS_NOT_FOUND, HTTP_STATUS_OK } from '~/lib/utils/http_status';\nimport Poll from '~/lib/utils/poll';\nimport {\n mergeUrlParams,\n getLocationHash,\n getParameterValues,\n removeParams,\n} from '~/lib/utils/url_utility';\nimport notesEventHub from '~/notes/event_hub';\nimport { generateTreeList } from '~/diffs/utils/tree_worker_utils';\nimport { sortTree } from '~/ide/stores/utils';\nimport { detectAndConfirmSensitiveTokens } from '~/lib/utils/secret_detection';\nimport {\n isCollapsed,\n countLinesInBetween,\n findClosestMatchLine,\n lineExists,\n} from '~/diffs/utils/diff_file';\nimport {\n INLINE_DIFF_VIEW_TYPE,\n DIFF_VIEW_COOKIE_NAME,\n MR_TREE_SHOW_KEY,\n TREE_LIST_STORAGE_KEY,\n OLD_LINE_KEY,\n NEW_LINE_KEY,\n TYPE_KEY,\n MAX_RENDERING_DIFF_LINES,\n MAX_RENDERING_BULK_ROWS,\n MIN_RENDERING_MS,\n START_RENDERING_INDEX,\n INLINE_DIFF_LINES_KEY,\n DIFF_FILE_MANUAL_COLLAPSE,\n DIFF_FILE_AUTOMATIC_COLLAPSE,\n EVT_PERF_MARK_FILE_TREE_START,\n EVT_PERF_MARK_FILE_TREE_END,\n EVT_PERF_MARK_DIFF_FILES_START,\n TRACKING_CLICK_DIFF_VIEW_SETTING,\n TRACKING_DIFF_VIEW_INLINE,\n TRACKING_DIFF_VIEW_PARALLEL,\n TRACKING_CLICK_FILE_BROWSER_SETTING,\n TRACKING_FILE_BROWSER_TREE,\n TRACKING_FILE_BROWSER_LIST,\n TRACKING_CLICK_WHITESPACE_SETTING,\n TRACKING_WHITESPACE_SHOW,\n TRACKING_WHITESPACE_HIDE,\n TRACKING_CLICK_SINGLE_FILE_SETTING,\n TRACKING_SINGLE_FILE_MODE,\n TRACKING_MULTIPLE_FILES_MODE,\n EVT_MR_PREPARED,\n FILE_DIFF_POSITION_TYPE,\n EVT_DISCUSSIONS_ASSIGNED,\n} from '../constants';\nimport {\n DISCUSSION_SINGLE_DIFF_FAILED,\n BUILDING_YOUR_MR,\n SOMETHING_WENT_WRONG,\n ERROR_LOADING_FULL_DIFF,\n ERROR_DISMISSING_SUGESTION_POPOVER,\n ENCODED_FILE_PATHS_TITLE,\n ENCODED_FILE_PATHS_MESSAGE,\n} from '../i18n';\nimport eventHub from '../event_hub';\nimport { markFileReview, setReviewsForMergeRequest } from '../utils/file_reviews';\nimport { getDerivedMergeRequestInformation } from '../utils/merge_request';\nimport { queueRedisHllEvents } from '../utils/queue_events';\nimport * as types from './mutation_types';\nimport {\n getDiffPositionByLineCode,\n getNoteFormData,\n convertExpandLines,\n idleCallback,\n prepareLineForRenamedFile,\n parseUrlHashAsFileHash,\n isUrlHashNoteLink,\n findDiffFile,\n} from './utils';\n\nexport const setBaseConfig = ({ commit }, options) => {\n const {\n endpoint,\n endpointMetadata,\n endpointBatch,\n endpointDiffForPath,\n endpointCoverage,\n endpointUpdateUser,\n projectPath,\n dismissEndpoint,\n showSuggestPopover,\n defaultSuggestionCommitMessage,\n viewDiffsFileByFile,\n mrReviews,\n diffViewType,\n perPage,\n } = options;\n commit(types.SET_BASE_CONFIG, {\n endpoint,\n endpointMetadata,\n endpointBatch,\n endpointDiffForPath,\n endpointCoverage,\n endpointUpdateUser,\n projectPath,\n dismissEndpoint,\n showSuggestPopover,\n defaultSuggestionCommitMessage,\n viewDiffsFileByFile,\n mrReviews,\n diffViewType,\n perPage,\n });\n\n Array.from(new Set(Object.values(mrReviews).flat())).forEach((id) => {\n const viewedId = id.replace(/^hash:/, '');\n\n commit(types.SET_DIFF_FILE_VIEWED, { id: viewedId, seen: true });\n });\n};\n\nexport const prefetchSingleFile = async ({ state, getters, commit }, treeEntry) => {\n const url = new URL(state.endpointBatch, 'https://gitlab.com');\n const diffId = getParameterValues('diff_id', url)[0];\n const startSha = getParameterValues('start_sha', url)[0];\n\n if (\n treeEntry &&\n !treeEntry.diffLoaded &&\n !treeEntry.diffLoading &&\n !getters.getDiffFileByHash(treeEntry.fileHash)\n ) {\n const urlParams = {\n old_path: treeEntry.filePaths.old,\n new_path: treeEntry.filePaths.new,\n w: state.showWhitespace ? '0' : '1',\n view: 'inline',\n commit_id: getters.commitId,\n diff_head: true,\n };\n\n if (diffId) {\n urlParams.diff_id = diffId;\n }\n\n if (startSha) {\n urlParams.start_sha = startSha;\n }\n\n commit(types.TREE_ENTRY_DIFF_LOADING, { path: treeEntry.filePaths.new });\n\n try {\n const { data: diffData } = await axios.get(\n mergeUrlParams({ ...urlParams }, state.endpointDiffForPath),\n );\n\n commit(types.SET_DIFF_DATA_BATCH, { diff_files: diffData.diff_files });\n\n eventHub.$emit('diffFilesModified');\n } catch (e) {\n commit(types.TREE_ENTRY_DIFF_LOADING, { path: treeEntry.filePaths.new, loading: false });\n }\n }\n};\n\nexport const fetchFileByFile = async ({ state, getters, commit }) => {\n const isNoteLink = isUrlHashNoteLink(window?.location?.hash);\n const id = parseUrlHashAsFileHash(window?.location?.hash, state.currentDiffFileId);\n const url = new URL(state.endpointBatch, 'https://gitlab.com');\n const diffId = getParameterValues('diff_id', url)[0];\n const startSha = getParameterValues('start_sha', url)[0];\n const treeEntry = id\n ? getters.flatBlobsList.find(({ fileHash }) => fileHash === id)\n : getters.flatBlobsList[0];\n\n eventHub.$emit(EVT_PERF_MARK_DIFF_FILES_START);\n\n if (treeEntry && !treeEntry.diffLoaded && !getters.getDiffFileByHash(id)) {\n // Overloading \"batch\" loading indicators so the UI stays mostly the same\n commit(types.SET_BATCH_LOADING_STATE, 'loading');\n commit(types.SET_RETRIEVING_BATCHES, true);\n\n const urlParams = {\n old_path: treeEntry.filePaths.old,\n new_path: treeEntry.filePaths.new,\n w: state.showWhitespace ? '0' : '1',\n view: 'inline',\n commit_id: getters.commitId,\n diff_head: true,\n };\n\n if (diffId) {\n urlParams.diff_id = diffId;\n }\n\n if (startSha) {\n urlParams.start_sha = startSha;\n }\n\n axios\n .get(mergeUrlParams({ ...urlParams }, state.endpointDiffForPath))\n .then(({ data: diffData }) => {\n commit(types.SET_DIFF_DATA_BATCH, { diff_files: diffData.diff_files });\n\n if (!isNoteLink && !state.currentDiffFileId) {\n commit(types.SET_CURRENT_DIFF_FILE, state.diffFiles[0]?.file_hash || '');\n }\n\n commit(types.SET_BATCH_LOADING_STATE, 'loaded');\n\n eventHub.$emit('diffFilesModified');\n })\n .catch(() => {\n commit(types.SET_BATCH_LOADING_STATE, 'error');\n })\n .finally(() => {\n commit(types.SET_RETRIEVING_BATCHES, false);\n });\n }\n};\n\nexport const fetchDiffFilesBatch = ({ commit, state, dispatch }, linkedFileLoading = false) => {\n let perPage = state.viewDiffsFileByFile ? 1 : state.perPage;\n let increaseAmount = 1.4;\n const startPage = 0;\n const id = window?.location?.hash;\n const isNoteLink = id.indexOf('#note') === 0;\n const urlParams = {\n w: state.showWhitespace ? '0' : '1',\n view: 'inline',\n };\n const hash = window.location.hash.replace('#', '').split('diff-content-').pop();\n let totalLoaded = 0;\n let scrolledVirtualScroller = hash === '';\n\n if (!linkedFileLoading) {\n commit(types.SET_BATCH_LOADING_STATE, 'loading');\n commit(types.SET_RETRIEVING_BATCHES, true);\n }\n eventHub.$emit(EVT_PERF_MARK_DIFF_FILES_START);\n\n const getBatch = (page = startPage) =>\n axios\n .get(mergeUrlParams({ ...urlParams, page, per_page: perPage }, state.endpointBatch))\n .then(({ data: { pagination, diff_files: diffFiles } }) => {\n totalLoaded += diffFiles.length;\n\n commit(types.SET_DIFF_DATA_BATCH, { diff_files: diffFiles });\n commit(types.SET_BATCH_LOADING_STATE, 'loaded');\n\n if (!scrolledVirtualScroller && !linkedFileLoading) {\n const index = state.diffFiles.findIndex(\n (f) =>\n f.file_hash === hash || f[INLINE_DIFF_LINES_KEY].find((l) => l.line_code === hash),\n );\n\n if (index >= 0) {\n eventHub.$emit('scrollToIndex', index);\n scrolledVirtualScroller = true;\n }\n }\n\n if (!isNoteLink && !state.currentDiffFileId) {\n commit(types.SET_CURRENT_DIFF_FILE, diffFiles[0]?.file_hash);\n }\n\n if (isNoteLink) {\n dispatch('setCurrentDiffFileIdFromNote', id.split('_').pop());\n }\n\n if (totalLoaded === pagination.total_pages || pagination.total_pages === null) {\n commit(types.SET_RETRIEVING_BATCHES, false);\n eventHub.$emit('doneLoadingBatches');\n\n // We need to check that the currentDiffFileId points to a file that exists\n if (\n state.currentDiffFileId &&\n !state.diffFiles.some((f) => f.file_hash === state.currentDiffFileId) &&\n !isNoteLink\n ) {\n commit(types.SET_CURRENT_DIFF_FILE, state.diffFiles[0].file_hash);\n }\n\n if (state.diffFiles?.length) {\n // eslint-disable-next-line promise/catch-or-return,promise/no-nesting\n import('~/code_navigation').then((m) =>\n m.default({\n blobs: state.diffFiles\n .filter((f) => f.code_navigation_path)\n .map((f) => ({\n path: f.new_path,\n codeNavigationPath: f.code_navigation_path,\n })),\n definitionPathPrefix: state.definitionPathPrefix,\n }),\n );\n }\n\n return null;\n }\n\n const nextPage = page + perPage;\n perPage = Math.min(Math.ceil(perPage * increaseAmount), 30);\n increaseAmount = Math.min(increaseAmount + 0.2, 2);\n\n return nextPage;\n })\n .then((nextPage) => {\n if (nextPage) {\n return getBatch(nextPage);\n }\n\n return null;\n })\n .catch((error) => {\n commit(types.SET_RETRIEVING_BATCHES, false);\n commit(types.SET_BATCH_LOADING_STATE, 'error');\n throw error;\n });\n\n return getBatch();\n};\n\nexport const fetchDiffFilesMeta = ({ commit, state }) => {\n const urlParams = {\n view: 'inline',\n w: state.showWhitespace ? '0' : '1',\n };\n\n commit(types.SET_LOADING, true);\n\n return axios\n .get(mergeUrlParams(urlParams, state.endpointMetadata))\n .then(({ data }) => {\n const strippedData = { ...data };\n delete strippedData.diff_files;\n\n if (strippedData.has_encoded_file_paths) {\n createAlert({\n title: ENCODED_FILE_PATHS_TITLE,\n message: ENCODED_FILE_PATHS_MESSAGE,\n dismissible: false,\n });\n }\n\n commit(types.SET_LOADING, false);\n commit(types.SET_MERGE_REQUEST_DIFFS, data.merge_request_diffs || []);\n commit(types.SET_DIFF_METADATA, strippedData);\n\n eventHub.$emit(EVT_PERF_MARK_FILE_TREE_START);\n const { treeEntries, tree } = generateTreeList(data.diff_files);\n eventHub.$emit(EVT_PERF_MARK_FILE_TREE_END);\n commit(types.SET_TREE_DATA, {\n treeEntries,\n tree: sortTree(tree),\n });\n\n return data;\n })\n .catch((error) => {\n if (error.response.status === HTTP_STATUS_NOT_FOUND) {\n const alert = createAlert({\n message: BUILDING_YOUR_MR,\n variant: VARIANT_WARNING,\n });\n\n eventHub.$once(EVT_MR_PREPARED, () => alert.dismiss());\n } else {\n throw error;\n }\n });\n};\n\nexport function prefetchFileNeighbors({ getters, dispatch }) {\n const { flatBlobsList: allBlobs, currentDiffIndex: currentIndex } = getters;\n\n const previous = Math.max(currentIndex - 1, 0);\n const next = Math.min(allBlobs.length - 1, currentIndex + 1);\n\n dispatch('prefetchSingleFile', allBlobs[next]);\n dispatch('prefetchSingleFile', allBlobs[previous]);\n}\n\nexport const fetchCoverageFiles = ({ commit, state }) => {\n const coveragePoll = new Poll({\n resource: {\n getCoverageReports: (endpoint) => axios.get(endpoint),\n },\n data: state.endpointCoverage,\n method: 'getCoverageReports',\n successCallback: ({ status, data }) => {\n if (status === HTTP_STATUS_OK) {\n commit(types.SET_COVERAGE_DATA, data);\n\n coveragePoll.stop();\n }\n },\n errorCallback: () =>\n createAlert({\n message: SOMETHING_WENT_WRONG,\n }),\n });\n\n coveragePoll.makeRequest();\n};\n\nexport const setHighlightedRow = ({ commit }, { lineCode, event }) => {\n if (event && event.target.href) {\n event.preventDefault();\n window.history.replaceState(null, undefined, removeParams(['file'], event.target.href));\n }\n const fileHash = lineCode.split('_')[0];\n commit(types.SET_HIGHLIGHTED_ROW, lineCode);\n commit(types.SET_CURRENT_DIFF_FILE, fileHash);\n\n handleLocationHash();\n};\n\n// This is adding line discussions to the actual lines in the diff tree\n// once for parallel and once for inline mode\nexport const assignDiscussionsToDiff = (\n { commit, state, rootState, dispatch },\n discussions = rootState.notes.discussions,\n) => {\n const id = window?.location?.hash;\n const isNoteLink = id.indexOf('#note') === 0;\n const diffPositionByLineCode = getDiffPositionByLineCode(state.diffFiles);\n const hash = getLocationHash();\n\n discussions\n .filter((discussion) => discussion?.diff_discussion)\n .forEach((discussion) => {\n commit(types.SET_LINE_DISCUSSIONS_FOR_FILE, {\n discussion,\n diffPositionByLineCode,\n hash,\n });\n });\n\n if (isNoteLink) {\n dispatch('setCurrentDiffFileIdFromNote', id.split('_').pop());\n }\n\n Vue.nextTick(() => {\n eventHub.$emit(EVT_DISCUSSIONS_ASSIGNED);\n });\n};\n\nexport const removeDiscussionsFromDiff = ({ commit }, removeDiscussion) => {\n if (!removeDiscussion.diff_file) return;\n\n const {\n diff_file: { file_hash: fileHash },\n line_code: lineCode,\n id,\n } = removeDiscussion;\n commit(types.REMOVE_LINE_DISCUSSIONS_FOR_FILE, { fileHash, lineCode, id });\n};\n\nexport const toggleLineDiscussions = ({ commit }, options) => {\n commit(types.TOGGLE_LINE_DISCUSSIONS, options);\n};\n\nexport const renderFileForDiscussionId = ({ commit, rootState, state }, discussionId) => {\n const discussion = rootState.notes.discussions.find((d) => d.id === discussionId);\n\n if (discussion && discussion.diff_file) {\n const file = state.diffFiles.find((f) => f.file_hash === discussion.diff_file.file_hash);\n\n if (file) {\n if (file.viewer.automaticallyCollapsed) {\n notesEventHub.$emit(`loadCollapsedDiff/${file.file_hash}`);\n scrollToElement(document.getElementById(file.file_hash));\n } else if (file.viewer.manuallyCollapsed) {\n commit(types.SET_FILE_COLLAPSED, {\n filePath: file.file_path,\n collapsed: false,\n trigger: DIFF_FILE_AUTOMATIC_COLLAPSE,\n });\n notesEventHub.$emit('scrollToDiscussion');\n } else {\n notesEventHub.$emit('scrollToDiscussion');\n }\n }\n }\n};\n\nexport const setDiffViewType = ({ commit }, diffViewType) => {\n commit(types.SET_DIFF_VIEW_TYPE, diffViewType);\n\n setCookie(DIFF_VIEW_COOKIE_NAME, diffViewType);\n const url = mergeUrlParams({ view: diffViewType }, window.location.href);\n historyPushState(url);\n\n queueRedisHllEvents([\n TRACKING_CLICK_DIFF_VIEW_SETTING,\n diffViewType === INLINE_DIFF_VIEW_TYPE\n ? TRACKING_DIFF_VIEW_INLINE\n : TRACKING_DIFF_VIEW_PARALLEL,\n ]);\n};\n\nexport const showCommentForm = ({ commit }, { lineCode, fileHash }) => {\n commit(types.TOGGLE_LINE_HAS_FORM, { lineCode, fileHash, hasForm: true });\n\n // The comment form for diffs gets focussed differently due to the way the virtual scroller\n // works. If we focus the comment form on mount and the comment form gets removed and then\n // added again the page will scroll in unexpected ways\n setTimeout(() => {\n const el = document.querySelector(\n `[data-line-code=\"${lineCode}\"] textarea, [data-line-code=\"${lineCode}\"] [contenteditable=\"true\"]`,\n );\n\n if (!el) return;\n\n const { bottom } = el.getBoundingClientRect();\n const overflowBottom = bottom - window.innerHeight;\n\n // Prevent the browser scrolling for us\n // We handle the scrolling to not break the diffs virtual scroller\n el.focus({ preventScroll: true });\n\n if (overflowBottom > 0) {\n window.scrollBy(0, Math.floor(Math.abs(overflowBottom)) + 150);\n }\n });\n};\n\nexport const cancelCommentForm = ({ commit }, { lineCode, fileHash }) => {\n commit(types.TOGGLE_LINE_HAS_FORM, { lineCode, fileHash, hasForm: false });\n};\n\nexport const loadMoreLines = ({ commit }, options) => {\n const { endpoint, params, lineNumbers, fileHash, isExpandDown, nextLineNumbers } = options;\n\n params.from_merge_request = true;\n\n return axios.get(endpoint, { params }).then((res) => {\n const contextLines = res.data || [];\n\n commit(types.ADD_CONTEXT_LINES, {\n lineNumbers,\n contextLines,\n params,\n fileHash,\n isExpandDown,\n nextLineNumbers,\n });\n });\n};\n\nexport const scrollToLineIfNeededInline = (_, line) => {\n const hash = getLocationHash();\n\n if (hash && line.line_code === hash) {\n handleLocationHash();\n }\n};\n\nexport const scrollToLineIfNeededParallel = (_, line) => {\n const hash = getLocationHash();\n\n if (\n hash &&\n ((line.left && line.left.line_code === hash) || (line.right && line.right.line_code === hash))\n ) {\n handleLocationHash();\n }\n};\n\nexport const loadCollapsedDiff = ({ commit, getters, state }, { file, params = {} }) => {\n const versionPath = state.mergeRequestDiff?.version_path;\n const loadParams = {\n commit_id: getters.commitId,\n w: state.showWhitespace ? '0' : '1',\n ...params,\n };\n\n if (versionPath) {\n const { diffId, startSha } = getDerivedMergeRequestInformation({ endpoint: versionPath });\n\n loadParams.diff_id = diffId;\n loadParams.start_sha = startSha;\n }\n\n return axios.get(file.load_collapsed_diff_url, { params: loadParams }).then((res) => {\n commit(types.ADD_COLLAPSED_DIFFS, {\n file,\n data: res.data,\n });\n });\n};\n\n/**\n * Toggles the file discussions after user clicked on the toggle discussions button.\n * @param {Object} discussion\n */\nexport const toggleFileDiscussion = ({ commit }, discussion) => {\n commit(types.TOGGLE_FILE_DISCUSSION_EXPAND, { discussion });\n};\n\nexport const toggleFileDiscussionWrappers = ({ commit, getters }, diff) => {\n const discussionWrappersExpanded = getters.diffHasExpandedDiscussions(diff);\n const lineCodesWithDiscussions = new Set();\n const lineHasDiscussion = (line) => Boolean(line?.discussions.length);\n const registerDiscussionLine = (line) => lineCodesWithDiscussions.add(line.line_code);\n\n diff[INLINE_DIFF_LINES_KEY].filter(lineHasDiscussion).forEach(registerDiscussionLine);\n\n if (lineCodesWithDiscussions.size) {\n Array.from(lineCodesWithDiscussions).forEach((lineCode) => {\n commit(types.TOGGLE_LINE_DISCUSSIONS, {\n fileHash: diff.file_hash,\n expanded: !discussionWrappersExpanded,\n lineCode,\n });\n });\n }\n\n if (diff.discussions.length) {\n diff.discussions.forEach((discussion) => {\n if (discussion.position?.position_type === FILE_DIFF_POSITION_TYPE) {\n commit(types.TOGGLE_FILE_DISCUSSION_EXPAND, {\n discussion,\n expandedOnDiff: !discussionWrappersExpanded,\n });\n }\n });\n }\n};\n\nexport const saveDiffDiscussion = async ({ state, dispatch }, { note, formData }) => {\n const postData = getNoteFormData({\n commit: state.commit,\n note,\n showWhitespace: state.showWhitespace,\n ...formData,\n });\n\n const confirmSubmit = await detectAndConfirmSensitiveTokens({ content: note });\n if (!confirmSubmit) {\n return null;\n }\n\n return dispatch('saveNote', postData, { root: true })\n .then((result) => dispatch('updateDiscussion', result.discussion, { root: true }))\n .then((discussion) => dispatch('assignDiscussionsToDiff', [discussion]))\n .then(() => dispatch('updateResolvableDiscussionsCounts', null, { root: true }))\n .then(() => dispatch('closeDiffFileCommentForm', formData.diffFile.file_hash))\n .then(() => {\n if (formData.positionType === FILE_DIFF_POSITION_TYPE) {\n dispatch('toggleFileCommentForm', formData.diffFile.file_path);\n }\n });\n};\n\nexport const toggleTreeOpen = ({ commit }, path) => {\n commit(types.TOGGLE_FOLDER_OPEN, path);\n};\n\nexport const setTreeOpen = ({ commit }, { path, opened }) => {\n commit(types.SET_FOLDER_OPEN, { path, opened });\n};\n\nexport const setCurrentFileHash = ({ commit }, hash) => {\n commit(types.SET_CURRENT_DIFF_FILE, hash);\n};\n\nexport const goToFile = ({ state, commit, dispatch, getters }, { path }) => {\n if (!state.viewDiffsFileByFile) {\n dispatch('scrollToFile', { path });\n } else {\n if (!state.treeEntries[path]) return;\n\n dispatch('unlinkFile');\n\n const { fileHash } = state.treeEntries[path];\n\n commit(types.SET_CURRENT_DIFF_FILE, fileHash);\n\n const newUrl = new URL(window.location);\n newUrl.hash = fileHash;\n historyPushState(newUrl, { skipScrolling: true });\n scrollToElement('.diff-files-holder', { duration: 0 });\n\n if (!getters.isTreePathLoaded(path)) {\n dispatch('fetchFileByFile');\n }\n }\n};\n\nexport const scrollToFile = ({ state, commit, getters }, { path }) => {\n if (!state.treeEntries[path]) return;\n\n const { fileHash } = state.treeEntries[path];\n\n commit(types.SET_CURRENT_DIFF_FILE, fileHash);\n\n if (getters.isVirtualScrollingEnabled) {\n eventHub.$emit('scrollToFileHash', fileHash);\n\n setTimeout(() => {\n window.history.replaceState(null, null, `#${fileHash}`);\n });\n } else {\n document.location.hash = fileHash;\n\n setTimeout(() => {\n handleLocationHash();\n });\n }\n};\n\nexport const setShowTreeList = ({ commit }, { showTreeList, saving = true }) => {\n commit(types.SET_SHOW_TREE_LIST, showTreeList);\n\n if (saving) {\n localStorage.setItem(MR_TREE_SHOW_KEY, showTreeList);\n }\n};\n\nexport const toggleTreeList = ({ state, commit }) => {\n commit(types.SET_SHOW_TREE_LIST, !state.showTreeList);\n};\n\nexport const openDiffFileCommentForm = ({ commit, getters }, formData) => {\n const form = getters.getCommentFormForDiffFile(formData.fileHash);\n\n if (form) {\n commit(types.UPDATE_DIFF_FILE_COMMENT_FORM, formData);\n } else {\n commit(types.OPEN_DIFF_FILE_COMMENT_FORM, formData);\n }\n};\n\nexport const closeDiffFileCommentForm = ({ commit }, fileHash) => {\n commit(types.CLOSE_DIFF_FILE_COMMENT_FORM, fileHash);\n};\n\nexport const setRenderTreeList = ({ commit }, { renderTreeList, trackClick = true }) => {\n commit(types.SET_RENDER_TREE_LIST, renderTreeList);\n\n localStorage.setItem(TREE_LIST_STORAGE_KEY, renderTreeList);\n\n if (trackClick) {\n const events = [TRACKING_CLICK_FILE_BROWSER_SETTING];\n\n if (renderTreeList) {\n events.push(TRACKING_FILE_BROWSER_TREE);\n } else {\n events.push(TRACKING_FILE_BROWSER_LIST);\n }\n\n queueRedisHllEvents(events);\n }\n};\n\nexport const setShowWhitespace = async (\n { state, commit },\n { url, showWhitespace, updateDatabase = true, trackClick = true },\n) => {\n if (updateDatabase && Boolean(window.gon?.current_user_id)) {\n await axios.put(url || state.endpointUpdateUser, { show_whitespace_in_diffs: showWhitespace });\n }\n\n commit(types.SET_SHOW_WHITESPACE, showWhitespace);\n notesEventHub.$emit('refetchDiffData');\n\n if (trackClick) {\n const events = [TRACKING_CLICK_WHITESPACE_SETTING];\n\n if (showWhitespace) {\n events.push(TRACKING_WHITESPACE_SHOW);\n } else {\n events.push(TRACKING_WHITESPACE_HIDE);\n }\n\n queueRedisHllEvents(events);\n }\n};\n\nexport const toggleFileFinder = ({ commit }, visible) => {\n commit(types.TOGGLE_FILE_FINDER_VISIBLE, visible);\n};\n\nexport const receiveFullDiffError = ({ commit }, filePath) => {\n commit(types.RECEIVE_FULL_DIFF_ERROR, filePath);\n createAlert({\n message: ERROR_LOADING_FULL_DIFF,\n });\n};\n\nexport const setExpandedDiffLines = ({ commit }, { file, data }) => {\n const expandedDiffLines = convertExpandLines({\n diffLines: file[INLINE_DIFF_LINES_KEY],\n typeKey: TYPE_KEY,\n oldLineKey: OLD_LINE_KEY,\n newLineKey: NEW_LINE_KEY,\n data,\n mapLine: ({ line, oldLine, newLine }) =>\n Object.assign(line, {\n old_line: oldLine,\n new_line: newLine,\n line_code: `${file.file_hash}_${oldLine}_${newLine}`,\n }),\n });\n\n if (expandedDiffLines.length > MAX_RENDERING_DIFF_LINES) {\n let index = START_RENDERING_INDEX;\n commit(types.SET_CURRENT_VIEW_DIFF_FILE_LINES, {\n filePath: file.file_path,\n lines: expandedDiffLines.slice(0, index),\n });\n commit(types.TOGGLE_DIFF_FILE_RENDERING_MORE, file.file_path);\n\n const idleCb = (t) => {\n const startIndex = index;\n\n while (\n t.timeRemaining() >= MIN_RENDERING_MS &&\n index !== expandedDiffLines.length &&\n index - startIndex !== MAX_RENDERING_BULK_ROWS\n ) {\n const line = expandedDiffLines[index];\n\n if (line) {\n commit(types.ADD_CURRENT_VIEW_DIFF_FILE_LINES, { filePath: file.file_path, line });\n index += 1;\n }\n }\n\n if (index !== expandedDiffLines.length) {\n idleCallback(idleCb);\n } else {\n commit(types.TOGGLE_DIFF_FILE_RENDERING_MORE, file.file_path);\n }\n };\n\n idleCallback(idleCb);\n } else {\n commit(types.SET_CURRENT_VIEW_DIFF_FILE_LINES, {\n filePath: file.file_path,\n lines: expandedDiffLines,\n });\n }\n};\n\nexport const fetchFullDiff = ({ commit, dispatch }, file) =>\n axios\n .get(file.context_lines_path, {\n params: {\n full: true,\n from_merge_request: true,\n },\n })\n .then(({ data }) => {\n commit(types.RECEIVE_FULL_DIFF_SUCCESS, { filePath: file.file_path });\n\n dispatch('setExpandedDiffLines', { file, data });\n })\n .catch(() => dispatch('receiveFullDiffError', file.file_path));\n\nexport const toggleFullDiff = ({ dispatch, commit, getters, state }, filePath) => {\n const file = state.diffFiles.find((f) => f.file_path === filePath);\n\n commit(types.REQUEST_FULL_DIFF, filePath);\n\n if (file.isShowingFullFile) {\n dispatch('loadCollapsedDiff', { file })\n .then(() => dispatch('assignDiscussionsToDiff', getters.getDiffFileDiscussions(file)))\n .catch(() => dispatch('receiveFullDiffError', filePath));\n } else {\n dispatch('fetchFullDiff', file);\n }\n};\n\nexport function switchToFullDiffFromRenamedFile({ commit }, { diffFile }) {\n return axios\n .get(diffFile.context_lines_path, {\n params: {\n full: true,\n from_merge_request: true,\n },\n })\n .then(({ data }) => {\n const lines = data.map((line, index) =>\n prepareLineForRenamedFile({\n diffViewType: 'inline',\n line,\n diffFile,\n index,\n }),\n );\n\n commit(types.SET_DIFF_FILE_VIEWER, {\n filePath: diffFile.file_path,\n viewer: {\n ...diffFile.alternate_viewer,\n automaticallyCollapsed: false,\n manuallyCollapsed: false,\n forceOpen: false,\n },\n });\n commit(types.SET_CURRENT_VIEW_DIFF_FILE_LINES, { filePath: diffFile.file_path, lines });\n });\n}\n\nexport const setFileCollapsedByUser = ({ commit }, { filePath, collapsed }) => {\n commit(types.SET_FILE_COLLAPSED, { filePath, collapsed, trigger: DIFF_FILE_MANUAL_COLLAPSE });\n};\n\nexport const setFileCollapsedAutomatically = ({ commit }, { filePath, collapsed }) => {\n commit(types.SET_FILE_COLLAPSED, { filePath, collapsed, trigger: DIFF_FILE_AUTOMATIC_COLLAPSE });\n};\n\nexport function setFileForcedOpen({ commit }, { filePath, forced }) {\n commit(types.SET_FILE_FORCED_OPEN, { filePath, forced });\n}\n\nexport const setSuggestPopoverDismissed = ({ commit, state }) =>\n axios\n .post(state.dismissEndpoint, {\n feature_name: 'suggest_popover_dismissed',\n })\n .then(() => {\n commit(types.SET_SHOW_SUGGEST_POPOVER);\n })\n .catch(() => {\n createAlert({\n message: ERROR_DISMISSING_SUGESTION_POPOVER,\n });\n });\n\nexport function changeCurrentCommit({ dispatch, commit, state }, { commitId }) {\n if (!commitId) {\n return Promise.reject(new Error('`commitId` is a required argument'));\n }\n if (!state.commit) {\n return Promise.reject(new Error('`state` must already contain a valid `commit`')); // eslint-disable-line @gitlab/require-i18n-strings\n }\n\n // this is less than ideal, see: https://gitlab.com/gitlab-org/gitlab/-/issues/215421\n const commitRE = new RegExp(state.commit.id, 'g');\n\n commit(types.SET_DIFF_FILES, []);\n commit(types.SET_BASE_CONFIG, {\n ...state,\n endpoint: state.endpoint.replace(commitRE, commitId),\n endpointBatch: state.endpointBatch.replace(commitRE, commitId),\n endpointMetadata: state.endpointMetadata.replace(commitRE, commitId),\n });\n\n return dispatch('fetchDiffFilesMeta');\n}\n\nexport function moveToNeighboringCommit({ dispatch, state }, { direction }) {\n const previousCommitId = state.commit?.prev_commit_id;\n const nextCommitId = state.commit?.next_commit_id;\n const canMove = {\n next: !state.isLoading && nextCommitId,\n previous: !state.isLoading && previousCommitId,\n };\n let commitId;\n\n if (direction === 'next' && canMove.next) {\n commitId = nextCommitId;\n } else if (direction === 'previous' && canMove.previous) {\n commitId = previousCommitId;\n }\n\n if (commitId) {\n dispatch('changeCurrentCommit', { commitId });\n }\n}\n\nexport const rereadNoteHash = ({ state, dispatch }) => {\n const urlHash = window?.location?.hash;\n\n if (isUrlHashNoteLink(urlHash)) {\n dispatch('setCurrentDiffFileIdFromNote', urlHash.split('_').pop())\n .then(() => {\n if (state.viewDiffsFileByFile) {\n dispatch('fetchFileByFile');\n }\n })\n .catch(() => {\n createAlert({\n message: DISCUSSION_SINGLE_DIFF_FAILED,\n });\n });\n }\n};\n\nexport const setCurrentDiffFileIdFromNote = ({ commit, getters, rootGetters }, noteId) => {\n const note = rootGetters.notesById[noteId];\n\n if (!note) return;\n\n const fileHash = rootGetters.getDiscussion(note.discussion_id).diff_file?.file_hash;\n\n if (fileHash && getters.flatBlobsList.some((f) => f.fileHash === fileHash)) {\n commit(types.SET_CURRENT_DIFF_FILE, fileHash);\n }\n};\n\nexport const navigateToDiffFileIndex = ({ state, getters, commit, dispatch }, index) => {\n dispatch('unlinkFile');\n\n const { fileHash } = getters.flatBlobsList[index];\n document.location.hash = fileHash;\n\n commit(types.SET_CURRENT_DIFF_FILE, fileHash);\n\n if (state.viewDiffsFileByFile) {\n dispatch('fetchFileByFile');\n }\n};\n\nexport const setFileByFile = ({ state, commit }, { fileByFile }) => {\n commit(types.SET_FILE_BY_FILE, fileByFile);\n\n const events = [TRACKING_CLICK_SINGLE_FILE_SETTING];\n\n if (fileByFile) {\n events.push(TRACKING_SINGLE_FILE_MODE);\n } else {\n events.push(TRACKING_MULTIPLE_FILES_MODE);\n }\n\n queueRedisHllEvents(events);\n\n return axios\n .put(state.endpointUpdateUser, {\n view_diffs_file_by_file: fileByFile,\n })\n .then(() => {\n // https://gitlab.com/gitlab-org/gitlab/-/issues/326961\n // We can't even do a simple console warning here because\n // the pipeline will fail. However, the issue above will\n // eventually handle errors appropriately.\n // console.warn('Saving the file-by-fil user preference failed.');\n });\n};\n\nexport function reviewFile({ commit, state }, { file, reviewed = true }) {\n const { mrPath } = getDerivedMergeRequestInformation({ endpoint: file.load_collapsed_diff_url });\n const reviews = markFileReview(state.mrReviews, file, reviewed);\n\n setReviewsForMergeRequest(mrPath, reviews);\n\n commit(types.SET_DIFF_FILE_VIEWED, { id: file.file_hash, seen: reviewed });\n commit(types.SET_MR_FILE_REVIEWS, reviews);\n}\n\nexport const disableVirtualScroller = ({ commit }) => commit(types.DISABLE_VIRTUAL_SCROLLING);\n\nexport const toggleFileCommentForm = ({ state, commit }, filePath) => {\n const file = findDiffFile(state.diffFiles, filePath, 'file_path');\n if (isCollapsed(file)) {\n commit(types.SET_FILE_COMMENT_FORM, { filePath, expanded: true });\n } else {\n commit(types.TOGGLE_FILE_COMMENT_FORM, filePath);\n }\n commit(types.SET_FILE_COLLAPSED, { filePath, collapsed: false });\n};\n\nexport const addDraftToFile = ({ commit }, { filePath, draft }) =>\n commit(types.ADD_DRAFT_TO_FILE, { filePath, draft });\n\nexport const fetchLinkedFile = ({ state, commit, dispatch }, linkedFileUrl) => {\n const isNoteLink = isUrlHashNoteLink(window.location.hash);\n const [, fragmentFileHash, oldNumber, newNumber] =\n window.location.hash.substring(1).match(/^([0-9a-f]{40})_([0-9]+)_([0-9]+)$/) || [];\n\n commit(types.SET_BATCH_LOADING_STATE, 'loading');\n commit(types.SET_RETRIEVING_BATCHES, true);\n\n return axios\n .get(linkedFileUrl)\n .then(async ({ data: diffData }) => {\n const [{ file_hash }] = diffData.diff_files;\n\n // we must store linked file in the `diffs`, otherwise collapsing and commenting on a file won't work\n // once the same file arrives in a file batch we must only update its' position\n // we also must not update file's position since it's loaded out of order\n commit(types.SET_DIFF_DATA_BATCH, { diff_files: diffData.diff_files, updatePosition: false });\n commit(types.SET_LINKED_FILE_HASH, file_hash);\n\n if (!isNoteLink && !state.currentDiffFileId) {\n commit(types.SET_CURRENT_DIFF_FILE, file_hash);\n }\n\n if (fragmentFileHash && oldNumber && newNumber) {\n await dispatch('fetchLinkedExpandedLine', {\n fileHash: fragmentFileHash,\n oldLine: parseInt(oldNumber, 10),\n newLine: parseInt(newNumber, 10),\n });\n }\n\n commit(types.SET_BATCH_LOADING_STATE, 'loaded');\n\n setTimeout(() => {\n handleLocationHash();\n });\n\n eventHub.$emit('diffFilesModified');\n })\n .catch((error) => {\n commit(types.SET_BATCH_LOADING_STATE, 'error');\n throw error;\n })\n .finally(() => {\n commit(types.SET_RETRIEVING_BATCHES, false);\n });\n};\n\nexport const fetchLinkedExpandedLine = ({ getters, dispatch }, { fileHash, oldLine, newLine }) => {\n const file = getters.linkedFile;\n if (!file || file.file_hash !== fileHash) return Promise.resolve();\n\n const lines = file[INLINE_DIFF_LINES_KEY];\n if (lineExists(lines, oldLine, newLine)) return Promise.resolve();\n\n const matchLine = findClosestMatchLine(lines, newLine);\n const { new_pos: matchNewPosition, old_pos: matchOldPosition } = matchLine.meta_data;\n const matchLineIndex = lines.indexOf(matchLine);\n const linesInBetween = countLinesInBetween(lines, matchLineIndex);\n const isExpandBoth = linesInBetween !== -1 && linesInBetween < 20;\n const previousLine = lines[matchLineIndex - 1];\n const previousLineNumber = previousLine?.new_line;\n const isLastMatchLine = matchLineIndex === lines.length - 1;\n const isExpandDown =\n isLastMatchLine ||\n (previousLine && !isExpandBoth && newLine - previousLineNumber < matchNewPosition - newLine);\n const loadLines = (params, rest) =>\n dispatch('loadMoreLines', {\n endpoint: file.context_lines_path,\n fileHash: file.file_hash,\n params: {\n offset: matchNewPosition - matchOldPosition,\n ...params,\n },\n isExpandDown: false,\n lineNumbers: {\n oldLineNumber: matchOldPosition,\n newLineNumber: matchNewPosition,\n },\n ...rest,\n });\n\n if (isExpandBoth) {\n return loadLines({\n unfold: false,\n since: previousLine.new_line + 1,\n to: matchNewPosition - 1,\n bottom: false,\n });\n }\n\n if (!isExpandDown) {\n return loadLines({\n unfold: true,\n since: newLine,\n to: matchNewPosition - 1,\n bottom: isLastMatchLine,\n });\n }\n\n const rest = {};\n if (!isLastMatchLine) {\n Object.assign(rest, {\n isExpandDown: true,\n lineNumbers: {\n oldLineNumber: previousLine.old_line,\n newLineNumber: previousLine.new_line,\n },\n nextLineNumbers: {\n old_line: matchOldPosition,\n new_line: matchNewPosition,\n },\n });\n }\n return loadLines(\n {\n unfold: true,\n since: previousLine.new_line + 1,\n to: newLine,\n bottom: true,\n },\n rest,\n );\n};\n\nexport const unlinkFile = ({ getters, commit }) => {\n if (!getters.linkedFile) return;\n commit(types.SET_LINKED_FILE_HASH, null);\n const newUrl = new URL(window.location);\n newUrl.searchParams.delete('file');\n newUrl.hash = '';\n window.history.replaceState(null, undefined, newUrl);\n};\n\nexport const toggleAllDiffDiscussions = ({ commit, getters }) => {\n commit(types.SET_EXPAND_ALL_DIFF_DISCUSSIONS, !getters.allDiffDiscussionsExpanded);\n};\n\nexport const expandAllFiles = ({ commit }) => {\n commit(types.SET_COLLAPSED_STATE_FOR_ALL_FILES, { collapsed: false });\n};\n\nexport const collapseAllFiles = ({ commit }) => {\n commit(types.SET_COLLAPSED_STATE_FOR_ALL_FILES, { collapsed: true });\n};\n","export const SET_BASE_CONFIG = 'SET_BASE_CONFIG';\nexport const SET_LOADING = 'SET_LOADING';\nexport const SET_BATCH_LOADING_STATE = 'SET_BATCH_LOADING_STATE';\nexport const SET_RETRIEVING_BATCHES = 'SET_RETRIEVING_BATCHES';\n\nexport const SET_DIFF_METADATA = 'SET_DIFF_METADATA';\nexport const SET_DIFF_DATA_BATCH = 'SET_DIFF_DATA_BATCH';\nexport const SET_DIFF_FILES = 'SET_DIFF_FILES';\nexport const SET_DIFF_TREE_ENTRY = 'SET_DIFF_TREE_ENTRY';\n\nexport const SET_MR_FILE_REVIEWS = 'SET_MR_FILE_REVIEWS';\n\nexport const SET_DIFF_VIEW_TYPE = 'SET_DIFF_VIEW_TYPE';\nexport const SET_COVERAGE_DATA = 'SET_COVERAGE_DATA';\nexport const SET_MERGE_REQUEST_DIFFS = 'SET_MERGE_REQUEST_DIFFS';\nexport const TOGGLE_LINE_HAS_FORM = 'TOGGLE_LINE_HAS_FORM';\nexport const ADD_CONTEXT_LINES = 'ADD_CONTEXT_LINES';\nexport const ADD_COLLAPSED_DIFFS = 'ADD_COLLAPSED_DIFFS';\nexport const RENDER_FILE = 'RENDER_FILE';\nexport const SET_LINE_DISCUSSIONS_FOR_FILE = 'SET_LINE_DISCUSSIONS_FOR_FILE';\nexport const TOGGLE_FILE_DISCUSSION_EXPAND = 'TOGGLE_FILE_DISCUSSION_EXPAND';\nexport const REMOVE_LINE_DISCUSSIONS_FOR_FILE = 'REMOVE_LINE_DISCUSSIONS_FOR_FILE';\nexport const TOGGLE_FOLDER_OPEN = 'TOGGLE_FOLDER_OPEN';\nexport const SET_FOLDER_OPEN = 'SET_FOLDER_OPEN';\nexport const TREE_ENTRY_DIFF_LOADING = 'TREE_ENTRY_DIFF_LOADING';\nexport const SET_SHOW_TREE_LIST = 'SET_SHOW_TREE_LIST';\nexport const SET_CURRENT_DIFF_FILE = 'SET_CURRENT_DIFF_FILE';\nexport const SET_DIFF_FILE_VIEWED = 'SET_DIFF_FILE_VIEWED';\nexport const SET_LINKED_FILE_HASH = 'SET_LINKED_FILE_HASH';\n\nexport const OPEN_DIFF_FILE_COMMENT_FORM = 'OPEN_DIFF_FILE_COMMENT_FORM';\nexport const UPDATE_DIFF_FILE_COMMENT_FORM = 'UPDATE_DIFF_FILE_COMMENT_FORM';\nexport const CLOSE_DIFF_FILE_COMMENT_FORM = 'CLOSE_DIFF_FILE_COMMENT_FORM';\nexport const SET_HIGHLIGHTED_ROW = 'SET_HIGHLIGHTED_ROW';\n\nexport const SET_TREE_DATA = 'SET_TREE_DATA';\nexport const SET_RENDER_TREE_LIST = 'SET_RENDER_TREE_LIST';\nexport const SET_SHOW_WHITESPACE = 'SET_SHOW_WHITESPACE';\nexport const SET_FILE_BY_FILE = 'SET_FILE_BY_FILE';\nexport const TOGGLE_FILE_FINDER_VISIBLE = 'TOGGLE_FILE_FINDER_VISIBLE';\n\nexport const REQUEST_FULL_DIFF = 'REQUEST_FULL_DIFF';\nexport const RECEIVE_FULL_DIFF_SUCCESS = 'RECEIVE_FULL_DIFF_SUCCESS';\nexport const RECEIVE_FULL_DIFF_ERROR = 'RECEIVE_FULL_DIFF_ERROR';\nexport const SET_FILE_COLLAPSED = 'SET_FILE_COLLAPSED';\nexport const SET_FILE_FORCED_OPEN = 'SET_FILE_FORCED_OPEN';\n\nexport const SET_CURRENT_VIEW_DIFF_FILE_LINES = 'SET_CURRENT_VIEW_DIFF_FILE_LINES';\nexport const ADD_CURRENT_VIEW_DIFF_FILE_LINES = 'ADD_CURRENT_VIEW_DIFF_FILE_LINES';\nexport const TOGGLE_DIFF_FILE_RENDERING_MORE = 'TOGGLE_DIFF_FILE_RENDERING_MORE';\n\nexport const SET_DIFF_FILE_VIEWER = 'SET_DIFF_FILE_VIEWER';\n\nexport const SET_SHOW_SUGGEST_POPOVER = 'SET_SHOW_SUGGEST_POPOVER';\n\nexport const SET_EXPAND_ALL_DIFF_DISCUSSIONS = 'SET_EXPAND_ALL_DIFF_DISCUSSIONS';\nexport const TOGGLE_LINE_DISCUSSIONS = 'TOGGLE_LINE_DISCUSSIONS';\nexport const DISABLE_VIRTUAL_SCROLLING = 'DISABLE_VIRTUAL_SCROLLING';\n\nexport const TOGGLE_FILE_COMMENT_FORM = 'TOGGLE_FILE_COMMENT_FORM';\nexport const SET_FILE_COMMENT_FORM = 'SET_FILE_COMMENT_FORM';\nexport const ADD_DRAFT_TO_FILE = 'ADD_DRAFT_TO_FILE';\n\nexport const SET_COLLAPSED_STATE_FOR_ALL_FILES = 'SET_COLLAPSED_STATE_FOR_ALL_FILES';\n","import { INLINE_DIFF_VIEW_TYPE } from '../../constants';\n\nexport default () => ({\n isLoading: true,\n isTreeLoaded: false,\n batchLoadingState: null,\n retrievingBatches: false,\n addedLines: null,\n removedLines: null,\n endpoint: '',\n endpointUpdateUser: '',\n endpointDiffForPath: '',\n basePath: '',\n commit: null,\n startVersion: null, // Null unless a target diff is selected for comparison that is not the \"base\" diff\n diffFiles: [],\n coverageFiles: {},\n coverageLoaded: false,\n mergeRequestDiffs: [],\n mergeRequestDiff: null,\n diffViewType: INLINE_DIFF_VIEW_TYPE,\n tree: [],\n treeEntries: {},\n showTreeList: true,\n currentDiffFileId: '',\n projectPath: '',\n viewedDiffFileIds: {},\n commentForms: [],\n highlightedRow: null,\n renderTreeList: true,\n showWhitespace: true,\n viewDiffsFileByFile: false,\n fileFinderVisible: false,\n dismissEndpoint: '',\n showSuggestPopover: true,\n defaultSuggestionCommitMessage: '',\n mrReviews: {},\n latestDiff: true,\n disableVirtualScroller: false,\n linkedFileHash: null,\n});\n","export default {\n SET_ACTIVE_TAB: 'SET_ACTIVE_TAB',\n SET_ENDPOINTS: 'SET_ENDPOINTS',\n SET_MR_METADATA: 'SET_MR_METADATA',\n SET_FAILED_TO_LOAD_METADATA: 'SET_FAILED_TO_LOAD_METADATA',\n};\n","import axios from '~/lib/utils/axios_utils';\n\nimport types from './mutation_types';\n\nexport function setActiveTab({ commit }, tab) {\n commit(types.SET_ACTIVE_TAB, tab);\n}\n\nexport function setEndpoints({ commit }, endpoints) {\n commit(types.SET_ENDPOINTS, endpoints);\n}\n\nexport async function fetchMrMetadata({ state, commit }) {\n if (state.endpoints?.metadata) {\n commit(types.SET_FAILED_TO_LOAD_METADATA, false);\n try {\n const { data } = await axios.get(state.endpoints.metadata);\n commit(types.SET_MR_METADATA, data);\n } catch (error) {\n commit(types.SET_FAILED_TO_LOAD_METADATA, true);\n }\n }\n}\n\nexport const toggleAllVisibleDiscussions = ({ getters, dispatch }) => {\n if (getters.isDiffsPage) {\n dispatch('diffs/toggleAllDiffDiscussions');\n } else {\n dispatch('toggleAllDiscussions');\n }\n};\n","// Note: this getter is important because\n// `noteableData` is namespaced under `notes` for `~/mr_notes/stores`\n// while `noteableData` is directly available as `state.noteableData` for `~/notes/stores`\nexport const getNoteableData = (state) => state.notes.noteableData;\n\nexport default {\n isLoggedIn(state, getters) {\n return Boolean(getters.getUserData.id);\n },\n isDiffsPage(state) {\n return state.activeTab === 'diffs';\n },\n allVisibleDiscussionsExpanded(state, getters) {\n if (getters.isDiffsPage) return getters['diffs/allDiffDiscussionsExpanded'];\n return getters.allDiscussionsExpanded;\n },\n};\n","import types from './mutation_types';\n\nexport default {\n [types.SET_ACTIVE_TAB](state, tab) {\n Object.assign(state, { activeTab: tab });\n },\n [types.SET_ENDPOINTS](state, endpoints) {\n Object.assign(state, { endpoints });\n },\n [types.SET_MR_METADATA](state, metadata) {\n Object.assign(state, { mrMetadata: metadata });\n },\n [types.SET_FAILED_TO_LOAD_METADATA](state, value) {\n Object.assign(state, { failedToLoadMetadata: value });\n },\n};\n","export default {\n SET_DRAWER: 'SET_DRAWER',\n};\n","import * as types from './mutation_types';\n\nexport const setDrawer = ({ commit }, data) => {\n return commit(types.default.SET_DRAWER, data);\n};\n","export const activeDrawer = (state) => state.activeDrawer;\n","import types from './mutation_types';\n\nexport default {\n [types.SET_DRAWER](state, drawer) {\n Object.assign(state, { activeDrawer: drawer });\n },\n};\n","import Vue from 'vue';\n// eslint-disable-next-line no-restricted-imports\nimport Vuex from 'vuex';\nimport batchCommentsModule from '~/batch_comments/stores/modules/batch_comments';\nimport diffsModule from '~/diffs/store/modules';\nimport notesModule from '~/notes/stores/modules';\nimport mrPageModule from './modules';\nimport findingsDrawer from './drawer';\n\nVue.use(Vuex);\n\nexport const createModules = () => ({\n page: mrPageModule(),\n notes: notesModule(),\n diffs: diffsModule(),\n batchComments: batchCommentsModule(),\n findingsDrawer: findingsDrawer(),\n});\n\nexport const createStore = () =>\n new Vuex.Store({\n modules: createModules(),\n });\n\nexport default createStore();\n","import * as actions from '../actions';\nimport getters from '../getters';\nimport mutations from '../mutations';\n\nexport default () => ({\n state: {\n endpoints: {},\n activeTab: null,\n mrMetadata: {},\n failedToLoadMetadata: false,\n },\n actions,\n getters,\n mutations,\n});\n","import * as getters from '../getters';\nimport mutations from '../mutations';\nimport * as actions from '../actions';\nimport createState from './diff_state';\n\nexport default () => ({\n namespaced: true,\n state: createState(),\n getters,\n actions,\n mutations,\n});\n","import * as actions from './actions';\nimport * as getters from './getters';\nimport mutations from './mutations';\nimport state from './state';\n\nexport default () => ({\n namespaced: true,\n state: state(),\n mutations,\n actions,\n getters,\n});\n","export default () => ({\n withBatchComments: true,\n isDraftsFetched: false,\n drafts: [],\n isPublishing: false,\n currentlyPublishingDrafts: [],\n shouldAnimateReviewButton: false,\n reviewBarRendered: false,\n});\n","import * as actions from './actions';\nimport * as getters from './getters';\nimport mutations from './mutations';\n\nexport default () => ({\n namespaced: true,\n state: {\n activeDrawer: {},\n },\n mutations,\n actions,\n getters,\n});\n","'use strict';\n\nvar Type = require('../type');\n\nfunction resolveYamlNull(data) {\n if (data === null) return true;\n\n var max = data.length;\n\n return (max === 1 && data === '~') ||\n (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL'));\n}\n\nfunction constructYamlNull() {\n return null;\n}\n\nfunction isNull(object) {\n return object === null;\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:null', {\n kind: 'scalar',\n resolve: resolveYamlNull,\n construct: constructYamlNull,\n predicate: isNull,\n represent: {\n canonical: function () { return '~'; },\n lowercase: function () { return 'null'; },\n uppercase: function () { return 'NULL'; },\n camelcase: function () { return 'Null'; }\n },\n defaultStyle: 'lowercase'\n});\n","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.viewer)?_c('div',{staticClass:\"diff-file preview-container\"},[_c(_vm.viewer,{tag:\"component\",attrs:{\"diff-file\":_vm.diffFile,\"diff-mode\":_vm.diffMode,\"new-path\":_vm.fullNewPath,\"old-path\":_vm.fullOldPath,\"old-size\":_vm.oldSize,\"new-size\":_vm.newSize,\"project-path\":_vm.projectPath,\"a-mode\":_vm.aMode,\"b-mode\":_vm.bMode},scopedSlots:_vm._u([{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [_vm._t(\"image-overlay\",null,{\"renderedWidth\":renderedWidth,\"renderedHeight\":renderedHeight})]}}],null,true)}),_vm._v(\" \"),_vm._t(\"default\")],2):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const diffModes = {\n replaced: 'replaced',\n new: 'new',\n deleted: 'deleted',\n renamed: 'renamed',\n};\n\nexport const imageViewMode = {\n twoup: 'twoup',\n swipe: 'swipe',\n onion: 'onion',\n};\n","<script>\nimport DownloadViewer from '../../content_viewer/viewers/download_viewer.vue';\nimport { diffModes } from '../constants';\n\nexport default {\n components: {\n DownloadViewer,\n },\n props: {\n diffMode: {\n type: String,\n required: true,\n },\n newPath: {\n type: String,\n required: true,\n },\n oldPath: {\n type: String,\n required: true,\n },\n projectPath: {\n type: String,\n required: false,\n default: '',\n },\n },\n diffModes,\n};\n</script>\n\n<template>\n <div class=\"diff-file-container\">\n <div class=\"diff-viewer\">\n <div v-if=\"diffMode === $options.diffModes.replaced\" class=\"two-up view row\">\n <div class=\"col-sm-6 deleted\">\n <download-viewer :path=\"oldPath\" :project-path=\"projectPath\" />\n </div>\n <div class=\"col-sm-6 added\">\n <download-viewer :path=\"newPath\" :project-path=\"projectPath\" />\n </div>\n </div>\n <div v-else-if=\"diffMode === $options.diffModes.new\" class=\"added\">\n <download-viewer :path=\"newPath\" :project-path=\"projectPath\" />\n </div>\n <div v-else class=\"deleted\">\n <download-viewer :path=\"oldPath\" :project-path=\"projectPath\" />\n </div>\n </div>\n </div>\n</template>\n","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!./download_diff_viewer.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!./download_diff_viewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./download_diff_viewer.vue?vue&type=template&id=45a37e32\"\nimport script from \"./download_diff_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./download_diff_viewer.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('div',{staticClass:\"diff-file-container\"},[_c('div',{staticClass:\"diff-viewer\"},[(_vm.diffMode === _vm.$options.diffModes.replaced)?_c('div',{staticClass:\"two-up view row\"},[_c('div',{staticClass:\"col-sm-6 deleted\"},[_c('download-viewer',{attrs:{\"path\":_vm.oldPath,\"project-path\":_vm.projectPath}})],1),_vm._v(\" \"),_c('div',{staticClass:\"col-sm-6 added\"},[_c('download-viewer',{attrs:{\"path\":_vm.newPath,\"project-path\":_vm.projectPath}})],1)]):(_vm.diffMode === _vm.$options.diffModes.new)?_c('div',{staticClass:\"added\"},[_c('download-viewer',{attrs:{\"path\":_vm.newPath,\"project-path\":_vm.projectPath}})],1):_c('div',{staticClass:\"deleted\"},[_c('download-viewer',{attrs:{\"path\":_vm.oldPath,\"project-path\":_vm.projectPath}})],1)])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function pixeliseValue(val) {\n return val ? `${val}px` : '';\n}\n","<script>\nimport ImageViewer from '../../../content_viewer/viewers/image_viewer.vue';\nimport { pixeliseValue } from '../../../lib/utils/dom_utils';\n\nexport default {\n components: {\n ImageViewer,\n },\n props: {\n newPath: {\n type: String,\n required: true,\n },\n oldPath: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n onionMaxWidth: undefined,\n onionMaxHeight: undefined,\n onionOldImgInfo: null,\n onionNewImgInfo: null,\n onionDraggerPos: 0,\n onionOpacity: 1,\n dragging: false,\n };\n },\n computed: {\n onionMaxPixelWidth() {\n return pixeliseValue(this.onionMaxWidth);\n },\n onionMaxPixelHeight() {\n return pixeliseValue(this.onionMaxHeight);\n },\n onionDraggerPixelPos() {\n return pixeliseValue(this.onionDraggerPos);\n },\n },\n beforeDestroy() {\n document.body.removeEventListener('mouseup', this.stopDrag);\n document.body.removeEventListener('touchend', this.stopDrag);\n document.body.removeEventListener('mousemove', this.dragMove);\n document.body.removeEventListener('touchmove', this.dragMove);\n },\n methods: {\n dragMove(e) {\n if (!this.dragging) return;\n const moveX = e.pageX || e.touches[0].pageX;\n const left = moveX - this.$refs.dragTrack.getBoundingClientRect().left;\n const dragTrackWidth =\n this.$refs.dragTrack.clientWidth - this.$refs.dragger.clientWidth || 100;\n\n let leftValue = left;\n if (leftValue < 0) leftValue = 0;\n if (leftValue > dragTrackWidth) leftValue = dragTrackWidth;\n\n this.onionOpacity = left / dragTrackWidth;\n this.onionDraggerPos = leftValue;\n },\n startDrag() {\n this.dragging = true;\n document.body.style.userSelect = 'none';\n document.body.addEventListener('mousemove', this.dragMove);\n document.body.addEventListener('touchmove', this.dragMove);\n },\n stopDrag() {\n this.dragging = false;\n document.body.style.userSelect = '';\n document.body.removeEventListener('mousemove', this.dragMove);\n document.body.removeEventListener('touchmove', this.dragMove);\n },\n prepareOnionSkin() {\n if (this.onionOldImgInfo && this.onionNewImgInfo) {\n this.onionMaxWidth = Math.max(\n this.onionOldImgInfo.renderedWidth,\n this.onionNewImgInfo.renderedWidth,\n );\n this.onionMaxHeight = Math.max(\n this.onionOldImgInfo.renderedHeight,\n this.onionNewImgInfo.renderedHeight,\n );\n\n this.onionOpacity = 1;\n this.onionDraggerPos =\n this.$refs.dragTrack.clientWidth - this.$refs.dragger.clientWidth || 100;\n\n document.body.addEventListener('mouseup', this.stopDrag);\n document.body.addEventListener('touchend', this.stopDrag);\n }\n },\n onionNewImgLoaded(imgInfo) {\n this.onionNewImgInfo = imgInfo;\n this.prepareOnionSkin();\n },\n onionOldImgLoaded(imgInfo) {\n this.onionOldImgInfo = imgInfo;\n this.prepareOnionSkin();\n },\n },\n};\n</script>\n\n<template>\n <div class=\"onion-skin view\">\n <div\n :style=\"{\n width: onionMaxPixelWidth,\n height: onionMaxPixelHeight,\n 'user-select': dragging ? 'none' : null,\n }\"\n class=\"onion-skin-frame\"\n >\n <div\n :style=\"{\n width: onionMaxPixelWidth,\n height: onionMaxPixelHeight,\n }\"\n class=\"frame deleted\"\n >\n <image-viewer\n key=\"onionOldImg\"\n :render-info=\"false\"\n :path=\"oldPath\"\n @imgLoaded=\"onionOldImgLoaded\"\n />\n </div>\n <div\n ref=\"addedFrame\"\n :style=\"{\n opacity: onionOpacity,\n width: onionMaxPixelWidth,\n height: onionMaxPixelHeight,\n }\"\n class=\"added frame\"\n >\n <image-viewer\n key=\"onionNewImg\"\n :render-info=\"false\"\n :path=\"newPath\"\n @imgLoaded=\"onionNewImgLoaded\"\n >\n <template #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <slot\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n name=\"image-overlay\"\n ></slot>\n </template>\n </image-viewer>\n </div>\n <div class=\"controls\">\n <div class=\"transparent\"></div>\n <div\n ref=\"dragTrack\"\n class=\"drag-track\"\n @mousedown=\"startDrag\"\n @mouseup=\"stopDrag\"\n @touchstart=\"startDrag\"\n @touchend=\"stopDrag\"\n >\n <div ref=\"dragger\" :style=\"{ left: onionDraggerPixelPos }\" class=\"dragger\"></div>\n </div>\n <div class=\"opaque\"></div>\n </div>\n </div>\n </div>\n</template>\n","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!./onion_skin_viewer.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!./onion_skin_viewer.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./onion_skin_viewer.vue?vue&type=template&id=5a4671c8\"\nimport script from \"./onion_skin_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./onion_skin_viewer.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('div',{staticClass:\"onion-skin view\"},[_c('div',{staticClass:\"onion-skin-frame\",style:({\n width: _vm.onionMaxPixelWidth,\n height: _vm.onionMaxPixelHeight,\n 'user-select': _vm.dragging ? 'none' : null,\n })},[_c('div',{staticClass:\"frame deleted\",style:({\n width: _vm.onionMaxPixelWidth,\n height: _vm.onionMaxPixelHeight,\n })},[_c('image-viewer',{key:\"onionOldImg\",attrs:{\"render-info\":false,\"path\":_vm.oldPath},on:{\"imgLoaded\":_vm.onionOldImgLoaded}})],1),_vm._v(\" \"),_c('div',{ref:\"addedFrame\",staticClass:\"added frame\",style:({\n opacity: _vm.onionOpacity,\n width: _vm.onionMaxPixelWidth,\n height: _vm.onionMaxPixelHeight,\n })},[_c('image-viewer',{key:\"onionNewImg\",attrs:{\"render-info\":false,\"path\":_vm.newPath},on:{\"imgLoaded\":_vm.onionNewImgLoaded},scopedSlots:_vm._u([{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [_vm._t(\"image-overlay\",null,{\"renderedWidth\":renderedWidth,\"renderedHeight\":renderedHeight})]}}],null,true)})],1),_vm._v(\" \"),_c('div',{staticClass:\"controls\"},[_c('div',{staticClass:\"transparent\"}),_vm._v(\" \"),_c('div',{ref:\"dragTrack\",staticClass:\"drag-track\",on:{\"mousedown\":_vm.startDrag,\"mouseup\":_vm.stopDrag,\"touchstart\":_vm.startDrag,\"touchend\":_vm.stopDrag}},[_c('div',{ref:\"dragger\",staticClass:\"dragger\",style:({ left: _vm.onionDraggerPixelPos })})]),_vm._v(\" \"),_c('div',{staticClass:\"opaque\"})])])])\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!./swipe_viewer.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!./swipe_viewer.vue?vue&type=script&lang=js\"","<script>\nimport { throttle } from 'lodash';\nimport ImageViewer from '../../../content_viewer/viewers/image_viewer.vue';\nimport { pixeliseValue } from '../../../lib/utils/dom_utils';\n\nexport default {\n components: {\n ImageViewer,\n },\n props: {\n newPath: {\n type: String,\n required: true,\n },\n oldPath: {\n type: String,\n required: true,\n },\n },\n data() {\n return {\n dragging: false,\n swipeOldImgInfo: null,\n swipeNewImgInfo: null,\n swipeMaxWidth: undefined,\n swipeMaxHeight: undefined,\n swipeBarPos: 1,\n swipeWrapWidth: 0,\n };\n },\n computed: {\n swipeMaxPixelWidth() {\n return pixeliseValue(this.swipeMaxWidth);\n },\n swipeMaxPixelHeight() {\n return pixeliseValue(this.swipeMaxHeight);\n },\n swipeWrapPixelWidth() {\n return pixeliseValue(this.swipeWrapWidth);\n },\n swipeBarPixelPos() {\n return pixeliseValue(this.swipeBarPos);\n },\n },\n beforeDestroy() {\n window.removeEventListener('resize', this.resizeThrottled, false);\n document.body.removeEventListener('mouseup', this.stopDrag);\n document.body.removeEventListener('mousemove', this.dragMove);\n document.body.removeEventListener('touchend', this.stopDrag);\n document.body.removeEventListener('touchmove', this.dragMove);\n },\n mounted() {\n window.addEventListener('resize', this.resize, false);\n },\n methods: {\n dragMove(e) {\n if (!this.dragging) return;\n\n const moveX = e.pageX || e.touches[0].pageX;\n let leftValue = moveX - this.$refs.swipeFrame.getBoundingClientRect().left;\n const { clientWidth } = this.$refs.swipeFrame;\n if (leftValue <= 0) {\n leftValue = 0;\n } else if (leftValue > clientWidth) {\n leftValue = clientWidth;\n }\n\n this.swipeWrapWidth = (leftValue / clientWidth) * 100;\n this.swipeBarPos = leftValue;\n },\n startDrag() {\n this.dragging = true;\n document.body.addEventListener('mousemove', this.dragMove);\n document.body.addEventListener('touchmove', this.dragMove);\n },\n stopDrag() {\n this.dragging = false;\n document.body.removeEventListener('mousemove', this.dragMove);\n document.body.removeEventListener('touchmove', this.dragMove);\n },\n prepareSwipe() {\n if (this.swipeOldImgInfo && this.swipeNewImgInfo && this.swipeOldImgInfo.renderedWidth > 0) {\n // Add 2 for border width\n this.swipeMaxWidth =\n Math.max(this.swipeOldImgInfo.renderedWidth, this.swipeNewImgInfo.renderedWidth) + 2;\n this.swipeMaxHeight =\n Math.max(this.swipeOldImgInfo.renderedHeight, this.swipeNewImgInfo.renderedHeight) + 2;\n\n document.body.addEventListener('mouseup', this.stopDrag);\n document.body.addEventListener('touchend', this.stopDrag);\n }\n },\n swipeNewImgLoaded(imgInfo) {\n this.swipeNewImgInfo = imgInfo;\n this.prepareSwipe();\n },\n swipeOldImgLoaded(imgInfo) {\n this.swipeOldImgInfo = imgInfo;\n this.prepareSwipe();\n },\n resize: throttle(function throttledResize() {\n this.swipeBarPos = 0;\n this.swipeWrapWidth = 0;\n this.prepareSwipe();\n }, 400),\n },\n};\n</script>\n\n<template>\n <div class=\"swipe view\">\n <div\n ref=\"swipeFrame\"\n :style=\"{\n width: swipeMaxPixelWidth,\n height: swipeMaxPixelHeight,\n 'user-select': dragging ? 'none' : null,\n }\"\n class=\"swipe-frame\"\n >\n <image-viewer\n key=\"swipeOldImg\"\n ref=\"swipeOldImg\"\n :render-info=\"false\"\n :path=\"oldPath\"\n class=\"frame deleted\"\n @imgLoaded=\"swipeOldImgLoaded\"\n />\n <div\n ref=\"swipeWrap\"\n :style=\"{\n width: `${swipeWrapWidth}%`,\n }\"\n class=\"swipe-wrap\"\n >\n <image-viewer\n key=\"swipeNewImg\"\n :render-info=\"false\"\n :path=\"newPath\"\n :style=\"{\n width: swipeMaxPixelWidth,\n }\"\n class=\"frame added\"\n @imgLoaded=\"swipeNewImgLoaded\"\n >\n <template #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <slot\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n name=\"image-overlay\"\n ></slot>\n </template>\n </image-viewer>\n </div>\n <span\n ref=\"swipeBar\"\n :style=\"{ left: swipeBarPixelPos }\"\n class=\"swipe-bar\"\n @mousedown=\"startDrag\"\n @mouseup=\"stopDrag\"\n @touchstart=\"startDrag\"\n @touchend=\"stopDrag\"\n >\n <span class=\"top-handle\"></span> <span class=\"bottom-handle\"></span>\n </span>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./swipe_viewer.vue?vue&type=template&id=6f12ef5d\"\nimport script from \"./swipe_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./swipe_viewer.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('div',{staticClass:\"swipe view\"},[_c('div',{ref:\"swipeFrame\",staticClass:\"swipe-frame\",style:({\n width: _vm.swipeMaxPixelWidth,\n height: _vm.swipeMaxPixelHeight,\n 'user-select': _vm.dragging ? 'none' : null,\n })},[_c('image-viewer',{key:\"swipeOldImg\",ref:\"swipeOldImg\",staticClass:\"frame deleted\",attrs:{\"render-info\":false,\"path\":_vm.oldPath},on:{\"imgLoaded\":_vm.swipeOldImgLoaded}}),_vm._v(\" \"),_c('div',{ref:\"swipeWrap\",staticClass:\"swipe-wrap\",style:({\n width: `${_vm.swipeWrapWidth}%`,\n })},[_c('image-viewer',{key:\"swipeNewImg\",staticClass:\"frame added\",style:({\n width: _vm.swipeMaxPixelWidth,\n }),attrs:{\"render-info\":false,\"path\":_vm.newPath},on:{\"imgLoaded\":_vm.swipeNewImgLoaded},scopedSlots:_vm._u([{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [_vm._t(\"image-overlay\",null,{\"renderedWidth\":renderedWidth,\"renderedHeight\":renderedHeight})]}}],null,true)})],1),_vm._v(\" \"),_c('span',{ref:\"swipeBar\",staticClass:\"swipe-bar\",style:({ left: _vm.swipeBarPixelPos }),on:{\"mousedown\":_vm.startDrag,\"mouseup\":_vm.stopDrag,\"touchstart\":_vm.startDrag,\"touchend\":_vm.stopDrag}},[_c('span',{staticClass:\"top-handle\"}),_vm._v(\" \"),_c('span',{staticClass:\"bottom-handle\"})])],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!./two_up_viewer.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!./two_up_viewer.vue?vue&type=script&lang=js\"","<script>\nimport ImageViewer from '../../../content_viewer/viewers/image_viewer.vue';\n\nexport default {\n components: {\n ImageViewer,\n },\n props: {\n newPath: {\n type: String,\n required: true,\n },\n oldPath: {\n type: String,\n required: true,\n },\n newSize: {\n type: Number,\n required: false,\n default: 0,\n },\n oldSize: {\n type: Number,\n required: false,\n default: 0,\n },\n },\n};\n</script>\n\n<template>\n <div class=\"two-up view gl-flex\">\n <image-viewer\n :path=\"oldPath\"\n :file-size=\"oldSize\"\n :render-info=\"true\"\n inner-css-classes=\"frame deleted\"\n class=\"wrap w-50\"\n />\n <image-viewer\n :path=\"newPath\"\n :file-size=\"newSize\"\n :render-info=\"true\"\n :inner-css-classes=\"['frame', 'added']\"\n class=\"wrap w-50\"\n >\n <template #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <slot\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n name=\"image-overlay\"\n ></slot>\n </template>\n </image-viewer>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./two_up_viewer.vue?vue&type=template&id=af139274\"\nimport script from \"./two_up_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./two_up_viewer.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('div',{staticClass:\"two-up view gl-flex\"},[_c('image-viewer',{staticClass:\"wrap w-50\",attrs:{\"path\":_vm.oldPath,\"file-size\":_vm.oldSize,\"render-info\":true,\"inner-css-classes\":\"frame deleted\"}}),_vm._v(\" \"),_c('image-viewer',{staticClass:\"wrap w-50\",attrs:{\"path\":_vm.newPath,\"file-size\":_vm.newSize,\"render-info\":true,\"inner-css-classes\":['frame', 'added']},scopedSlots:_vm._u([{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [_vm._t(\"image-overlay\",null,{\"renderedWidth\":renderedWidth,\"renderedHeight\":renderedHeight})]}}],null,true)})],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!./image_diff_viewer.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!./image_diff_viewer.vue?vue&type=script&lang=js\"","<script>\nimport ImageViewer from '../../content_viewer/viewers/image_viewer.vue';\nimport { diffModes, imageViewMode } from '../constants';\nimport OnionSkinViewer from './image_diff/onion_skin_viewer.vue';\nimport SwipeViewer from './image_diff/swipe_viewer.vue';\nimport TwoUpViewer from './image_diff/two_up_viewer.vue';\n\nexport default {\n components: {\n ImageViewer,\n },\n props: {\n diffMode: {\n type: String,\n required: true,\n },\n newPath: {\n type: String,\n required: true,\n },\n oldPath: {\n type: String,\n required: true,\n },\n newSize: {\n type: Number,\n required: false,\n default: 0,\n },\n oldSize: {\n type: Number,\n required: false,\n default: 0,\n },\n },\n data() {\n return {\n mode: imageViewMode.twoup,\n };\n },\n computed: {\n imageViewComponent() {\n switch (this.mode) {\n case imageViewMode.twoup:\n return TwoUpViewer;\n case imageViewMode.swipe:\n return SwipeViewer;\n case imageViewMode.onion:\n return OnionSkinViewer;\n default:\n return undefined;\n }\n },\n isNew() {\n return this.diffMode === diffModes.new;\n },\n isRenamed() {\n return this.diffMode === diffModes.renamed;\n },\n imagePath() {\n return this.isNew || this.isRenamed ? this.newPath : this.oldPath;\n },\n },\n methods: {\n changeMode(newMode) {\n this.mode = newMode;\n },\n },\n diffModes,\n imageViewMode,\n};\n</script>\n\n<template>\n <div class=\"diff-file-container\">\n <div v-if=\"diffMode === $options.diffModes.replaced\" class=\"diff-viewer\">\n <div class=\"image js-replaced-image\">\n <component :is=\"imageViewComponent\" v-bind=\"$props\">\n <template #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <slot\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n name=\"image-overlay\"\n ></slot>\n </template>\n </component>\n </div>\n <div class=\"view-modes\">\n <ul class=\"view-modes-menu\">\n <li\n :class=\"{\n active: mode === $options.imageViewMode.twoup,\n }\"\n @click=\"changeMode($options.imageViewMode.twoup)\"\n >\n {{ s__('ImageDiffViewer|2-up') }}\n </li>\n <li\n :class=\"{\n active: mode === $options.imageViewMode.swipe,\n }\"\n @click=\"changeMode($options.imageViewMode.swipe)\"\n >\n {{ s__('ImageDiffViewer|Swipe') }}\n </li>\n <li\n :class=\"{\n active: mode === $options.imageViewMode.onion,\n }\"\n @click=\"changeMode($options.imageViewMode.onion)\"\n >\n {{ s__('ImageDiffViewer|Onion skin') }}\n </li>\n </ul>\n </div>\n </div>\n <div v-else class=\"diff-viewer\">\n <div class=\"image\">\n <image-viewer\n :path=\"imagePath\"\n :file-size=\"isNew ? newSize : oldSize\"\n :inner-css-classes=\"[\n 'frame',\n {\n added: isNew,\n deleted: diffMode === $options.diffModes.deleted,\n },\n ]\"\n >\n <template v-if=\"isNew || isRenamed\" #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <slot\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n name=\"image-overlay\"\n ></slot>\n </template>\n </image-viewer>\n </div>\n </div>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./image_diff_viewer.vue?vue&type=template&id=5fe380ca\"\nimport script from \"./image_diff_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./image_diff_viewer.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('div',{staticClass:\"diff-file-container\"},[(_vm.diffMode === _vm.$options.diffModes.replaced)?_c('div',{staticClass:\"diff-viewer\"},[_c('div',{staticClass:\"image js-replaced-image\"},[_c(_vm.imageViewComponent,_vm._b({tag:\"component\",scopedSlots:_vm._u([{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [_vm._t(\"image-overlay\",null,{\"renderedWidth\":renderedWidth,\"renderedHeight\":renderedHeight})]}}],null,true)},'component',_vm.$props,false))],1),_vm._v(\" \"),_c('div',{staticClass:\"view-modes\"},[_c('ul',{staticClass:\"view-modes-menu\"},[_c('li',{class:{\n active: _vm.mode === _vm.$options.imageViewMode.twoup,\n },on:{\"click\":function($event){return _vm.changeMode(_vm.$options.imageViewMode.twoup)}}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('ImageDiffViewer|2-up'))+\"\\n \")]),_vm._v(\" \"),_c('li',{class:{\n active: _vm.mode === _vm.$options.imageViewMode.swipe,\n },on:{\"click\":function($event){return _vm.changeMode(_vm.$options.imageViewMode.swipe)}}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('ImageDiffViewer|Swipe'))+\"\\n \")]),_vm._v(\" \"),_c('li',{class:{\n active: _vm.mode === _vm.$options.imageViewMode.onion,\n },on:{\"click\":function($event){return _vm.changeMode(_vm.$options.imageViewMode.onion)}}},[_vm._v(\"\\n \"+_vm._s(_vm.s__('ImageDiffViewer|Onion skin'))+\"\\n \")])])])]):_c('div',{staticClass:\"diff-viewer\"},[_c('div',{staticClass:\"image\"},[_c('image-viewer',{attrs:{\"path\":_vm.imagePath,\"file-size\":_vm.isNew ? _vm.newSize : _vm.oldSize,\"inner-css-classes\":[\n 'frame',\n {\n added: _vm.isNew,\n deleted: _vm.diffMode === _vm.$options.diffModes.deleted,\n },\n ]},scopedSlots:_vm._u([(_vm.isNew || _vm.isRenamed)?{key:\"image-overlay\",fn:function({ renderedWidth, renderedHeight }){return [_vm._t(\"image-overlay\",null,{\"renderedWidth\":renderedWidth,\"renderedHeight\":renderedHeight})]}}:null],null,true)})],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!./mode_changed.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!./mode_changed.vue?vue&type=script&lang=js\"","<script>\nimport { sprintf, __ } from '~/locale';\n\nexport default {\n props: {\n aMode: {\n type: String,\n required: false,\n default: null,\n },\n bMode: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n outputText() {\n return sprintf(__('File mode changed from %{a_mode} to %{b_mode}'), {\n a_mode: this.aMode,\n b_mode: this.bMode,\n });\n },\n },\n};\n</script>\n\n<template>\n <div class=\"nothing-here-block\">{{ outputText }}</div>\n</template>\n","import { render, staticRenderFns } from \"./mode_changed.vue?vue&type=template&id=7910acf7\"\nimport script from \"./mode_changed.vue?vue&type=script&lang=js\"\nexport * from \"./mode_changed.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('div',{staticClass:\"nothing-here-block\"},[_vm._v(_vm._s(_vm.outputText))])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<!-- eslint-disable vue/multi-word-component-names -->\n<script>\nimport { GlAlert, GlLink, GlLoadingIcon, GlSprintf } from '@gitlab/ui';\n// eslint-disable-next-line no-restricted-imports\nimport { mapActions } from 'vuex';\n\nimport {\n TRANSITION_LOAD_START,\n TRANSITION_LOAD_ERROR,\n TRANSITION_LOAD_SUCCEED,\n TRANSITION_ACKNOWLEDGE_ERROR,\n STATE_IDLING,\n STATE_LOADING,\n STATE_ERRORED,\n} from '~/diffs/constants';\nimport { truncateSha } from '~/lib/utils/text_utility';\nimport { __ } from '~/locale';\nimport { transition } from '../utils';\n\nexport default {\n STATE_LOADING,\n STATE_ERRORED,\n uiText: {\n showLink: __('Show file contents'),\n commitLink: __('View file @ %{commitSha}'),\n description: __('File renamed with no changes.'),\n loadError: __('Unable to load file contents. Try again later.'),\n },\n components: {\n GlAlert,\n GlLink,\n GlLoadingIcon,\n GlSprintf,\n },\n props: {\n diffFile: {\n type: Object,\n required: true,\n },\n },\n data() {\n return {\n state: STATE_IDLING,\n };\n },\n computed: {\n shortSha() {\n return truncateSha(this.diffFile.content_sha);\n },\n canLoadFullDiff() {\n return this.diffFile.alternate_viewer.name === 'text';\n },\n },\n methods: {\n ...mapActions('diffs', ['switchToFullDiffFromRenamedFile']),\n is(state) {\n return this.state === state;\n },\n switchToFull() {\n this.transitionState(TRANSITION_LOAD_START);\n\n this.switchToFullDiffFromRenamedFile({ diffFile: this.diffFile })\n .then(() => {\n this.transitionState(TRANSITION_LOAD_SUCCEED);\n })\n .catch(() => {\n this.transitionState(TRANSITION_LOAD_ERROR);\n });\n },\n transitionState(transitionEvent) {\n this.state = transition(this.state, transitionEvent);\n },\n clickLink(event) {\n if (this.canLoadFullDiff) {\n event.preventDefault();\n\n this.switchToFull();\n }\n },\n dismissError() {\n this.transitionState(TRANSITION_ACKNOWLEDGE_ERROR);\n },\n },\n};\n</script>\n\n<template>\n <div class=\"nothing-here-block\">\n <gl-loading-icon v-if=\"is($options.STATE_LOADING)\" size=\"sm\" />\n <template v-else>\n <gl-alert\n v-show=\"is($options.STATE_ERRORED)\"\n class=\"gl-mb-5 gl-text-left\"\n variant=\"danger\"\n @dismiss=\"dismissError\"\n >{{ $options.uiText.loadError }}</gl-alert\n >\n <span test-id=\"plaintext\">{{ $options.uiText.description }}</span>\n <gl-link :href=\"diffFile.view_path\" @click=\"clickLink\">\n <span v-if=\"canLoadFullDiff\">{{ $options.uiText.showLink }}</span>\n <gl-sprintf v-else :message=\"$options.uiText.commitLink\">\n <template #commitSha>{{ shortSha }}</template>\n </gl-sprintf>\n </gl-link>\n </template>\n </div>\n</template>\n","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!./renamed.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!./renamed.vue?vue&type=script&lang=js\"","import { RENAMED_DIFF_TRANSITIONS } from '~/diffs/constants';\n\nexport const transition = (currentState, transitionEvent) => {\n const key = `${currentState}:${transitionEvent}`;\n\n if (RENAMED_DIFF_TRANSITIONS[key]) {\n return RENAMED_DIFF_TRANSITIONS[key];\n }\n\n return currentState;\n};\n","import { render, staticRenderFns } from \"./renamed.vue?vue&type=template&id=180c56d2\"\nimport script from \"./renamed.vue?vue&type=script&lang=js\"\nexport * from \"./renamed.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('div',{staticClass:\"nothing-here-block\"},[(_vm.is(_vm.$options.STATE_LOADING))?_c('gl-loading-icon',{attrs:{\"size\":\"sm\"}}):[_c('gl-alert',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.is(_vm.$options.STATE_ERRORED)),expression:\"is($options.STATE_ERRORED)\"}],staticClass:\"gl-mb-5 gl-text-left\",attrs:{\"variant\":\"danger\"},on:{\"dismiss\":_vm.dismissError}},[_vm._v(_vm._s(_vm.$options.uiText.loadError))]),_vm._v(\" \"),_c('span',{attrs:{\"test-id\":\"plaintext\"}},[_vm._v(_vm._s(_vm.$options.uiText.description))]),_vm._v(\" \"),_c('gl-link',{attrs:{\"href\":_vm.diffFile.view_path},on:{\"click\":_vm.clickLink}},[(_vm.canLoadFullDiff)?_c('span',[_vm._v(_vm._s(_vm.$options.uiText.showLink))]):_c('gl-sprintf',{attrs:{\"message\":_vm.$options.uiText.commitLink},scopedSlots:_vm._u([{key:\"commitSha\",fn:function(){return [_vm._v(_vm._s(_vm.shortSha))]},proxy:true}])})],1)]],2)\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!./diff_viewer.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!./diff_viewer.vue?vue&type=script&lang=js\"","<script>\nimport { diffViewerModes, diffModes } from '~/ide/constants';\nimport DownloadDiffViewer from './viewers/download_diff_viewer.vue';\nimport ImageDiffViewer from './viewers/image_diff_viewer.vue';\nimport ModeChanged from './viewers/mode_changed.vue';\nimport RenamedFile from './viewers/renamed.vue';\n\nexport default {\n props: {\n diffFile: {\n type: Object,\n required: true,\n },\n diffMode: {\n type: String,\n required: true,\n },\n diffViewerMode: {\n type: String,\n required: true,\n },\n newPath: {\n type: String,\n required: true,\n },\n newSha: {\n type: String,\n required: true,\n },\n newSize: {\n type: Number,\n required: false,\n default: 0,\n },\n oldPath: {\n type: String,\n required: true,\n },\n oldSha: {\n type: String,\n required: true,\n },\n oldSize: {\n type: Number,\n required: false,\n default: 0,\n },\n projectPath: {\n type: String,\n required: false,\n default: '',\n },\n aMode: {\n type: String,\n required: false,\n default: null,\n },\n bMode: {\n type: String,\n required: false,\n default: null,\n },\n },\n computed: {\n viewer() {\n if (this.diffViewerMode === diffViewerModes.renamed) {\n return RenamedFile;\n }\n if (this.diffMode === diffModes.mode_changed) {\n return ModeChanged;\n }\n\n if (!this.newPath) return null;\n\n switch (this.diffViewerMode) {\n case diffViewerModes.image:\n return ImageDiffViewer;\n default:\n return DownloadDiffViewer;\n }\n },\n basePath() {\n // We might get the project path from rails with the relative url already set up\n return this.projectPath.indexOf('/') === 0 ? '' : `${gon.relative_url_root}/`;\n },\n fullOldPath() {\n return `${this.basePath}${this.projectPath}/-/raw/${this.oldSha}/${this.oldPath}`;\n },\n fullNewPath() {\n return `${this.basePath}${this.projectPath}/-/raw/${this.newSha}/${this.newPath}`;\n },\n },\n};\n</script>\n\n<template>\n <div v-if=\"viewer\" class=\"diff-file preview-container\">\n <component\n :is=\"viewer\"\n :diff-file=\"diffFile\"\n :diff-mode=\"diffMode\"\n :new-path=\"fullNewPath\"\n :old-path=\"fullOldPath\"\n :old-size=\"oldSize\"\n :new-size=\"newSize\"\n :project-path=\"projectPath\"\n :a-mode=\"aMode\"\n :b-mode=\"bMode\"\n >\n <template #image-overlay=\"{ renderedWidth, renderedHeight }\">\n <slot\n :rendered-width=\"renderedWidth\"\n :rendered-height=\"renderedHeight\"\n name=\"image-overlay\"\n ></slot>\n </template>\n </component>\n <slot></slot>\n </div>\n</template>\n","import { render, staticRenderFns } from \"./diff_viewer.vue?vue&type=template&id=64fc1cb9\"\nimport script from \"./diff_viewer.vue?vue&type=script&lang=js\"\nexport * from \"./diff_viewer.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","'use strict';\n\nvar Type = require('../../type');\n\nfunction resolveJavascriptRegExp(data) {\n if (data === null) return false;\n if (data.length === 0) return false;\n\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // if regexp starts with '/' it can have modifiers and must be properly closed\n // `/foo/gim` - modifiers tail can be maximum 3 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n\n if (modifiers.length > 3) return false;\n // if expression starts with /, is should be properly terminated\n if (regexp[regexp.length - modifiers.length - 1] !== '/') return false;\n }\n\n return true;\n}\n\nfunction constructJavascriptRegExp(data) {\n var regexp = data,\n tail = /\\/([gim]*)$/.exec(data),\n modifiers = '';\n\n // `/foo/gim` - tail can be maximum 4 chars\n if (regexp[0] === '/') {\n if (tail) modifiers = tail[1];\n regexp = regexp.slice(1, regexp.length - modifiers.length - 1);\n }\n\n return new RegExp(regexp, modifiers);\n}\n\nfunction representJavascriptRegExp(object /*, style*/) {\n var result = '/' + object.source + '/';\n\n if (object.global) result += 'g';\n if (object.multiline) result += 'm';\n if (object.ignoreCase) result += 'i';\n\n return result;\n}\n\nfunction isRegExp(object) {\n return Object.prototype.toString.call(object) === '[object RegExp]';\n}\n\nmodule.exports = new Type('tag:yaml.org,2002:js/regexp', {\n kind: 'scalar',\n resolve: resolveJavascriptRegExp,\n construct: constructJavascriptRegExp,\n predicate: isRegExp,\n represent: representJavascriptRegExp\n});\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"mutation\",\"name\":{\"kind\":\"Name\",\"value\":\"createPolicyProjectAsync\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"securityPolicyProjectCreateAsync\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"input\"},\"value\":{\"kind\":\"ObjectValue\",\"fields\":[{\"kind\":\"ObjectField\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"}}}]}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"errors\"},\"arguments\":[],\"directives\":[]}]}}]}}],\"loc\":{\"start\":0,\"end\":142}};\n doc.loc.source = {\"body\":\"mutation createPolicyProjectAsync($fullPath: String!) {\\n securityPolicyProjectCreateAsync(input: { fullPath: $fullPath }) {\\n errors\\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[\"createPolicyProjectAsync\"] = oneQuery(doc, \"createPolicyProjectAsync\");\n \n","import { s__ } from '~/locale';\nimport { helpPagePath } from '~/helpers/help_page_helper';\nimport { DOCS_URL_IN_EE_DIR } from 'jh_else_ce/lib/utils/url_utility';\nimport { stateToComponentMap as classStateMap, stateKey } from './stores/state_maps';\n\nexport const FOUR_MINUTES_IN_MS = 1000 * 60 * 4;\n\nexport const STATE_QUERY_POLLING_INTERVAL_DEFAULT = 5000;\nexport const STATE_QUERY_POLLING_INTERVAL_BACKOFF = 1.2;\n\nexport const SUCCESS = 'success';\nexport const WARNING = 'warning';\nexport const INFO = 'info';\n\nexport const MWPS_MERGE_STRATEGY = 'merge_when_pipeline_succeeds';\nexport const MWCP_MERGE_STRATEGY = 'merge_when_checks_pass';\nexport const MTWPS_MERGE_STRATEGY = 'add_to_merge_train_when_pipeline_succeeds';\nexport const MTWCP_MERGE_STRATEGY = 'add_to_merge_train_when_checks_pass';\nexport const MT_MERGE_STRATEGY = 'merge_train';\n\nexport const PIPELINE_FAILED_STATE = 'failed';\n\nexport const AUTO_MERGE_STRATEGIES = [\n MWPS_MERGE_STRATEGY,\n MTWPS_MERGE_STRATEGY,\n MTWCP_MERGE_STRATEGY,\n MT_MERGE_STRATEGY,\n MWCP_MERGE_STRATEGY,\n];\n\n// SP - \"Suggest Pipelines\"\nexport const SP_TRACK_LABEL = 'no_pipeline_noticed';\nexport const SP_SHOW_TRACK_EVENT = 'click_button';\nexport const SP_SHOW_TRACK_VALUE = 10;\nexport const SP_HELP_CONTENT = s__(\n `mrWidget|GitLab %{linkStart}CI/CD can automatically build, test, and deploy your application.%{linkEnd} It only takes a few minutes to get started, and we can help you create a pipeline configuration file.`,\n);\nexport const SP_HELP_URL = `${DOCS_URL_IN_EE_DIR}/ci/quick_start/`;\nexport const SP_ICON_NAME = 'status_notfound';\n\n// JM - \"Jenkins Migration\"\nexport const JM_JENKINS_TITLE_ICON_NAME = 'information';\nexport const JM_EVENT_NAME = 'click_dismiss_button_jenkins_migration_callout';\nexport const JM_MIGRATION_LINK = helpPagePath('ci/migration/jenkins.md');\n\nexport const MERGE_ACTIVE_STATUS_PHRASES = [\n {\n message: s__('mrWidget|%{boldStart}Merging!%{boldEnd} Drum roll, please…'),\n emoji: 'drum',\n },\n {\n message: s__(\"mrWidget|%{boldStart}Merging!%{boldEnd} We're almost there…\"),\n emoji: 'sparkles',\n },\n {\n message: s__('mrWidget|%{boldStart}Merging!%{boldEnd} Changes will land soon…'),\n emoji: 'airplane_arriving',\n },\n {\n message: s__('mrWidget|%{boldStart}Merging!%{boldEnd} Changes are being shipped…'),\n emoji: 'ship',\n },\n {\n message: s__(\"mrWidget|%{boldStart}Merging!%{boldEnd} Everything's good…\"),\n emoji: 'relieved',\n },\n {\n message: s__('mrWidget|%{boldStart}Merging!%{boldEnd} This is going to be great…'),\n emoji: 'heart_eyes',\n },\n {\n message: s__('mrWidget|%{boldStart}Merging!%{boldEnd} Lift-off in 5… 4… 3…'),\n emoji: 'rocket',\n },\n {\n message: s__('mrWidget|%{boldStart}Merging!%{boldEnd} The changes are leaving the station…'),\n emoji: 'bullettrain_front',\n },\n {\n message: s__('mrWidget|%{boldStart}Merging!%{boldEnd} Take a deep breath and relax…'),\n emoji: 'sunglasses',\n },\n];\n\nconst STATE_MACHINE = {\n states: {\n IDLE: 'IDLE',\n MERGING: 'MERGING',\n MERGED: 'MERGED',\n AUTO_MERGE: 'AUTO_MERGE',\n },\n transitions: {\n MERGE: 'start-merge',\n AUTO_MERGE: 'start-auto-merge',\n MERGE_FAILURE: 'merge-failed',\n MERGED: 'merge-done',\n MERGING: 'merging',\n },\n};\nconst { states, transitions } = STATE_MACHINE;\n\nSTATE_MACHINE.definition = {\n initial: states.IDLE,\n states: {\n [states.IDLE]: {\n on: {\n [transitions.MERGE]: states.MERGING,\n [transitions.AUTO_MERGE]: states.AUTO_MERGE,\n [transitions.MERGING]: states.MERGING,\n },\n },\n [states.MERGING]: {\n on: {\n [transitions.MERGED]: states.MERGED,\n [transitions.MERGE_FAILURE]: states.IDLE,\n },\n },\n [states.AUTO_MERGE]: {\n on: {\n [transitions.MERGED]: states.IDLE,\n [transitions.MERGE_FAILURE]: states.IDLE,\n },\n },\n },\n};\n\nexport const stateToTransitionMap = {\n [stateKey.merging]: transitions.MERGE,\n [stateKey.merged]: transitions.MERGED,\n [stateKey.autoMergeEnabled]: transitions.AUTO_MERGE,\n};\nexport const stateToComponentMap = {\n [states.MERGING]: classStateMap[stateKey.merging],\n [states.MERGED]: classStateMap[stateKey.merged],\n [states.AUTO_MERGE]: classStateMap[stateKey.autoMergeEnabled],\n};\n\nexport const EXTENSION_ICONS = {\n failed: 'failed',\n warning: 'warning',\n success: 'success',\n neutral: 'neutral',\n error: 'error',\n notice: 'notice',\n severityCritical: 'severityCritical',\n severityHigh: 'severityHigh',\n severityMedium: 'severityMedium',\n severityLow: 'severityLow',\n severityInfo: 'severityInfo',\n severityUnknown: 'severityUnknown',\n};\n\nexport const EXTENSION_ICON_NAMES = {\n failed: 'status-failed',\n warning: 'status-alert',\n success: 'status-success',\n neutral: 'status-neutral',\n error: 'status-alert',\n notice: 'status-alert',\n scheduled: 'status-scheduled',\n severityCritical: 'severity-critical',\n severityHigh: 'severity-high',\n severityMedium: 'severity-medium',\n severityLow: 'severity-low',\n severityInfo: 'severity-info',\n severityUnknown: 'severity-unknown',\n};\n\nexport const EXTENSION_ICON_CLASS = {\n failed: {\n backgroundClass: 'gl-bg-status-danger',\n iconClass: 'gl-fill-status-danger',\n },\n warning: {\n backgroundClass: 'gl-bg-status-warning',\n iconClass: 'gl-fill-status-warning',\n },\n success: {\n backgroundClass: 'gl-bg-status-success',\n iconClass: 'gl-fill-status-success',\n },\n neutral: {\n backgroundClass: 'gl-bg-status-neutral',\n iconClass: 'gl-fill-status-neutral',\n },\n error: {\n backgroundClass: 'gl-bg-status-danger',\n iconClass: 'gl-fill-status-danger',\n },\n notice: {\n backgroundClass: 'gl-bg-status-neutral',\n iconClass: 'gl-fill-status-neutral',\n },\n scheduled: {\n backgroundClass: 'gl-bg-status-info',\n iconClass: 'gl-fill-status-info',\n },\n severityCritical: {\n backgroundClass: 'gl-bg-red-100',\n iconClass: 'gl-fill-red-800',\n },\n severityHigh: {\n backgroundClass: 'gl-bg-red-100',\n iconClass: 'gl-fill-red-600',\n },\n severityMedium: {\n backgroundClass: 'gl-bg-orange-100',\n iconClass: 'gl-fill-orange-400',\n },\n severityLow: {\n backgroundClass: 'gl-bg-orange-100',\n iconClass: 'gl-fill-orange-300',\n },\n severityInfo: {\n backgroundClass: 'gl-bg-status-info',\n iconClass: 'gl-fill-status-info',\n },\n severityUnknown: {\n backgroundClass: 'gl-bg-status-neutral',\n iconClass: 'gl-fill-status-neutral',\n },\n};\n\nexport const VIEW_MERGE_REQUEST_WIDGET = 'view_merge_request_widget';\nexport const EXPAND_MERGE_REQUEST_WIDGET = 'expand_merge_request_widget';\nexport const CLICK_FULL_REPORT_ON_MERGE_REQUEST_WIDGET =\n 'click_full_report_on_merge_request_widget';\n\nexport { STATE_MACHINE };\n\nexport const INVALID_RULES_DOCS_PATH = helpPagePath(\n 'user/project/merge_requests/approvals/index.md',\n {\n anchor: 'invalid-rules',\n },\n);\n\nexport const DETAILED_MERGE_STATUS = {\n PREPARING: 'PREPARING',\n MERGEABLE: 'MERGEABLE',\n CHECKING: 'CHECKING',\n NOT_OPEN: 'NOT_OPEN',\n DISCUSSIONS_NOT_RESOLVED: 'DISCUSSIONS_NOT_RESOLVED',\n NOT_APPROVED: 'NOT_APPROVED',\n DRAFT_STATUS: 'DRAFT_STATUS',\n BLOCKED_STATUS: 'BLOCKED_STATUS',\n CI_MUST_PASS: 'CI_MUST_PASS',\n CI_STILL_RUNNING: 'CI_STILL_RUNNING',\n EXTERNAL_STATUS_CHECKS: 'EXTERNAL_STATUS_CHECKS',\n};\n\nexport const MT_SKIP_TRAIN = 'skip';\nexport const MT_RESTART_TRAIN = 'restart';\n\n// Pipeline event type names\n\nexport const PIPELINE_EVENT_TYPE_MERGE_TRAIN = 'Merge train pipeline';\nexport const PIPELINE_EVENT_TYPE_MERGED_RESULT = 'Merged results pipeline';\nexport const PIPELINE_EVENT_TYPE_MERGE_REQUEST = 'Merge request pipeline';\n\nexport const PIPELINE_EVENT_TYPE_MAP = {\n [PIPELINE_EVENT_TYPE_MERGE_TRAIN]: {\n title: s__('Pipeline|What is a merge train pipeline?'),\n content: s__(\n 'Pipeline|Merge train pipeline runs on the contents of the merge request combined with the contents of all other merge requests queued for merging into the target branch.',\n ),\n },\n [PIPELINE_EVENT_TYPE_MERGED_RESULT]: {\n title: s__('Pipeline|What is a merged results pipeline?'),\n content: s__(\n 'Pipeline|Merged results pipeline runs on the contents of the merge request combined with the contents of the target branch.',\n ),\n },\n [PIPELINE_EVENT_TYPE_MERGE_REQUEST]: {\n title: s__('Pipeline|What is a merge request pipeline?'),\n content: s__(\n \"Pipeline|Merge request pipeline runs on the contents of the merge request's source branch, not the target branch.\",\n ),\n },\n};\n","import { TYPE_EPIC, TYPE_ISSUE } from '~/issues/constants';\nimport { issuableAttributesQueries as issuableAttributesQueriesFoss } from '~/sidebar/queries/constants';\nimport updateStatusMutation from '~/sidebar/queries/update_status.mutation.graphql';\nimport issuableWeightSubscription from 'ee/graphql_shared/subscriptions/issuable_weight.subscription.graphql';\nimport { IssuableAttributeType } from '../constants';\nimport epicAncestorsQuery from './epic_ancestors.query.graphql';\nimport groupEpicsQuery from './group_epics.query.graphql';\nimport groupIterationsQuery from './group_iterations.query.graphql';\nimport issueHealthStatusQuery from './issue_health_status.query.graphql';\nimport issueWeightQuery from './issue_weight.query.graphql';\nimport projectIssueEpicMutation from './project_issue_epic.mutation.graphql';\nimport projectIssueEpicQuery from './project_issue_epic.query.graphql';\nimport projectIssueIterationMutation from './project_issue_iteration.mutation.graphql';\nimport projectIssueIterationQuery from './project_issue_iteration.query.graphql';\nimport updateIssueWeightMutation from './update_issue_weight.mutation.graphql';\nimport issueEscalationPolicyQuery from './issue_escalation_policy.query.graphql';\nimport issueEscalationPolicyMutation from './issue_escalation_policy.mutation.graphql';\nimport projectEscalationPoliciesQuery from './project_escalation_policies.query.graphql';\nimport issuableEpicSubscription from './issuable_epic.subscription.graphql';\nimport workItemParent from './project_issue_parent.query.graphql';\nimport workItemParentsQuery from './work_item_parents.query.graphql';\nimport updateWorkItemParent from './project_issue_update_parent.mutation.graphql';\nimport workItemParentSubscription from './work_item_parent.subscription.graphql';\n\nexport const issuableIterationQueries = {\n [TYPE_ISSUE]: {\n query: projectIssueIterationQuery,\n mutation: projectIssueIterationMutation,\n },\n};\n\nexport const iterationsQueries = {\n [TYPE_ISSUE]: {\n query: groupIterationsQuery,\n },\n};\n\nconst issuableEpicQueries = {\n [TYPE_ISSUE]: {\n query: projectIssueEpicQuery,\n mutation: projectIssueEpicMutation,\n },\n};\n\nconst epicsQueries = {\n [TYPE_ISSUE]: {\n query: groupEpicsQuery,\n },\n};\n\nconst parentsQueries = {\n [TYPE_ISSUE]: {\n query: workItemParentsQuery,\n },\n};\n\nconst issuableEscalationPolicyQueries = {\n [TYPE_ISSUE]: {\n query: issueEscalationPolicyQuery,\n mutation: issueEscalationPolicyMutation,\n },\n};\n\nconst escalationPoliciesQueries = {\n [TYPE_ISSUE]: {\n query: projectEscalationPoliciesQuery,\n },\n};\n\nexport const parentQueries = {\n [TYPE_ISSUE]: {\n query: workItemParent,\n mutation: updateWorkItemParent,\n },\n};\n\nexport const issuableAttributesQueries = {\n ...issuableAttributesQueriesFoss,\n [IssuableAttributeType.Iteration]: {\n current: issuableIterationQueries,\n list: iterationsQueries,\n },\n [IssuableAttributeType.Epic]: {\n current: issuableEpicQueries,\n list: epicsQueries,\n subscription: issuableEpicSubscription,\n },\n [IssuableAttributeType.EscalationPolicy]: {\n current: issuableEscalationPolicyQueries,\n list: escalationPoliciesQueries,\n },\n [IssuableAttributeType.Parent]: {\n current: parentQueries,\n list: parentsQueries,\n subscription: workItemParentSubscription,\n },\n};\n\nexport const ancestorsQueries = {\n [TYPE_EPIC]: {\n query: epicAncestorsQuery,\n },\n};\n\nexport const weightQueries = {\n [TYPE_ISSUE]: {\n query: issueWeightQuery,\n mutation: updateIssueWeightMutation,\n subscription: issuableWeightSubscription,\n },\n};\n\nexport const healthStatusQueries = {\n [TYPE_ISSUE]: {\n mutation: updateStatusMutation,\n query: issueHealthStatusQuery,\n },\n [TYPE_EPIC]: {\n mutation: updateStatusMutation,\n query: issueHealthStatusQuery,\n },\n};\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"approvedByEE\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequestsDisableCommittersApproval\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"author\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalsLeft\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalsRequired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"policiesOverridingApprovalSettings\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"editPath\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"settings\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalState\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"invalidApproversRules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"rules\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approved\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalsRequired\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"invalid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"allowMergeWhenInvalid\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"approvedBy\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"committers\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"User\"},\"directives\":[]}]}}]}},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"userPermissions\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"canApprove\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":902}};\n doc.loc.source = {\"body\":\"#import \\\"~/graphql_shared/fragments/user.fragment.graphql\\\"\\n\\nquery approvedByEE($projectPath: ID!, $iid: String!) {\\n project(fullPath: $projectPath) {\\n id\\n mergeRequestsDisableCommittersApproval\\n mergeRequest(iid: $iid) {\\n id\\n author {\\n id\\n }\\n approved\\n approvalsLeft\\n approvalsRequired\\n policiesOverridingApprovalSettings {\\n name\\n editPath\\n settings\\n }\\n approvalState {\\n invalidApproversRules {\\n id\\n name\\n }\\n rules {\\n id\\n approved\\n approvalsRequired\\n invalid\\n allowMergeWhenInvalid\\n name\\n type\\n }\\n }\\n approvedBy {\\n nodes {\\n ...User\\n }\\n }\\n committers {\\n nodes {\\n ...User\\n }\\n }\\n userPermissions {\\n canApprove\\n }\\n }\\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(\"~/graphql_shared/fragments/user.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[\"approvedByEE\"] = oneQuery(doc, \"approvedByEE\");\n \n","import { extend } from '../../vue';\nimport { NAME_TABLE_LITE } from '../../constants/components';\nimport { sortKeys } from '../../utils/object';\nimport { makePropsConfigurable } from '../../utils/props';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { hasListenerMixin } from '../../mixins/has-listener';\nimport { props as props$1, idMixin } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as props$2, captionMixin } from './helpers/mixin-caption';\nimport { props as props$3, colgroupMixin } from './helpers/mixin-colgroup';\nimport { props as props$4, itemsMixin } from './helpers/mixin-items';\nimport { props as props$5, stackedMixin } from './helpers/mixin-stacked';\nimport { props as props$6, tableRendererMixin } from './helpers/mixin-table-renderer';\nimport { props as props$7, tbodyMixin } from './helpers/mixin-tbody';\nimport { props as props$8, tfootMixin } from './helpers/mixin-tfoot';\nimport { props as props$9, theadMixin } from './helpers/mixin-thead';\n\n// --- Props ---\n\nconst props = makePropsConfigurable(sortKeys({\n ...props$1,\n ...props$2,\n ...props$3,\n ...props$4,\n ...props$5,\n ...props$6,\n ...props$7,\n ...props$8,\n ...props$9\n}), NAME_TABLE_LITE);\n\n// --- Main component ---\n\n// @vue/component\nconst BTableLite = /*#__PURE__*/extend({\n name: NAME_TABLE_LITE,\n // Order of mixins is important!\n // They are merged from first to last, followed by this component\n mixins: [\n // General mixins\n attrsMixin, hasListenerMixin, idMixin, normalizeSlotMixin,\n // Required table mixins\n itemsMixin, tableRendererMixin, stackedMixin, theadMixin, tfootMixin, tbodyMixin,\n // Table features mixins\n // These are pretty lightweight, and are useful for lightweight tables\n captionMixin, colgroupMixin],\n props\n\n // Render function is provided by `tableRendererMixin`\n});\n\nexport { BTableLite, props };\n","import { BTableLite } from '../../../vendor/bootstrap-vue/src/components/table/table-lite';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nconst {\n tableClass\n} = BTableLite.options.props;\nvar script = {\n name: 'GlTableLite',\n components: {\n BTableLite\n },\n inheritAttrs: false,\n props: {\n tableClass,\n fields: {\n type: Array,\n required: false,\n default: null\n },\n stickyHeader: {\n type: Boolean,\n default: false,\n required: false\n }\n },\n computed: {\n stickyHeaderClass() {\n return this.stickyHeader ? 'gl-table--sticky-header' : null;\n },\n localTableClass() {\n return ['gl-table', this.tableClass, this.stickyHeaderClass];\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-table-lite',_vm._g(_vm._b({attrs:{\"table-class\":_vm.localTableClass,\"fields\":_vm.fields},scopedSlots:_vm._u([_vm._l((Object.keys(_vm.$scopedSlots)),function(slot){return {key:slot,fn:function(scope){return [_vm._t(slot,null,null,scope)]}}})],null,true)},'b-table-lite',_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","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeTrainCarCount\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Project\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeTrains\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"cars\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"count\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":121}};\n doc.loc.source = {\"body\":\"fragment MergeTrainCarCount on Project {\\n id\\n mergeTrains {\\n nodes {\\n cars {\\n count\\n }\\n }\\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[\"MergeTrainCarCount\"] = oneQuery(doc, \"MergeTrainCarCount\");\n \n","/**\n * Get query parameters used for users request from passed `options` parameter\n * @param {Object} options e.g. { currentUserId: 1, fooBar: 'baz' }\n * @param {Object} paramsMap e.g. { user_id: 'currentUserId', foo_bar: 'fooBar' }\n */\nexport const getAjaxUsersSelectParams = (options, paramsMap) => {\n return Object.keys(paramsMap).reduce((accumulator, paramKey) => {\n const optionKey = paramsMap[paramKey];\n accumulator[paramKey] = options[optionKey] || null;\n\n return accumulator;\n }, {});\n};\n","/* eslint-disable func-names, consistent-return, no-shadow, no-self-compare, no-unused-expressions, camelcase, no-param-reassign */\n/* global Issuable */\n/* global emitSidebarEvent */\n\nimport $ from 'jquery';\nimport { escape, template, uniqBy } from 'lodash';\nimport { AJAX_USERS_SELECT_PARAMS_MAP } from '~/users_select/constants';\nimport initDeprecatedJQueryDropdown from '~/deprecated_jquery_dropdown';\nimport { TYPE_MERGE_REQUEST } from '~/issues/constants';\nimport { isUserBusy } from '~/set_status_modal/utils';\nimport { fixTitle, dispose } from '~/tooltips';\nimport axios from '~/lib/utils/axios_utils';\nimport { parseBoolean, spriteIcon } from '~/lib/utils/common_utils';\nimport { s__, __, sprintf } from '~/locale';\nimport { getAjaxUsersSelectParams } from './utils';\n\n// TODO: remove eventHub hack after code splitting refactor\nwindow.emitSidebarEvent = window.emitSidebarEvent || $.noop;\n\nfunction UsersSelect(currentUser, els, options = {}) {\n const elsClassName = els?.toString().match('.(.+$)')[1];\n const $els = $(els || '.js-user-search');\n this.users = this.users.bind(this);\n this.usersPath = '/-/autocomplete/users.json';\n if (currentUser != null) {\n if (typeof currentUser === 'object') {\n this.currentUser = currentUser;\n } else {\n this.currentUser = JSON.parse(currentUser);\n }\n }\n\n const { handleClick, states } = options;\n\n this.dropdowns = $els\n .map((i, dropdown) => {\n const userSelect = this;\n const $dropdown = $(dropdown);\n const options = {\n states,\n projectId: $dropdown.data('projectId'),\n groupId: $dropdown.data('groupId'),\n showCurrentUser: $dropdown.data('currentUser'),\n todoFilter: $dropdown.data('todoFilter'),\n todoStateFilter: $dropdown.data('todoStateFilter'),\n iid: $dropdown.data('iid'),\n issuableType: $dropdown.data('issuableType'),\n targetBranch: $dropdown.data('targetBranch'),\n authorId: $dropdown.data('authorId'),\n showSuggested: $dropdown.data('showSuggested'),\n };\n const showNullUser = $dropdown.data('nullUser');\n const defaultNullUser = $dropdown.data('nullUserDefault');\n const showMenuAbove = $dropdown.data('showMenuAbove');\n const showAnyUser = $dropdown.data('anyUser');\n const firstUser = $dropdown.data('firstUser');\n const defaultLabel = $dropdown.data('defaultLabel');\n const issueURL = $dropdown.data('issueUpdate');\n const $selectbox = $dropdown.closest('.selectbox');\n const $assignToMeLink = $selectbox.next('.assign-to-me-link');\n let $block = $selectbox.closest('.block');\n const abilityName = $dropdown.data('abilityName');\n let $value = $block.find('.value');\n const $collapsedSidebar = $block.find('.sidebar-collapsed-user');\n const $loading = $block.find('.block-loading').addClass('gl-hidden');\n const selectedIdDefault = defaultNullUser && showNullUser ? 0 : null;\n let selectedId = $dropdown.data('selected');\n let assignTo;\n let assigneeTemplate;\n let collapsedAssigneeTemplate;\n\n const suggestedReviewersHelpPath = $dropdown.data('suggestedReviewersHelpPath');\n const suggestedReviewersHeaderTemplate = template(\n `<div class=\"gl-flex gl-items-center\">\n <%- header %>\n <a\n title=\"${s__('SuggestedReviewers|Learn about suggested reviewers')}\"\n href=\"${suggestedReviewersHelpPath}\"\n rel=\"noopener\"\n target=\"_blank\"\n aria-label=\"${s__('SuggestedReviewers|Suggested reviewers help link')}\"\n class=\"hover:!gl-bg-transparent !gl-p-0 has-tooltip\">\n ${spriteIcon('question-o', 'gl-ml-3 gl-icon s16')}\n </a>\n </div>`,\n );\n\n if (selectedId === undefined) {\n selectedId = selectedIdDefault;\n }\n\n const assignYourself = function () {\n const unassignedSelected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}'][value=0]`);\n\n if (unassignedSelected) {\n unassignedSelected.remove();\n }\n\n // Save current selected user to the DOM\n const currentUserInfo = $dropdown.data('currentUserInfo') || {};\n const currentUser = userSelect.currentUser || {};\n const fieldName = $dropdown.data('fieldName');\n const userName = currentUserInfo.name;\n const userId = currentUserInfo.id || currentUser.id;\n\n const inputHtmlString = template(`\n <input type=\"hidden\" name=\"<%- fieldName %>\"\n data-meta=\"<%- userName %>\"\n value=\"<%- userId %>\" />\n `)({ fieldName, userName, userId });\n\n if ($selectbox) {\n $dropdown.parent().before(inputHtmlString);\n } else {\n $dropdown.after(inputHtmlString);\n }\n };\n\n if ($block[0]) {\n $block[0].addEventListener('assignYourself', assignYourself);\n }\n\n const getSelectedUserInputs = function () {\n return $selectbox.find(`input[name=\"${$dropdown.data('fieldName')}\"]`);\n };\n\n const getSelected = function () {\n return getSelectedUserInputs()\n .map((index, input) => parseInt(input.value, 10))\n .get();\n };\n\n const checkMaxSelect = function () {\n const maxSelect = $dropdown.data('maxSelect');\n if (maxSelect) {\n const selected = getSelected();\n\n if (selected.length > maxSelect) {\n const firstSelectedId = selected[0];\n const firstSelected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}'][value=${firstSelectedId}]`);\n\n firstSelected.remove();\n\n if ($dropdown.hasClass(elsClassName)) {\n emitSidebarEvent('sidebar.removeReviewer', {\n id: firstSelectedId,\n });\n } else {\n emitSidebarEvent('sidebar.removeAssignee', {\n id: firstSelectedId,\n });\n }\n }\n }\n };\n\n const getMultiSelectDropdownTitle = function (selectedUser, isSelected) {\n const selectedUsers = getSelected().filter((u) => u !== 0);\n\n const firstUser = getSelectedUserInputs()\n .map((index, input) => ({\n name: input.dataset.meta,\n value: parseInt(input.value, 10),\n }))\n .filter((u) => u.id !== 0)\n .get(0);\n\n if (selectedUsers.length === 0) {\n return s__('UsersSelect|Unassigned');\n }\n if (selectedUsers.length === 1) {\n return firstUser.name;\n }\n if (isSelected) {\n const otherSelected = selectedUsers.filter((s) => s !== selectedUser.id);\n return sprintf(s__('UsersSelect|%{name} + %{length} more'), {\n name: selectedUser.name,\n length: otherSelected.length,\n });\n }\n return sprintf(s__('UsersSelect|%{name} + %{length} more'), {\n name: firstUser.name,\n length: selectedUsers.length - 1,\n });\n };\n\n $assignToMeLink.on('click', (e) => {\n e.preventDefault();\n $(e.currentTarget).hide();\n\n if ($dropdown.data('multiSelect')) {\n assignYourself();\n checkMaxSelect();\n\n const currentUserInfo = $dropdown.data('currentUserInfo');\n $dropdown\n .find('.dropdown-toggle-text')\n .text(getMultiSelectDropdownTitle(currentUserInfo))\n .removeClass('is-default');\n } else {\n const $input = $(`input[name=\"${$dropdown.data('fieldName')}\"]`);\n $input.val(gon.current_user_id);\n selectedId = $input.val();\n $dropdown\n .find('.dropdown-toggle-text')\n .text(gon.current_user_fullname)\n .removeClass('is-default');\n }\n });\n\n $block.on('click', '.js-assign-yourself', (e) => {\n e.preventDefault();\n return assignTo(userSelect.currentUser.id);\n });\n\n assignTo = function (selected) {\n const data = {};\n data[abilityName] = {};\n data[abilityName].assignee_id = selected != null ? selected : null;\n $loading.removeClass('gl-hidden');\n $dropdown.trigger('loading.gl.dropdown');\n\n return axios.put(issueURL, data).then(({ data }) => {\n let user = {};\n let tooltipTitle;\n $dropdown.trigger('loaded.gl.dropdown');\n $loading.addClass('gl-hidden');\n if (data.assignee) {\n user = {\n name: data.assignee.name,\n username: data.assignee.username,\n avatar: data.assignee.avatar_url,\n };\n tooltipTitle = escape(user.name);\n } else {\n user = {\n name: s__('UsersSelect|Unassigned'),\n username: '',\n avatar: '',\n };\n tooltipTitle = s__('UsersSelect|Assignee');\n }\n $value.html(assigneeTemplate(user));\n $collapsedSidebar.attr('title', tooltipTitle);\n fixTitle($collapsedSidebar);\n\n return $collapsedSidebar.html(collapsedAssigneeTemplate(user));\n });\n };\n collapsedAssigneeTemplate = template(\n `<% if( avatar ) { %> <a class=\"author-link\" href=\"/<%- username %>\"> <img width=\"24\" class=\"avatar avatar-inline s24\" alt=\"\" src=\"<%- avatar %>\"> </a> <% } else { %> ${spriteIcon(\n 'user',\n )} <% } %>`,\n );\n assigneeTemplate = template(\n `<% if (username) { %> <a class=\"author-link gl-font-bold\" href=\"/<%- username %>\"> <% if( avatar ) { %> <img width=\"32\" class=\"avatar avatar-inline s32\" alt=\"\" src=\"<%- avatar %>\"> <% } %> <span class=\"author\"><%- name %></span> <span class=\"username\"> @<%- username %> </span> </a> <% } else { %> <span class=\"no-value assign-yourself\">\n ${sprintf(s__('UsersSelect|No assignee - %{openingTag} assign yourself %{closingTag}'), {\n openingTag: '<a href=\"#\" class=\"js-assign-yourself\">',\n closingTag: '</a>',\n })}</span> <% } %>`,\n );\n\n return initDeprecatedJQueryDropdown($dropdown, {\n showMenuAbove,\n data(term, callback) {\n return userSelect.users(term, options, (users) => {\n // GitLabDropdownFilter returns this.instance\n // GitLabDropdownRemote returns this.options.instance\n const deprecatedJQueryDropdown = this.instance || this.options.instance;\n deprecatedJQueryDropdown.options.processData(term, users, callback);\n });\n },\n processData(term, dataArg, callback) {\n // Sometimes the `dataArg` can contain special dropdown items like\n // dividers which we don't want to consider here.\n const data = dataArg.filter((x) => !x.type);\n\n let users = data;\n\n // Only show assigned user list when there is no search term\n if ($dropdown.hasClass('js-multiselect') && term.length === 0) {\n const selectedInputs = getSelectedUserInputs();\n\n // Potential duplicate entries when dealing with issue board\n // because issue board is also managed by vue\n const selectedUsers = uniqBy(selectedInputs, (a) => a.value)\n .filter((input) => {\n const userId = parseInt(input.value, 10);\n const inUsersArray = users.find((u) => u.id === userId);\n\n return !inUsersArray && userId !== 0;\n })\n .map((input) => {\n const userId = parseInt(input.value, 10);\n const {\n avatarUrl,\n avatar_url,\n name,\n username,\n can_merge: canMerge,\n } = input.dataset;\n return {\n avatar_url: avatarUrl || avatar_url || gon.default_avatar_url,\n id: userId,\n name,\n username,\n can_merge: parseBoolean(canMerge),\n };\n });\n\n users = data.concat(selectedUsers);\n }\n\n let anyUser;\n let index;\n let len;\n let name;\n let obj;\n let showDivider;\n if (term.length === 0) {\n showDivider = 0;\n if (firstUser) {\n // Move current user to the front of the list\n for (index = 0, len = users.length; index < len; index += 1) {\n obj = users[index];\n if (obj.username === firstUser) {\n users.splice(index, 1);\n users.unshift(obj);\n break;\n }\n }\n }\n if (showNullUser) {\n showDivider += 1;\n users.unshift({\n beforeDivider: true,\n name: s__('UsersSelect|Unassigned'),\n id: 0,\n });\n }\n if (showAnyUser) {\n showDivider += 1;\n name = showAnyUser;\n if (name === true) {\n name = s__('UsersSelect|Any User');\n }\n anyUser = {\n beforeDivider: true,\n name,\n id: null,\n };\n users.unshift(anyUser);\n }\n\n if (showDivider) {\n users.splice(showDivider, 0, { type: 'divider' });\n }\n\n if ($dropdown.hasClass('js-multiselect')) {\n const selected = getSelected().filter((i) => i !== 0);\n\n if ($dropdown.data('showSuggested')) {\n const suggested = this.suggestedUsers(users);\n if (suggested.length) {\n users = users.filter(\n (u) => !u.suggested || (u.suggested && selected.indexOf(u.id) !== -1),\n );\n users.splice(showDivider + 1, 0, ...suggested);\n }\n }\n\n if (selected.length > 0) {\n if ($dropdown.data('dropdownHeader')) {\n showDivider += 1;\n users.splice(showDivider, 0, {\n type: 'header',\n content: $dropdown.data('dropdownHeader'),\n });\n }\n\n const selectedUsers = users\n .filter((u) => selected.indexOf(u.id) !== -1)\n .sort((a, b) => a.name > b.name);\n\n users = users.filter((u) => selected.indexOf(u.id) === -1);\n\n selectedUsers.forEach((selectedUser) => {\n showDivider += 1;\n users.splice(showDivider, 0, selectedUser);\n });\n\n users.splice(showDivider + 1, 0, { type: 'divider' });\n }\n }\n }\n\n callback(users);\n if (showMenuAbove) {\n $dropdown.data('deprecatedJQueryDropdown').positionMenuAbove();\n }\n },\n suggestedUsers(users) {\n const selected = getSelected().filter((i) => i !== 0);\n const suggestedUsers = users.filter((u) => u.suggested && selected.indexOf(u.id) === -1);\n\n if (!suggestedUsers.length) return [];\n\n const items = [\n {\n type: 'header',\n content: suggestedReviewersHeaderTemplate({\n header: $dropdown.data('suggestedReviewersHeader'),\n }),\n },\n ...suggestedUsers,\n { type: 'header', content: $dropdown.data('allMembersHeader') },\n ];\n return items;\n },\n filterable: true,\n filterRemote: true,\n search: {\n fields: ['name', 'username'],\n },\n selectable: true,\n fieldName: $dropdown.data('fieldName'),\n toggleLabel(selected, el, deprecatedJQueryDropdown) {\n const inputValue = deprecatedJQueryDropdown.filterInput.val();\n\n if (this.multiSelect && inputValue === '') {\n // Remove non-users from the fullData array\n const users = deprecatedJQueryDropdown.filteredFullData();\n const callback = deprecatedJQueryDropdown.parseData.bind(deprecatedJQueryDropdown);\n\n // Update the data model\n this.processData(inputValue, users, callback);\n }\n\n deprecatedJQueryDropdown.filter.clear();\n\n if (this.multiSelect) {\n return getMultiSelectDropdownTitle(selected, $(el).hasClass('is-active'));\n }\n\n if (selected && 'id' in selected && $(el).hasClass('is-active')) {\n $dropdown.find('.dropdown-toggle-text').removeClass('is-default');\n if (selected.text) {\n return selected.text;\n }\n return selected.name;\n }\n $dropdown.find('.dropdown-toggle-text').addClass('is-default');\n\n return defaultLabel;\n },\n defaultLabel,\n hidden() {\n if ($dropdown.hasClass('js-multiselect')) {\n if ($dropdown.hasClass(elsClassName)) {\n if (!$dropdown.closest('.merge-request-form').length) {\n $dropdown.data('deprecatedJQueryDropdown').clearMenu();\n $dropdown.closest('.selectbox').children('input[type=\"hidden\"]').remove();\n }\n emitSidebarEvent('sidebar.saveReviewers');\n } else {\n emitSidebarEvent('sidebar.saveAssignees');\n }\n }\n\n if (!$dropdown.data('alwaysShowSelectbox')) {\n $selectbox.hide();\n\n // Recalculate where .value is because vue might have changed it\n $block = $selectbox.closest('.block');\n $value = $block.find('.value');\n // display:block overrides the hide-collapse rule\n $value.css('display', '');\n }\n\n $('.dropdown-input-field', $block).val('');\n },\n multiSelect: $dropdown.hasClass('js-multiselect'),\n inputMeta: $dropdown.data('inputMeta'),\n clicked(options) {\n const { $el, e, isMarking } = options;\n const user = options.selectedObj;\n\n dispose($el);\n\n if ($dropdown.hasClass('js-multiselect')) {\n const isActive = $el.hasClass('is-active');\n const previouslySelected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}'][value!=0]`);\n\n // Enables support for limiting the number of users selected\n // Automatically removes the first on the list if more users are selected\n checkMaxSelect();\n\n if (user.beforeDivider && user.name.toLowerCase() === 'unassigned') {\n // Unassigned selected\n previouslySelected.each((index, element) => {\n element.remove();\n });\n if ($dropdown.hasClass(elsClassName)) {\n emitSidebarEvent('sidebar.removeAllReviewers');\n } else {\n emitSidebarEvent('sidebar.removeAllAssignees');\n }\n } else if (isActive) {\n // user selected\n if ($dropdown.hasClass(elsClassName)) {\n emitSidebarEvent('sidebar.addReviewer', user);\n } else {\n emitSidebarEvent('sidebar.addAssignee', user);\n }\n\n // Remove unassigned selection (if it was previously selected)\n const unassignedSelected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}'][value=0]`);\n\n if (unassignedSelected) {\n unassignedSelected.remove();\n }\n } else {\n if (previouslySelected.length === 0) {\n // Select unassigned because there is no more selected users\n this.addInput($dropdown.data('fieldName'), 0, {});\n }\n\n // User unselected\n if ($dropdown.hasClass(elsClassName)) {\n emitSidebarEvent('sidebar.removeReviewer', user);\n } else {\n emitSidebarEvent('sidebar.removeAssignee', user);\n }\n }\n\n if (getSelected().find((u) => u === gon.current_user_id)) {\n $assignToMeLink.hide();\n } else {\n $assignToMeLink.show();\n }\n }\n\n const page = $('body').attr('data-page');\n const isIssueIndex = page === 'projects:issues:index';\n const isMRIndex = page === page && page === 'projects:merge_requests:index';\n if (\n $dropdown.hasClass('js-filter-bulk-update') ||\n $dropdown.hasClass('js-issuable-form-dropdown')\n ) {\n e.preventDefault();\n\n const isSelecting = user.id !== selectedId;\n selectedId = isSelecting ? user.id : selectedIdDefault;\n\n if (selectedId === gon.current_user_id) {\n $('.assign-to-me-link').hide();\n } else {\n $('.assign-to-me-link').show();\n }\n return;\n }\n if (handleClick) {\n e.preventDefault();\n handleClick(user, isMarking);\n } else if ($dropdown.hasClass('js-filter-submit') && (isIssueIndex || isMRIndex)) {\n return Issuable.filterResults($dropdown.closest('form'));\n } else if ($dropdown.hasClass('js-filter-submit')) {\n return $dropdown.closest('form').submit();\n } else if (!$dropdown.hasClass('js-multiselect')) {\n const selected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}']`)\n .val();\n return assignTo(selected);\n }\n\n // Automatically close dropdown after assignee is selected\n // since CE has no multiple assignees\n // EE does not have a max-select\n if ($dropdown.data('maxSelect') && getSelected().length === $dropdown.data('maxSelect')) {\n // Close the dropdown\n $dropdown.dropdown('toggle');\n }\n },\n id(user) {\n return user.id;\n },\n opened(e) {\n const $el = $(e.currentTarget);\n const selected = getSelected();\n $el.find('.is-active').removeClass('is-active');\n\n function highlightSelected(id) {\n $el.find(`li[data-user-id=\"${id}\"] .dropdown-menu-user-link`).addClass('is-active');\n }\n\n if (selected.length > 0) {\n getSelected().forEach((selectedId) => highlightSelected(selectedId));\n } else {\n highlightSelected(selectedId);\n }\n },\n updateLabel: $dropdown.data('dropdownTitle'),\n renderRow(user) {\n const username = user.username ? `@${user.username}` : '';\n const avatar = user.avatar_url ? user.avatar_url : gon.default_avatar_url;\n\n let selected = false;\n\n if (this.multiSelect) {\n selected = getSelected().find((u) => user.id === u);\n\n const { fieldName } = this;\n const field = $dropdown\n .closest('.selectbox')\n .find(`input[name='${fieldName}'][value='${user.id}']`);\n\n if (field.length) {\n selected = true;\n }\n } else {\n selected = user.id === selectedId;\n }\n\n let img = '';\n if (user.beforeDivider != null) {\n `<li><a href='#' class='${selected === true ? 'is-active' : ''}'>${escape(\n user.name,\n )}</a></li>`;\n } else {\n // 0 margin, because it's now handled by a wrapper\n img = `<img src='${avatar}' alt='' class='avatar avatar-inline !gl-m-0' width='32' />`;\n }\n\n return userSelect.renderRow(\n options.issuableType,\n user,\n selected,\n username,\n img,\n elsClassName,\n );\n },\n })\n .get()\n .map((dropdown) => dropdown.GitLabDropdownInstance);\n })\n .get();\n}\n\n// Return users list. Filtered by query\n// Only active users retrieved\nUsersSelect.prototype.users = function (query, options, callback) {\n const url = this.buildUrl(this.usersPath);\n const params = {\n search: query,\n active: true,\n ...getAjaxUsersSelectParams(options, AJAX_USERS_SELECT_PARAMS_MAP),\n };\n\n const isMergeRequest = options.issuableType === TYPE_MERGE_REQUEST;\n const isEditMergeRequest = !options.issuableType && options.iid && options.targetBranch;\n const isNewMergeRequest = !options.issuableType && !options.iid && options.targetBranch;\n\n if (isMergeRequest || isEditMergeRequest || isNewMergeRequest) {\n params.merge_request_iid = options.iid || null;\n params.approval_rules = true;\n }\n\n if (isMergeRequest && options.showSuggested) {\n params.show_suggested = true;\n }\n\n if (isNewMergeRequest) {\n params.target_branch = options.targetBranch || null;\n }\n\n return axios.get(url, { params }).then(({ data }) => {\n callback(data);\n });\n};\n\nUsersSelect.prototype.buildUrl = function (url) {\n if (gon.relative_url_root != null) {\n url = gon.relative_url_root.replace(/\\/$/, '') + url;\n }\n return url;\n};\n\n// eslint-disable-next-line max-params\nUsersSelect.prototype.renderRow = function (\n issuableType,\n user,\n selected,\n username,\n img,\n elsClassName,\n) {\n const tooltip = issuableType === TYPE_MERGE_REQUEST && !user.can_merge ? __('Cannot merge') : '';\n const tooltipClass = tooltip ? `has-tooltip` : '';\n const selectedClass = selected === true ? 'is-active' : '';\n const linkClasses = `${selectedClass} ${tooltipClass}`;\n const tooltipAttributes = tooltip\n ? `data-container=\"body\" data-placement=\"left\" data-title=\"${tooltip}\"`\n : '';\n const dataUserSuggested = user.suggested ? `data-user-suggested=${user.suggested}` : '';\n\n const busyBadge =\n user?.availability && isUserBusy(user.availability)\n ? `<span class=\"badge badge-warning badge-pill gl-badge sm\">${__('Busy')}</span>`\n : '';\n return `\n <li data-user-id=${user.id} ${dataUserSuggested}>\n <a href=\"#\" class=\"dropdown-menu-user-link !gl-flex gl-items-center ${linkClasses}\" ${tooltipAttributes}>\n ${this.renderRowAvatar(issuableType, user, img)}\n <span class=\"gl-flex gl-flex-col gl-overflow-hidden\">\n <strong class=\"dropdown-menu-user-full-name gl-font-bold\">\n ${escape(user.name)}\n ${busyBadge}\n </strong>\n ${\n username\n ? `<span class=\"dropdown-menu-user-username gl-text-subtle\">${escape(\n username,\n )}</span>`\n : ''\n }\n ${this.renderApprovalRules(elsClassName, user.applicable_approval_rules)}\n </span>\n </a>\n </li>\n `;\n};\n\nUsersSelect.prototype.renderRowAvatar = function (issuableType, user, img) {\n if (user.beforeDivider) {\n return img;\n }\n\n const mergeIcon =\n issuableType === TYPE_MERGE_REQUEST && !user.can_merge\n ? spriteIcon('warning-solid', 's12 merge-icon')\n : '';\n\n return `<span class=\"gl-relative gl-mr-3\">\n ${img}\n ${mergeIcon}\n </span>`;\n};\n\nUsersSelect.prototype.renderApprovalRules = function (elsClassName, approvalRules = []) {\n const count = approvalRules.length;\n\n if (!elsClassName?.includes('reviewer') || !count) {\n return '';\n }\n\n const [rule] = approvalRules;\n const countText = sprintf(__('(+%{count} rules)'), { count });\n const renderApprovalRulesCount = count > 1 ? `<span class=\"gl-ml-2\">${countText}</span>` : '';\n const ruleName = rule.rule_type === 'code_owner' ? __('Code Owner') : escape(rule.name);\n\n return `<div class=\"gl-flex gl-text-sm\">\n <span class=\"gl-truncate\" title=\"${ruleName}\">${ruleName}</span>\n ${renderApprovalRulesCount}\n </div>`;\n};\n\nexport default UsersSelect;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"FragmentDefinition\",\"name\":{\"kind\":\"Name\",\"value\":\"CrmContacts\"},\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"customerRelationsContacts\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"nodes\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"firstName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"lastName\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"email\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"phone\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"description\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"organization\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"name\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":226}};\n doc.loc.source = {\"body\":\"fragment CrmContacts on Issue {\\n id\\n customerRelationsContacts {\\n nodes {\\n id\\n firstName\\n lastName\\n email\\n phone\\n description\\n organization {\\n id\\n name\\n }\\n }\\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[\"CrmContacts\"] = oneQuery(doc, \"CrmContacts\");\n \n","'use strict';\n\n\nvar loader = require('./js-yaml/loader');\nvar dumper = require('./js-yaml/dumper');\n\n\nfunction deprecated(name) {\n return function () {\n throw new Error('Function ' + name + ' is deprecated and cannot be used.');\n };\n}\n\n\nmodule.exports.Type = require('./js-yaml/type');\nmodule.exports.Schema = require('./js-yaml/schema');\nmodule.exports.FAILSAFE_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.JSON_SCHEMA = require('./js-yaml/schema/json');\nmodule.exports.CORE_SCHEMA = require('./js-yaml/schema/core');\nmodule.exports.DEFAULT_SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_FULL_SCHEMA = require('./js-yaml/schema/default_full');\nmodule.exports.load = loader.load;\nmodule.exports.loadAll = loader.loadAll;\nmodule.exports.safeLoad = loader.safeLoad;\nmodule.exports.safeLoadAll = loader.safeLoadAll;\nmodule.exports.dump = dumper.dump;\nmodule.exports.safeDump = dumper.safeDump;\nmodule.exports.YAMLException = require('./js-yaml/exception');\n\n// Deprecated schema names from JS-YAML 2.0.x\nmodule.exports.MINIMAL_SCHEMA = require('./js-yaml/schema/failsafe');\nmodule.exports.SAFE_SCHEMA = require('./js-yaml/schema/default_safe');\nmodule.exports.DEFAULT_SCHEMA = require('./js-yaml/schema/default_full');\n\n// Deprecated functions from JS-YAML 1.x.x\nmodule.exports.scan = deprecated('scan');\nmodule.exports.parse = deprecated('parse');\nmodule.exports.compose = deprecated('compose');\nmodule.exports.addConstructor = deprecated('addConstructor');\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('sidebar-editable-item',{ref:\"editable\",staticClass:\"block weight\",attrs:{\"title\":_vm.$options.i18n.weight,\"tracking\":_vm.$options.tracking,\"loading\":_vm.isLoading,\"data-testid\":\"sidebar-weight\"},on:{\"open\":function($event){_vm.oldIid = null},\"close\":function($event){return _vm.setWeight()}},scopedSlots:_vm._u([{key:\"collapsed\",fn:function(){return [_c('div',{staticClass:\"hide-collapsed gl-flex gl-items-center\"},[_c('span',{class:_vm.hasWeight ? 'gl-font-bold gl-text-default' : 'gl-text-subtle',attrs:{\"data-testid\":\"sidebar-weight-value\"}},[_vm._v(\"\\n \"+_vm._s(_vm.weightLabel)+\"\\n \")]),_vm._v(\" \"),(_vm.hasWeight && _vm.canUpdate)?_c('div',{staticClass:\"gl-flex\"},[_c('span',{staticClass:\"gl-mx-2\"},[_vm._v(\"-\")]),_vm._v(\" \"),_c('gl-button',{staticClass:\"!gl-text-subtle\",attrs:{\"variant\":\"link\",\"disabled\":_vm.loading},on:{\"click\":function($event){return _vm.setWeight(true)}}},[_vm._v(\"\\n \"+_vm._s(_vm.$options.i18n.removeWeight)+\"\\n \")])],1):_vm._e()]),_vm._v(\" \"),_c('div',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip.left.viewport\",modifiers:{\"left\":true,\"viewport\":true}}],staticClass:\"sidebar-collapsed-icon js-weight-collapsed-block\",attrs:{\"title\":_vm.tooltipTitle},on:{\"click\":_vm.expandSidebar}},[_c('gl-icon',{attrs:{\"size\":16,\"name\":\"weight\"}}),_vm._v(\" \"),(_vm.isLoading)?_c('gl-loading-icon',{staticClass:\"js-weight-collapsed-loading-icon\"}):_c('span',{staticClass:\"js-weight-collapsed-weight-label collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"},[_vm._v(\"\\n \"+_vm._s(_vm.collapsedWeightLabel)+\"\\n \"),(_vm.weight > _vm.$options.maxDisplayWeight)?[_vm._v(\"…\")]:_vm._e()],2)],1)]},proxy:true},{key:\"default\",fn:function(){return [_c('gl-form',{on:{\"submit\":function($event){$event.preventDefault();return _vm.handleFormSubmit()}}},[_c('gl-form-group',{attrs:{\"label\":_vm.__('Weight'),\"label-for\":\"weight-input\",\"label-sr-only\":\"\"}},[_c('gl-form-input',{directives:[{name:\"autofocusonshow\",rawName:\"v-autofocusonshow\"}],attrs:{\"id\":\"weight-input\",\"type\":\"number\",\"min\":\"0\",\"placeholder\":_vm.$options.i18n.inputPlaceholder},model:{value:(_vm.localWeight),callback:function ($$v) {_vm.localWeight=_vm._n($$v)},expression:\"localWeight\"}})],1)],1)]},proxy:true}])})\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!./sidebar_weight_widget.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!./sidebar_weight_widget.vue?vue&type=script&lang=js\"","<script>\nimport {\n GlButton,\n GlForm,\n GlFormGroup,\n GlFormInput,\n GlLoadingIcon,\n GlIcon,\n GlTooltipDirective,\n} from '@gitlab/ui';\nimport { TYPE_ISSUE } from '~/issues/constants';\nimport { createAlert } from '~/alert';\nimport { __, sprintf } from '~/locale';\nimport SidebarEditableItem from '~/sidebar/components/sidebar_editable_item.vue';\nimport { Tracking } from '~/sidebar/constants';\nimport autofocusonshow from '~/vue_shared/directives/autofocusonshow';\nimport { MAX_DISPLAY_WEIGHT } from '../../constants';\nimport { weightQueries } from '../../queries/constants';\n\nexport default {\n tracking: {\n event: Tracking.editEvent,\n label: Tracking.rightSidebarLabel,\n property: 'weight',\n },\n components: {\n GlButton,\n GlForm,\n GlFormGroup,\n GlFormInput,\n GlIcon,\n GlLoadingIcon,\n SidebarEditableItem,\n },\n directives: {\n autofocusonshow,\n GlTooltip: GlTooltipDirective,\n },\n inject: ['canUpdate'],\n props: {\n iid: {\n type: String,\n required: true,\n },\n fullPath: {\n type: String,\n required: true,\n },\n issuableType: {\n required: true,\n type: String,\n },\n },\n data() {\n return {\n issuable: {},\n loading: false,\n oldIid: null,\n localWeight: '',\n previousWeight: null,\n };\n },\n apollo: {\n issuable: {\n query() {\n return weightQueries[this.issuableType].query;\n },\n variables() {\n return {\n fullPath: this.fullPath,\n iid: String(this.iid),\n };\n },\n skip() {\n return !this.iid;\n },\n update(data) {\n return data.workspace?.issuable || {};\n },\n error() {\n createAlert({\n message: sprintf(__('Something went wrong while setting %{issuableType} weight.'), {\n issuableType: this.issuableType,\n }),\n });\n },\n result({ data }) {\n this.localWeight = data?.workspace.issuable.weight ?? '';\n },\n subscribeToMore: {\n document() {\n return weightQueries[this.issuableType].subscription;\n },\n variables() {\n return {\n issuableId: this.issuableId,\n };\n },\n skip() {\n return this.skipIssueWeightSubscription;\n },\n },\n },\n },\n computed: {\n weight() {\n return this.issuable.weight ?? null;\n },\n isLoading() {\n return this.$apollo.queries?.issuable?.loading || this.loading;\n },\n hasWeight() {\n return this.weight !== null;\n },\n weightLabel() {\n return this.hasWeight ? this.weight : this.$options.i18n.noWeightLabel;\n },\n tooltipTitle() {\n let tooltipTitle = this.$options.i18n.weight;\n\n if (this.hasWeight) {\n tooltipTitle += ` ${this.weight}`;\n }\n\n return tooltipTitle;\n },\n collapsedWeightLabel() {\n return this.hasWeight\n ? this.weight.toString().substr(0, 5)\n : this.$options.i18n.noWeightLabel;\n },\n issuableId() {\n return this.issuable.id;\n },\n skipIssueWeightSubscription() {\n return this.issuableType !== TYPE_ISSUE || !this.issuableId || this.isLoading;\n },\n },\n watch: {\n iid(_, oldVal) {\n this.oldIid = oldVal;\n },\n },\n methods: {\n setWeight(remove) {\n const shouldRemoveWeight = remove || this.localWeight === '';\n const weight = shouldRemoveWeight ? null : this.localWeight;\n const currentIid = shouldRemoveWeight ? this.iid : this.oldIid || this.iid;\n const previousWeight = this.hasWeight ? this.weight : 0;\n this.loading = true;\n this.$apollo\n .mutate({\n mutation: weightQueries[this.issuableType].mutation,\n variables: {\n input: {\n projectPath: this.fullPath,\n iid: currentIid,\n weight,\n },\n },\n })\n .then(({ data: { issuableSetWeight } }) => {\n if (issuableSetWeight.errors?.length) {\n createAlert({\n message: issuableSetWeight.errors[0],\n });\n } else {\n this.$emit('weightUpdated', {\n weight: shouldRemoveWeight\n ? null\n : (issuableSetWeight?.issuable?.weight || 0) - previousWeight,\n id: issuableSetWeight?.issuable?.id,\n });\n }\n })\n .catch(() => {\n createAlert({\n message: sprintf(__('Something went wrong while setting %{issuableType} weight.'), {\n issuableType: this.issuableType,\n }),\n });\n })\n .finally(() => {\n this.loading = false;\n });\n },\n expandSidebar() {\n this.$refs.editable.expand();\n this.$emit('expandSidebar');\n },\n handleFormSubmit() {\n this.$refs.editable.collapse({ emitEvent: false });\n this.setWeight();\n },\n },\n i18n: {\n weight: __('Weight'),\n noWeightLabel: __('None'),\n removeWeight: __('remove weight'),\n inputPlaceholder: __('Enter a number'),\n },\n maxDisplayWeight: MAX_DISPLAY_WEIGHT,\n};\n</script>\n\n<template>\n <sidebar-editable-item\n ref=\"editable\"\n :title=\"$options.i18n.weight\"\n :tracking=\"$options.tracking\"\n :loading=\"isLoading\"\n class=\"block weight\"\n data-testid=\"sidebar-weight\"\n @open=\"oldIid = null\"\n @close=\"setWeight()\"\n >\n <template #collapsed>\n <div class=\"hide-collapsed gl-flex gl-items-center\">\n <span\n :class=\"hasWeight ? 'gl-font-bold gl-text-default' : 'gl-text-subtle'\"\n data-testid=\"sidebar-weight-value\"\n >\n {{ weightLabel }}\n </span>\n <div v-if=\"hasWeight && canUpdate\" class=\"gl-flex\">\n <span class=\"gl-mx-2\">-</span>\n <gl-button\n variant=\"link\"\n class=\"!gl-text-subtle\"\n :disabled=\"loading\"\n @click=\"setWeight(true)\"\n >\n {{ $options.i18n.removeWeight }}\n </gl-button>\n </div>\n </div>\n <div\n v-gl-tooltip.left.viewport\n :title=\"tooltipTitle\"\n class=\"sidebar-collapsed-icon js-weight-collapsed-block\"\n @click=\"expandSidebar\"\n >\n <gl-icon :size=\"16\" name=\"weight\" />\n <gl-loading-icon v-if=\"isLoading\" class=\"js-weight-collapsed-loading-icon\" />\n <span\n v-else\n class=\"js-weight-collapsed-weight-label collapse-truncated-title gl-px-3 gl-pt-2 gl-text-sm\"\n >\n {{ collapsedWeightLabel }}\n <template v-if=\"weight > $options.maxDisplayWeight\">…</template>\n </span>\n </div>\n </template>\n <template #default>\n <gl-form @submit.prevent=\"handleFormSubmit()\">\n <gl-form-group :label=\"__('Weight')\" label-for=\"weight-input\" label-sr-only>\n <gl-form-input\n id=\"weight-input\"\n v-model.number=\"localWeight\"\n v-autofocusonshow\n type=\"number\"\n min=\"0\"\n :placeholder=\"$options.i18n.inputPlaceholder\"\n />\n </gl-form-group>\n </gl-form>\n </template>\n </sidebar-editable-item>\n</template>\n","import { render, staticRenderFns } from \"./sidebar_weight_widget.vue?vue&type=template&id=7659b7b4\"\nimport script from \"./sidebar_weight_widget.vue?vue&type=script&lang=js\"\nexport * from \"./sidebar_weight_widget.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 { takeRightWhile } from 'lodash';\n\nexport function getSymbol(type) {\n if (type === 'new') return '+';\n if (type === 'old') return '-';\n return '';\n}\n\nfunction getLineNumber(lineRange, key) {\n if (!lineRange || !key || !lineRange[key]) return '';\n const { new_line: newLine, old_line: oldLine, type } = lineRange[key];\n const otherKey = key === 'start' ? 'end' : 'start';\n\n // By default we want to see the \"old\" or \"left side\" line number\n // The exception is if the \"end\" line is on the \"right\" side\n // `otherLineType` is only used if `type` is null to make sure the line\n // number relfects the \"right\" side number, if that is the side\n // the comment form is located on\n const otherLineType = !type ? lineRange[otherKey]?.type : null;\n const lineType = type || '';\n let lineNumber = oldLine;\n if (lineType === 'new' || otherLineType === 'new') lineNumber = newLine;\n return (lineNumber && getSymbol(lineType) + lineNumber) || '';\n}\n\nexport function getStartLineNumber(lineRange) {\n return getLineNumber(lineRange, 'start');\n}\n\nexport function getEndLineNumber(lineRange) {\n return getLineNumber(lineRange, 'end');\n}\n\nexport function getLineClasses(line) {\n const symbol = typeof line === 'string' ? line.charAt(0) : getSymbol(line?.type);\n\n if (symbol !== '+' && symbol !== '-') return '';\n\n return [\n 'gl-px-1 gl-rounded-small gl-border-solid gl-border-1 gl-border-white',\n {\n 'gl-bg-green-100 gl-text-green-800': symbol === '+',\n 'gl-bg-red-100 gl-text-red-800': symbol === '-',\n },\n ];\n}\n\n// eslint-disable-next-line max-params\nexport function commentLineOptions(diffLines, startingLine, lineCode, side = 'left') {\n const preferredSide = side === 'left' ? 'old_line' : 'new_line';\n const fallbackSide = preferredSide === 'new_line' ? 'old_line' : 'new_line';\n const notMatchType = (l) => l.type !== 'match';\n const linesCopy = [...diffLines]; // don't mutate the argument\n const startingLineCode = startingLine.line_code;\n\n const currentIndex = linesCopy.findIndex((line) => line.line_code === lineCode);\n\n // We're limiting adding comments to only lines above the current line\n // to make rendering simpler. Future interations will use a more\n // intuitive dragging interface that will make this unnecessary\n const upToSelected = linesCopy.slice(0, currentIndex + 1);\n\n // Only include the lines up to the first \"Show unchanged lines\" block\n // i.e. not a \"match\" type\n const lines = takeRightWhile(upToSelected, notMatchType);\n\n // If the selected line is \"hidden\" in an unchanged line block\n // or \"above\" the current group of lines add it to the array so\n // that the drop down is not defaulted to empty\n const selectedIndex = lines.findIndex((line) => line.line_code === startingLineCode);\n if (selectedIndex < 0) lines.unshift(startingLine);\n\n return lines.map((l) => {\n const { line_code, type, old_line, new_line } = l;\n return {\n value: { line_code, type, old_line, new_line },\n text: `${getSymbol(type)}${l[preferredSide] || l[fallbackSide]}`,\n };\n });\n}\n\nexport function formatLineRange(start, end) {\n const extractProps = ({ line_code, type, old_line, new_line }) => ({\n line_code,\n type,\n old_line,\n new_line,\n });\n return {\n start: extractProps(start),\n end: extractProps(end),\n };\n}\n\nexport function getCommentedLines(selectedCommentPosition, diffLines) {\n if (!selectedCommentPosition) {\n // This structure simplifies the logic that consumes this result\n // by keeping the returned shape the same and adjusting the bounds\n // to something unreachable. This way our component logic stays:\n // \"if index between start and end\"\n return {\n startLine: diffLines.length + 1,\n endLine: diffLines.length + 1,\n };\n }\n\n const findLineCodeIndex = (line) => (position) => {\n return [position.line_code, position.left?.line_code, position.right?.line_code].includes(\n line.line_code,\n );\n };\n\n const { start, end } = selectedCommentPosition;\n const startLine = diffLines.findIndex(findLineCodeIndex(start));\n const endLine = diffLines.findIndex(findLineCodeIndex(end));\n\n return { startLine, endLine };\n}\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('gl-badge',{directives:[{name:\"gl-tooltip\",rawName:\"v-gl-tooltip\"}],staticClass:\"gl-shrink-0\",attrs:{\"icon\":\"spam\",\"title\":_vm.title,\"aria-label\":_vm.__('Hidden'),\"variant\":\"warning\"}})\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!./hidden_badge.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!./hidden_badge.vue?vue&type=script&lang=js\"","<script>\nimport { GlBadge, GlTooltipDirective } from '@gitlab/ui';\nimport { issuableTypeText } from '~/issues/constants';\nimport { __, sprintf } from '~/locale';\n\nexport default {\n components: {\n GlBadge,\n },\n directives: {\n GlTooltip: GlTooltipDirective,\n },\n props: {\n issuableType: {\n type: String,\n required: false,\n default: '',\n },\n },\n computed: {\n title() {\n return sprintf(__('This %{issuable} is hidden because its author has been banned.'), {\n issuable: issuableTypeText[this.issuableType],\n });\n },\n },\n};\n</script>\n\n<template>\n <gl-badge\n v-gl-tooltip\n icon=\"spam\"\n :title=\"title\"\n :aria-label=\"__('Hidden')\"\n variant=\"warning\"\n class=\"gl-shrink-0\"\n />\n</template>\n","import { render, staticRenderFns } from \"./hidden_badge.vue?vue&type=template&id=1689f2ee\"\nimport script from \"./hidden_badge.vue?vue&type=script&lang=js\"\nexport * from \"./hidden_badge.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","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"subscription\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableWeightUpdated\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"IssuableID\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableWeightUpdated\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"issuableId\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItem\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"widgets\"},\"arguments\":[],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"WorkItemWidgetWeight\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"type\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]}]}}]}}]}},{\"kind\":\"InlineFragment\",\"typeCondition\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"Issue\"}},\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"weight\"},\"arguments\":[],\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":308}};\n doc.loc.source = {\"body\":\"subscription issuableWeightUpdated($issuableId: IssuableID!) {\\n issuableWeightUpdated(issuableId: $issuableId) {\\n ... on WorkItem {\\n id\\n widgets {\\n ... on WorkItemWidgetWeight {\\n type\\n weight\\n }\\n }\\n }\\n ... on Issue {\\n id\\n weight\\n }\\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[\"issuableWeightUpdated\"] = oneQuery(doc, \"issuableWeightUpdated\");\n \n","\n var doc = {\"kind\":\"Document\",\"definitions\":[{\"kind\":\"OperationDefinition\",\"operation\":\"query\",\"name\":{\"kind\":\"Name\",\"value\":\"approvalRules\"},\"variableDefinitions\":[{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"ID\"}}},\"directives\":[]},{\"kind\":\"VariableDefinition\",\"variable\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}},\"type\":{\"kind\":\"NonNullType\",\"type\":{\"kind\":\"NamedType\",\"name\":{\"kind\":\"Name\",\"value\":\"String\"}}},\"directives\":[]}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"project\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"fullPath\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"projectPath\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"id\"},\"arguments\":[],\"directives\":[]},{\"kind\":\"Field\",\"name\":{\"kind\":\"Name\",\"value\":\"mergeRequest\"},\"arguments\":[{\"kind\":\"Argument\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"},\"value\":{\"kind\":\"Variable\",\"name\":{\"kind\":\"Name\",\"value\":\"iid\"}}}],\"directives\":[],\"selectionSet\":{\"kind\":\"SelectionSet\",\"selections\":[{\"kind\":\"FragmentSpread\",\"name\":{\"kind\":\"Name\",\"value\":\"MergeRequestApprovalRule\"},\"directives\":[]}]}}]}}]}}],\"loc\":{\"start\":0,\"end\":259}};\n doc.loc.source = {\"body\":\"#import \\\"ee/graphql_shared/fragments/merge_request.approval_rule.fragment.graphql\\\"\\n\\nquery approvalRules($projectPath: ID!, $iid: String!) {\\n project(fullPath: $projectPath) {\\n id\\n mergeRequest(iid: $iid) {\\n ...MergeRequestApprovalRule\\n }\\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/graphql_shared/fragments/merge_request.approval_rule.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[\"approvalRules\"] = oneQuery(doc, \"approvalRules\");\n \n","import GlIcon from '../../icon/icon';\nimport { ENTER, SPACE } from '../constants';\nimport { stopEvent } from '../../../../utils/utils';\nimport __vue_normalize__ from 'vue-runtime-helpers/dist/normalize-component.js';\n\nvar script = {\n name: 'GlListboxItem',\n components: {\n GlIcon\n },\n props: {\n isSelected: {\n type: Boolean,\n default: false,\n required: false\n },\n isFocused: {\n type: Boolean,\n default: false,\n required: false\n },\n isCheckCentered: {\n type: Boolean,\n required: false,\n default: false\n }\n },\n computed: {\n checkedClasses() {\n if (this.isCheckCentered) {\n return '';\n }\n return 'gl-mt-3 gl-self-start';\n }\n },\n methods: {\n toggleSelection() {\n this.$emit('select', !this.isSelected);\n },\n onKeydown(event) {\n const {\n code\n } = event;\n if (code === ENTER || code === SPACE) {\n stopEvent(event);\n this.toggleSelection();\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('li',{staticClass:\"gl-new-dropdown-item\",attrs:{\"role\":\"option\",\"tabindex\":_vm.isFocused ? 0 : -1,\"aria-selected\":_vm.isSelected},on:{\"click\":_vm.toggleSelection,\"keydown\":_vm.onKeydown}},[_c('span',{staticClass:\"gl-new-dropdown-item-content\"},[_c('gl-icon',{class:[\n 'gl-new-dropdown-item-check-icon',\n { 'gl-invisible': !_vm.isSelected },\n _vm.checkedClasses ],attrs:{\"name\":\"mobile-issue-close\",\"data-testid\":\"dropdown-item-checkbox\"}}),_vm._v(\" \"),_c('span',{staticClass:\"gl-new-dropdown-item-text-wrapper\"},[_vm._t(\"default\")],2)],1)])};\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 render = function render(){var _vm=this,_c=_vm._self._c;return _c('timeline-entry-item',{staticClass:\"note system-note being-posted fade-in-half\"},[_c('div',{staticClass:\"timeline-content\"},[_c('em',[_vm._v(_vm._s(_vm.note.body))])])])\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!./placeholder_system_note.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!./placeholder_system_note.vue?vue&type=script&lang=js\"","<script>\nimport TimelineEntryItem from '~/vue_shared/components/notes/timeline_entry_item.vue';\n\n/**\n * Common component to render a placeholder system note.\n *\n * @example\n * <placeholder-system-note\n * :note=\"{ body: 'Commands are being applied'}\"\n * />\n */\nexport default {\n name: 'PlaceholderSystemNote',\n components: {\n TimelineEntryItem,\n },\n props: {\n note: {\n type: Object,\n required: true,\n },\n },\n};\n</script>\n\n<template>\n <timeline-entry-item class=\"note system-note being-posted fade-in-half\">\n <div class=\"timeline-content\">\n <em>{{ note.body }}</em>\n </div>\n </timeline-entry-item>\n</template>\n","import { render, staticRenderFns } from \"./placeholder_system_note.vue?vue&type=template&id=8ff41686\"\nimport script from \"./placeholder_system_note.vue?vue&type=script&lang=js\"\nexport * from \"./placeholder_system_note.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 * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\n"],"sourceRoot":""}