{"version":3,"sources":["webpack:///./due_date_select.js","webpack:///./right_sidebar.js","webpack:///./vue_shared/components/toggle_button.vue?8d3b","webpack:///vue_shared/components/toggle_button.vue","webpack:///./vue_shared/components/toggle_button.vue?9870","webpack:///./vue_shared/components/toggle_button.vue","webpack:///./sidebar/components/assignees/assignees.vue?5d5b","webpack:///./sidebar/components/assignees/assignees.vue?d5bb","webpack:///sidebar/components/assignees/assignees.vue","webpack:///./sidebar/components/assignees/assignees.vue","webpack:///./sidebar/components/assignees/assignee_title.vue?7676","webpack:///./sidebar/components/assignees/assignee_title.vue?b807","webpack:///sidebar/components/assignees/assignee_title.vue","webpack:///./sidebar/components/assignees/assignee_title.vue","webpack:///./sidebar/components/subscriptions/subscriptions.vue?7a77","webpack:///sidebar/components/subscriptions/subscriptions.vue","webpack:///./sidebar/components/subscriptions/subscriptions.vue?aeb0","webpack:///./sidebar/components/subscriptions/subscriptions.vue","webpack:///./issuable_context.js","webpack:///./vue_shared/directives/tooltip.js","webpack:////home/git/gitlab/node_modules/sortablejs/Sortable.js","webpack:///./shortcuts_navigation.js","webpack:///./vue_shared/components/icon.vue?6516","webpack:///vue_shared/components/icon.vue","webpack:///./vue_shared/components/icon.vue?1c2e","webpack:///./vue_shared/components/icon.vue","webpack:///./filtered_search/event_hub.js","webpack:///./filtered_search/components/recent_searches_dropdown_content.vue?5473","webpack:///filtered_search/components/recent_searches_dropdown_content.vue","webpack:///./filtered_search/components/recent_searches_dropdown_content.vue","webpack:///./filtered_search/components/recent_searches_dropdown_content.vue?0dab","webpack:///./filtered_search/recent_searches_root.js","webpack:///./filtered_search/stores/recent_searches_store.js","webpack:///./filtered_search/services/recent_searches_service_error.js","webpack:///./filtered_search/services/recent_searches_service.js","webpack:///./filtered_search/filtered_search_manager.js","webpack:///./project_select_combo_button.js","webpack:///./project_select.js","webpack:///./pages/projects/project.js","webpack:///./pages/projects/index.js","webpack:///./vue_shared/models/label.js","webpack:///./vue_shared/models/assignee.js","webpack:///./boards/filtered_search_boards.js","webpack:///./boards/eventhub.js","webpack:///./boards/models/project.js","webpack:///./boards/models/issue.js","webpack:///./boards/utils/query_data.js","webpack:///./boards/models/list.js","webpack:///./boards/stores/boards_store.js","webpack:///./boards/services/board_service.js","webpack:///./boards/mixins/modal_mixins.js","webpack:///./sortable/sortable_config.js","webpack:///./boards/mixins/sortable_default_options.js","webpack:///./boards/filters/due_date_filters.js","webpack:///./boards/components/project_select.vue?b0bc","webpack:///boards/components/project_select.vue","webpack:///./boards/components/project_select.vue","webpack:///./boards/components/project_select.vue?f9b5","webpack:///boards/components/board_new_issue.vue","webpack:///./boards/components/board_new_issue.vue?264f","webpack:///./boards/components/board_new_issue.vue","webpack:///./boards/components/board_new_issue.vue?a397","webpack:///./boards/components/issue_card_inner.js","webpack:///boards/components/board_card.vue","webpack:///./boards/components/board_card.vue?957e","webpack:///./boards/components/board_card.vue","webpack:///./boards/components/board_card.vue?4f6b","webpack:///boards/components/board_list.vue","webpack:///./boards/components/board_list.vue?d951","webpack:///./boards/components/board_list.vue","webpack:///./boards/components/board_list.vue?8dcf","webpack:///boards/components/board_blank_state.vue","webpack:///./boards/components/board_blank_state.vue?a61a","webpack:///./boards/components/board_blank_state.vue","webpack:///./boards/components/board_blank_state.vue?03f0","webpack:///./boards/components/board_delete.js","webpack:///./boards/components/board.js","webpack:///./boards/components/sidebar/remove_issue.js","webpack:///./boards/components/board_sidebar.js","webpack:///./boards/components/new_list_dropdown.js","webpack:///./boards/components/modal/filters.js","webpack:///./boards/components/modal/tabs.js","webpack:///./boards/components/modal/header.js","webpack:///./boards/components/modal/list.js","webpack:///./boards/components/modal/lists_dropdown.js","webpack:///./boards/components/modal/footer.js","webpack:///./boards/components/modal/empty_state.js","webpack:///./boards/components/modal/index.js","webpack:///./boards/index.js","webpack:///./sidebar/event_hub.js","webpack:///./boards/models/milestone.js","webpack:///./pages/projects/boards/index.js","webpack:///./vue_shared/components/user_avatar/user_avatar_image.vue?74b0","webpack:///./vue_shared/components/user_avatar/user_avatar_image.vue?54d9","webpack:///vue_shared/components/user_avatar/user_avatar_image.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_image.vue","webpack:///../images/no_avatar.png","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue?a1ff","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue?bea8","webpack:///vue_shared/components/user_avatar/user_avatar_link.vue","webpack:///./vue_shared/components/user_avatar/user_avatar_link.vue"],"names":["DueDateSelect","_ref","arguments","length","undefined","$dropdown","$loading","_classCallCheck","this","$dropdownParent","closest","$block","$datePicker","find","$sidebarCollapsedValue","$selectbox","$value","$valueContent","$sidebarValue","jquery__WEBPACK_IMPORTED_MODULE_0___default","fieldName","data","abilityName","issueUpdateURL","rawSelectedDate","displayedDate","datePayload","initGlDropdown","initRemoveDueDate","initDatePicker","_this","glDropdown","opened","show","hidden","hide","css","_this2","$dueDateInput","$","calendar","pikaday__WEBPACK_IMPORTED_MODULE_1___default","a","field","get","theme","format","parse","dateString","Object","_lib_utils_datefix__WEBPACK_IMPORTED_MODULE_5__","toString","date","onSelect","dateText","val","hasClass","gl","issueBoards","BoardsStore","detail","issue","dueDate","updateIssueBoardIssue","saveDueDate","setDate","append","el","_this3","on","e","preventDefault","isDropdown","parseSelectedDate","prepSelectedDate","submitSelectedDate","dateArray","split","map","v","parseInt","dateObj","Date","dateFormat","due_date","_this4","fadeIn","trigger","fadeOutLoader","fadeOut","update","attr","then","catch","_this5","selectedDateValue","hasDueDate","displayedDateStyle","removeClass","html","toggleClass","_lib_utils_axios_utils__WEBPACK_IMPORTED_MODULE_3__","put","tooltipText","_locale__WEBPACK_IMPORTED_MODULE_2__","_lib_utils_datetime_utility__WEBPACK_IMPORTED_MODULE_4__","dropdown","DueDateSelectors","initMilestoneDatePicker","initIssuableSelect","each","container","parent","target","siblings","i","_locale__WEBPACK_IMPORTED_MODULE_5__","__webpack_require__","Sidebar","currentUser","toggleTodo","bind","sidebar","removeListeners","addEventListeners","initialize","instance","prototype","off","document","$document","sidebarCollapseClicked","onSidebarDropdownHidden","sidebarDropdownLoading","sidebarDropdownLoaded","sidebarToggleClicked","triggered","$allGutterToggleIcons","$this","isExpanded","tooltipLabel","addClass","lazyLoader","loadCheck","js_cookie__WEBPACK_IMPORTED_MODULE_2___default","set","ajaxType","url","currentTarget","tooltip","disable","_lib_utils_axios_utils__WEBPACK_IMPORTED_MODULE_4__","issuable_id","issuable_type","todoUpdateDone","_flash__WEBPACK_IMPORTED_MODULE_3__","flash","deletePath","delete_path","attrPrefix","$todoBtns","count","$el","$elText","enable","text","$sidebarCollapsedIcon","img","before","remove","openDropdown","blockOrName","underscore__WEBPACK_IMPORTED_MODULE_1___default","isString","getBlock","isOpen","setCollapseAfterUpdate","toggleSidebar","setTimeout","sidebarDropdownHidden","triggerOpenSidebar","action","is","name","__webpack_exports__","LABEL_ON","locale","LABEL_OFF","components_toggle_buttonvue_type_script_lang_js","components","icon","loadingIcon","loading_icon","model","prop","event","props","type","String","required","default","value","Boolean","disabledInput","isLoading","computed","toggleIcon","ariaLabel","methods","toggleFeature","$emit","component","componentNormalizer","_vm","_h","$createElement","_c","_self","staticClass","attrs","domProps","_e","_v","class","is-checked","is-disabled","is-loading","aria-label","click","css-classes","assignees_assigneesvue_type_script_lang_js","directives","rootPath","users","Array","editable","issuableType","require","defaultRenderCount","defaultMaxCounter","showLess","firstUser","hasMoreThanTwoAssignees","hasMoreThanOneAssignee","hasAssignees","hasNoUsers","hasOneUser","renderShowMoreSection","numberOfHiddenAssignees","isHiddenAssignees","hiddenAssigneesLabel","collapsedTooltipTitle","maxRender","Math","min","names","slice","u","push","emptyTooltipLabel","join","sidebarAvatarCounter","counter","assignSelf","toggleShowLess","renderAssignee","index","avatarUrl","user","avatar","avatar_url","gon","default_avatar_url","assigneeUrl","username","assigneeAlt","assigneeUsername","shouldRenderCollapsedAssignee","firstTwo","rawName","multiple-users","data-container","data-placement","data-boundary","title","_l","key","id","width","alt","src","_s","href","data-title","assignees_assignee_titlevue_type_script_lang_js","loading","numberOfAssignees","Number","showToggle","assigneeTitle","assignees","aria-hidden","__","role","data-hidden","subscriptions_subscriptionsvue_type_script_lang_js","toggleButton","toggle_button","subscribed","showLoadingState","notificationIcon","notificationTooltip","toggleSubscription","event_hub","onClickCollapsedIcon","size","ref","change","IssuableContext","userSelect","_users_select__WEBPACK_IMPORTED_MODULE_3__","select2","dropdownAutoWidth","submit","parents","window","addEventListener","bpBreakpoint","_breakpoints__WEBPACK_IMPORTED_MODULE_2__","getBreakpointSize","js_cookie__WEBPACK_IMPORTED_MODULE_1___default","componentUpdated","unbind","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","factory","call","exports","module","Error","dragEl","parentEl","ghostEl","cloneEl","rootEl","nextEl","lastDownEl","scrollEl","scrollParentEl","scrollCustomFn","lastEl","lastCSS","lastParentCSS","oldIndex","newIndex","activeGroup","putSortable","tapEvt","touchEvt","moved","autoScroll","R_SPACE","R_FLOAT","expando","getTime","win","jQuery","Zepto","Polymer","captureMode","supportDraggable","createElement","supportCssPointerEvents","navigator","userAgent","match","style","cssText","pointerEvents","_silent","abs","savedInputChecked","touchDragOverListeners","_autoScroll","_throttle","evt","options","scroll","rect","vx","vy","scrollOffsetX","scrollOffsetY","sens","scrollSensitivity","speed","scrollSpeed","x","clientX","y","clientY","winWidth","innerWidth","winHeight","innerHeight","scrollFn","offsetWidth","scrollWidth","offsetHeight","scrollHeight","parentNode","getBoundingClientRect","right","left","bottom","top","clearInterval","pid","setInterval","scrollTo","pageXOffset","pageYOffset","scrollTop","scrollLeft","_prepareGroup","toFn","pull","group","to","from","fromGroup","indexOf","originalGroup","checkPull","checkPut","revertClone","defineProperty","capture","passive","err","Sortable","nodeType","_extend","defaults","random","sort","disabled","store","handle","draggable","test","nodeName","ghostClass","chosenClass","dragClass","ignore","filter","preventOnFilter","animation","setData","dataTransfer","textContent","dropBubble","dragoverBubble","dataIdAttr","delay","forceFallback","fallbackClass","fallbackOnBody","fallbackTolerance","fallbackOffset","supportPointer","fn","charAt","nativeDraggable","_on","_onTapStart","_onDragOver","_cloneHide","sortable","state","lastPullMode","_css","insertBefore","_animate","_closest","selector","ctx","_matches","_getParentOrHost","host","_off","removeEventListener","_toggleClass","classList","className","replace","defaultView","getComputedStyle","currentStyle","_find","tagName","iterator","list","getElementsByTagName","n","_dispatchEvent","targetEl","toEl","fromEl","startIndex","createEvent","onName","toUpperCase","substr","initEvent","item","clone","dispatchEvent","_onMove","dragRect","targetRect","originalEvt","willInsertAfter","retVal","onMoveFn","onMove","dragged","draggedRect","related","relatedRect","_disableDraggable","_unsilent","_generateId","str","sum","charCodeAt","_index","previousElementSibling","tag","shift","re","RegExp","callback","ms","args","apply","dst","hasOwnProperty","_clone","dom","cloneNode","_nextTick","_cancelNextTick","clearTimeout","constructor","touch","touches","originalTarget","shadowRoot","path","root","inputs","idx","checked","_saveInputCheckedState","button","isContentEditable","some","criteria","trim","_prepareDragStart","dragStartFn","ownerDocument","nextSibling","_lastX","_lastY","_disableDelayedDrag","_triggerDragStart","forEach","_onDrop","_dragStartTimer","pointerType","_onDragStart","selection","empty","getSelection","removeAllRanges","_dragStarted","active","_nulling","_emulateDragOver","elementFromPoint","_onTouchMove","dx","dy","translate3d","_appendGhost","ghostRect","marginTop","marginLeft","height","body","appendChild","useFallback","_offUpEvents","_cloneId","_loopId","effectAllowed","_dragStartId","revert","activeSortable","isOwner","isMovingBetweenSortable","canSort","stopPropagation","animated","contains","children","lastElementChild","floating","cssFloat","display","isWide","isLong","halfway","nextElementSibling","after","elTop","offsetTop","tgTop","moveVector","prevRect","currentRect","removeChild","save","handleEvent","dropEffect","_globalDragOver","toArray","order","getAttribute","items","option","destroy","querySelectorAll","removeAttribute","splice","utils","extend","throttle","nextTick","cancelNextTick","create","version","ShortcutsNavigation","_possibleConstructorReturn","__proto__","getPrototypeOf","mousetrap__WEBPACK_IMPORTED_MODULE_0___default","_shortcuts_dashboard_navigation__WEBPACK_IMPORTED_MODULE_1__","enabledHelp","_shortcuts__WEBPACK_IMPORTED_MODULE_2__","validSizes","components_iconvue_type_script_lang_js","validator","includes","cssClasses","spriteHref","sprite_icons","iconTestClass","iconSizeClass","_b","xlink:href","vue_esm","components_recent_searches_dropdown_contentvue_type_script_lang_js","isLocalStorageAvailable","allowedKeys","processedItems","_FilteredSearchTokeni","filtered_search_tokenizer","processTokens","tokens","searchToken","token","prefix","suffix","symbol","hasItems","onItemActivated","onRequestClearRecentSearches","recent_searches_dropdown_content","$event","recent_searches_root","RecentSearchesRoot","recentSearchesStore","recentSearchesService","wrapperElement","service","bindEvents","render","onRequestClearRecentSearchesWrapper","$on","$off","vm","RecentSearchesDropdownContent","template","resultantSearches","setRecentSearches","unbindEvents","$destroy","recent_searches_store","RecentSearchesStore","initialState","recent_searches_store_classCallCheck","assign","recentSearches","newSearch","concat","trimmedSearches","search","underscore_default","uniq","RecentSearchesServiceError","message","recent_searches_service_error_classCallCheck","recent_searches_service_error","recent_searches_service","RecentSearchesService","localStorageKey","recent_searches_service_classCallCheck","isAvailable","error","Promise","reject","input","localStorage","getItem","searches","JSON","resolve","setItem","stringify","accessor","isLocalStorageAccessSafe","filtered_search_manager_FilteredSearchManager","FilteredSearchManager","page","_ref$isGroup","isGroup","_ref$isGroupAncestor","isGroupAncestor","_ref$isGroupDecendent","isGroupDecendent","_ref$filteredSearchTo","filteredSearchTokenKeys","filtered_search_token_keys","_ref$stateFiltersSele","stateFiltersSelector","filtered_search_manager_classCallCheck","states","filteredSearchInput","querySelector","filteredSearchInputForm","form","clearSearchButton","tokensContainer","recentsStorageKeyNames","issues","merge_requests","getKeys","searchHistoryDropdownElement","recentSearchesKey","dataset","fullPath","fetchingRecentSearchesPromise","fetch","tokenizer","dropdownManager","filtered_search_dropdown_manager","baseEndpoint","recentSearchesRoot","init","loadSearchParamsFromURL","setDropdown","cleanupWrapper","cleanup","stateFilters","searchStateWrapper","searchState","applyToStateFilters","filterEl","handleFormSubmit","setDropdownWrapper","toggleClearSearchButtonWrapper","toggleClearSearchButton","handleInputPlaceholderWrapper","handleInputPlaceholder","handleInputVisualTokenWrapper","handleInputVisualToken","checkForEnterWrapper","checkForEnter","onClearSearchWrapper","onClearSearch","checkForBackspaceWrapper","checkForBackspace","removeSelectedTokenKeydownWrapper","removeSelectedTokenKeydown","unselectEditTokensWrapper","unselectEditTokens","editTokenWrapper","editToken","tokenChange","addInputContainerFocusWrapper","addInputContainerFocus","removeInputContainerFocusWrapper","removeInputContainerFocus","onrecentSearchesItemSelectedWrapper","onrecentSearchesItemSelected","removeTokenWrapper","removeToken","bindStateEvents","unbindStateEvents","backspaceCount","keyCode","lastVisualToken","filtered_search_visual_tokens","getLastVisualTokenBeforeInput","_DropdownUtils$getVis","dropdown_utils","getVisualTokenValues","tokenName","tokenValue","canEdit","getLastTokenPartial","removeLastTokenPartial","updateCurrentDropdownOffset","selectionStart","setSelectionRange","activeElements","mapping","currentDropdown","element","isHandledAsync","stopImmediatePropagation","blur","resetDropdowns","destroyDroplab","dom_utils","inputContainer","isElementInFilteredSearch","isElementInDynamicFilterDropdown","isElementInStaticFilterDropdown","selectToken","removeSelectedToken","isElementInFilterDropdown","isElementTokensContainer","moveInputToTheRight","sanitizedTokenName","query","getSearchQuery","hasHidden","add","currentPlaceholder","placeholder","clearSearch","_this6","removeElements","t","canClearToken","_DropdownUtils$getVis2","parentElement","_tokenizer$processTok","isLastVisualTokenValid","addFilterVisualToken","fragments","inputValues","tokenKey","last","pop","searchTerms","addSearchVisualToken","_this7","searchQuery","addRecentSearch","urlParams","modifyUrlParams","_this8","common_utils","params","getAllParams","usernameParams","getUsernameParams","hasFilteredSearch","p","keyParam","decodeURIComponent","condition","searchByConditionUrl","sanitizedValue","searchByKeyParam","lastIndexOf","sanitizedKey","quotationsToUse","saveCurrentSearchQuery","_this9","paths","_tokenizer$processTok2","currentState","searchByConditionKeyValue","toLowerCase","param","searchByKey","underscoredKey","tokenPath","encodeURIComponent","sanitized","parameterizedUrl","updateObject","url_utility","usernamesById","attribute","currentDropdownRef","reference","dispatchInputEvent","CustomEvent","ProjectSelectComboButton","select","projectSelectInput","jquery_default","newItemBtn","resourceType","resourceLabel","formattedText","deriveTextVariants","groupId","initLocalStorage","getProjectFromLocalStorage","selectProject","localStorageItemType","setBtnTextFromLocalStorage","selectedProjectData","projectMeta","setNewItemBtnAttributes","setProjectInLocalStorage","cachedProjectData","project","defaultTextPrefix","presetTextSuffix","projectString","projectSelect","simpleFilter","includeGroups","allProjects","orderBy","withIssuesEnabled","withMergeRequestsEnabled","minimumInputLength","finalCallback","projectsCallback","projects","results","groupsCallback","groups","api","term","groupProjects","order_by","with_issues_enabled","with_merge_requests_enabled","membership","web_url","name_with_namespace","dropdownCssClass","project_select_combo_button","d","Project","$cloneOptions","$projectCloneField","$cloneBtnText","selectedCloneOption","activeText","not","initRefSwitcher","projectSelectDropdown","_project_select__WEBPACK_IMPORTED_MODULE_6__","changeProject","location","refListItem","refLink","selected","_flash__WEBPACK_IMPORTED_MODULE_5__","selectable","filterable","filterRemote","filterByText","inputFieldName","renderRow","li","header","link","obj","toggleLabel","clicked","$form","$visit","shouldVisit","divider","_lib_utils_url_utility__WEBPACK_IMPORTED_MODULE_3__","visitUrl","serialize","_project__WEBPACK_IMPORTED_MODULE_0__","_shortcuts_navigation__WEBPACK_IMPORTED_MODULE_1__","label_ListLabel","ListLabel","color","textColor","text_color","description","priority","Infinity","assignee_ListAssignee","ListAssignee","defaultAvatar","assignee_classCallCheck","webUrl","FilteredSearchBoards","updateUrl","cantEdit","filtered_search_boards_classCallCheck","cantEditWithValue","_typeof","filtered_search_manager","updateFiltersUrl","removeTokens","Event","findIndex","eventhub","IssueProject","project_classCallCheck","issue_ListIssue","ListIssue","issue_classCallCheck","iid","confidential","labels","position","relative_position","isFetching","subscriptions","sidebarInfoEndpoint","issue_sidebar_endpoint","referencePath","reference_path","real_path","toggleSubscriptionEndpoint","toggle_subscription_endpoint","milestone_id","project_id","models_project","milestone","ListMilestone","label","findLabel","removeLabel","assignee","findAssignee","removeAssignee","lists","findIssue","newData","assignee_ids","label_ids","http","patch","models_issue","query_data","extraData","reduce","dataParam","filterParam","paramSplit","paramKeyNormalized","isArray","list_List","List","list_classCallCheck","_uid","guid","list_type","preset","isExpandable","loadingMore","issuesSize","models_label","getIssues","s4","floor","substring","entity","entityType","boardService","createList","res","updateNewListDropdown","destroyList","updateList","emptyIssues","label_name","getIssuesForList","createIssues","addIssue","newIssue","moveBeforeId","moveIssue","issueObj","listFrom","moveAfterId","addLabel","addAssignee","updateIssueLabel","removeIssue","matchesRemove","moving","addList","listObj","new","backlogList","findList","sortBy","removeBlankState","listId","shouldAddBlankState","addBlankState","welcomeIsHidden","removeList","js_cookie_default","expires","moveList","orderLists","moveIssueToList","listTo","issueTo","issueLists","getLists","listLabels","listIssue","removeLabels","moveIssueInList","idArray","beforeId","afterId","byType","history","pushState","board_service_BoardService","BoardService","boardsEndpoint","listsEndpoint","bulkUpdatePath","boardId","board_service_classCallCheck","listsEndpointGenerate","axios_utils","post","entityId","delete","keys","generateIssuesPath","fromListId","toListId","generateIssuePath","from_list_id","to_list_id","move_before_id","move_after_id","relative_url_root","issueIds","issuable_ids","endpoint","modal_mixins","toggleModal","toggle","modal_store","showAddIssuesModal","changeTab","tab","activeTab","sortable_config","onStart","onEnd","touchEnabled","DocumentTouch","getBoardSortableDefaultOptions","defaultSortOptions","components_project_selectvue_type_script_lang_js","selectedProject","selectedProjectName","mounted","$refs","projectsDropdown","fields","escape","project_select","data-toggle","aria-expanded","_m","board_new_issuevue_type_script_lang_js_Store","components_board_new_issuevue_type_script_lang_js","ProjectSelect","focus","setSelectedProject","cancel","submitButton","board_new_issue","for","expression","autocomplete","composing","group-id","issue_card_inner_Store","IssueCardInner","issueLinkBase","updateFilters","limitBeforeCounter","maxCounter","UserAvatarLink","user_avatar_link","numberOverLimit","assigneeCounterTooltip","assigneeCounterLabel","shouldRenderCounter","issueId","showLabelFooter","l","showLabel","isIndexLessThanlimit","shouldRenderAssignee","assigneeUrlTitle","avatarUrlTitle","filterByLabel","filterPath","labelIndex","labelStyle","backgroundColor","board_cardvue_type_script_lang_js_Store","components_board_cardvue_type_script_lang_js","issue-card-inner","showDetail","detailIssue","issueDetailVisible","mouseDown","mouseMove","showIssue","board_card","user-can-drag","is-active","data-issue-id","mousedown","mousemove","mouseup","issue-link-base","root-path","update-filters","board_listvue_type_script_lang_js_Store","components_board_listvue_type_script_lang_js","boardCard","boardNewIssue","scrollOffset","filters","showCount","showIssueForm","watch","handler","deep","$nextTick","listHeight","ceil","created","toggleForm","scrollToTop","toBoardType","boardType","fromBoardType","card","onAdd","onUpdate","sortedArray","Sortable_default","onScroll","beforeDestroy","loadNextPage","nextPage","loadingDone","board_list","is-smaller","data-board","data-board-type","refInFor","board_blank_statevue_type_script_lang_js_Store","components_board_blank_statevue_type_script_lang_js","predefinedLabels","addDefaultLists","clearBlankState","generateDefaultLists","board_blank_state","BoardDelete","deleteBoard","confirm","board_Store","Board","boardList","board-delete","BoardBlankState","offsetLeft","boardsList","animate","sortableOptions","showNewIssueForm","toggleExpanded","isCollapsed","remove_issue_Store","RemoveIssueBtn","listLabelIds","labelIds","board_sidebar_Store","BoardSidebar","loadingAssignees","showSidebar","milestoneTitle","canRemove","clearMenu","closeSidebar","assigneeBlock","saveAssignees","removeAllAssignees","issuable_context","milestone_select","due_date_select","labels_select","right_sidebar","assignee_title","assignees_assignees","removeBtn","new_list_dropdown_Store","newListDropdownInit","create_label","$li","$a","$labelColor","prepend","multiSelect","containerSelector","selectedObj","filteredSearch","filtered_search_boards","setup","destroyed","ModalTabs","mixins","selectedCount","ModalHeader","projectId","milestonePath","labelPath","selectAllText","showSearch","issuesCount","toggleAll","selectAllBtn","modal-tabs","modalFilters","ModalList","emptyStateSvg","purgeUnselectedIssues","loopIssues","selectedIssues","groupedIssues","columns","scrollHandler","currentPage","perPage","loadingNewPage","toggleIssue","selectedIssueIndex","setColumnCount","breakpoint","breakpoints","scrollHandlerWrapper","setColumnCountWrapper","ModalFooterListsDropdown","modal","selectedList","ModalFooter","submitDisabled","submitText","text_utility","addIssues","getSelectedIssues","bulkUpdate","add_label_ids","lists-dropdown","ModalEmptyState","newIssuePath","contents","content","IssuesModal","loadIssues","filterLoading","clearIssues","getBacklog","per","foundSelectedIssue","findSelectedIssue","showList","showEmptyState","modal-header","modal-list","modal-footer","empty-state","$boardApp","getElementById","Store","IssueBoardsApp","boardStoreIssueSet","_len","_key","boardStoreIssueDelete","_len2","_key2","board","board-sidebar","board-add-issues-modal","detailIssueVisible","board_service","updateTokens","updateDetailIssue","clearDetailIssue","filterManager","all","setFetchingState","getIssueInfo","updateData","toggleIssueSubscription","IssueBoardsSearch","IssueBoardsModalAddBtn","canAdminList","$options","hasAttribute","tooltipTitle","updateTooltip","$tooltip","addIssuesButton","openModal","eventHub","emitSidebarEvent","_users_select__WEBPACK_IMPORTED_MODULE_0__","_boards__WEBPACK_IMPORTED_MODULE_2__","user_avatar_user_avatar_imagevue_type_script_lang_js","lazy","imgSrc","no_avatar_default","imgAlt","tooltipPlacement","sanitizedSource","resultantSrcAttribute","lazy_loader","tooltipContainer","avatarSizeClass","_obj","data-src","user_avatar_user_avatar_linkvue_type_script_lang_js","userAvatarImage","user_avatar_image","linkHref","imgCssClasses","imgSize","shouldShowUsername","avatarTooltipText","img-src","img-alt","tooltip-text","tooltip-placement"],"mappings":"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","file":"pages.projects.boards.e59d640a.chunk.js","sourcesContent":["/* global dateFormat */\n\nimport $ from 'jquery';\nimport Pikaday from 'pikaday';\nimport { __ } from '~/locale';\nimport axios from './lib/utils/axios_utils';\nimport { timeFor } from './lib/utils/datetime_utility';\nimport { parsePikadayDate, pikadayToString } from './lib/utils/datefix';\n\nclass DueDateSelect {\n constructor({ $dropdown, $loading } = {}) {\n const $dropdownParent = $dropdown.closest('.dropdown');\n const $block = $dropdown.closest('.block');\n this.$loading = $loading;\n this.$dropdown = $dropdown;\n this.$dropdownParent = $dropdownParent;\n this.$datePicker = $dropdownParent.find('.js-due-date-calendar');\n this.$block = $block;\n this.$sidebarCollapsedValue = $block.find('.sidebar-collapsed-icon');\n this.$selectbox = $dropdown.closest('.selectbox');\n this.$value = $block.find('.value');\n this.$valueContent = $block.find('.value-content');\n this.$sidebarValue = $('.js-due-date-sidebar-value', $block);\n this.fieldName = $dropdown.data('fieldName');\n this.abilityName = $dropdown.data('abilityName');\n this.issueUpdateURL = $dropdown.data('issueUpdate');\n\n this.rawSelectedDate = null;\n this.displayedDate = null;\n this.datePayload = null;\n\n this.initGlDropdown();\n this.initRemoveDueDate();\n this.initDatePicker();\n }\n\n initGlDropdown() {\n this.$dropdown.glDropdown({\n opened: () => {\n const calendar = this.$datePicker.data('pikaday');\n calendar.show();\n },\n hidden: () => {\n this.$selectbox.hide();\n this.$value.css('display', '');\n },\n });\n }\n\n initDatePicker() {\n const $dueDateInput = $(`input[name='${this.fieldName}']`);\n const calendar = new Pikaday({\n field: $dueDateInput.get(0),\n theme: 'gitlab-theme',\n format: 'yyyy-mm-dd',\n parse: dateString => parsePikadayDate(dateString),\n toString: date => pikadayToString(date),\n onSelect: (dateText) => {\n $dueDateInput.val(calendar.toString(dateText));\n\n if (this.$dropdown.hasClass('js-issue-boards-due-date')) {\n gl.issueBoards.BoardsStore.detail.issue.dueDate = $dueDateInput.val();\n this.updateIssueBoardIssue();\n } else {\n this.saveDueDate(true);\n }\n },\n });\n\n calendar.setDate(parsePikadayDate($dueDateInput.val()));\n this.$datePicker.append(calendar.el);\n this.$datePicker.data('pikaday', calendar);\n }\n\n initRemoveDueDate() {\n this.$block.on('click', '.js-remove-due-date', (e) => {\n const calendar = this.$datePicker.data('pikaday');\n e.preventDefault();\n\n calendar.setDate(null);\n\n if (this.$dropdown.hasClass('js-issue-boards-due-date')) {\n gl.issueBoards.BoardsStore.detail.issue.dueDate = '';\n this.updateIssueBoardIssue();\n } else {\n $(`input[name='${this.fieldName}']`).val('');\n this.saveDueDate(false);\n }\n });\n }\n\n saveDueDate(isDropdown) {\n this.parseSelectedDate();\n this.prepSelectedDate();\n this.submitSelectedDate(isDropdown);\n }\n\n parseSelectedDate() {\n this.rawSelectedDate = $(`input[name='${this.fieldName}']`).val();\n\n if (this.rawSelectedDate.length) {\n // Construct Date object manually to avoid buggy dateString support within Date constructor\n const dateArray = this.rawSelectedDate.split('-').map(v => parseInt(v, 10));\n const dateObj = new Date(dateArray[0], dateArray[1] - 1, dateArray[2]);\n this.displayedDate = dateFormat(dateObj, 'mmm d, yyyy');\n } else {\n this.displayedDate = 'No due date';\n }\n }\n\n prepSelectedDate() {\n const datePayload = {};\n datePayload[this.abilityName] = {};\n datePayload[this.abilityName].due_date = this.rawSelectedDate;\n this.datePayload = datePayload;\n }\n\n updateIssueBoardIssue() {\n this.$loading.fadeIn();\n this.$dropdown.trigger('loading.gl.dropdown');\n this.$selectbox.hide();\n this.$value.css('display', '');\n const fadeOutLoader = () => {\n this.$loading.fadeOut();\n };\n\n gl.issueBoards.BoardsStore.detail.issue.update(this.$dropdown.attr('data-issue-update'))\n .then(fadeOutLoader)\n .catch(fadeOutLoader);\n }\n\n submitSelectedDate(isDropdown) {\n const selectedDateValue = this.datePayload[this.abilityName].due_date;\n const hasDueDate = this.displayedDate !== 'No due date';\n const displayedDateStyle = hasDueDate ? 'bold' : 'no-value';\n\n this.$loading.removeClass('hidden').fadeIn();\n\n if (isDropdown) {\n this.$dropdown.trigger('loading.gl.dropdown');\n this.$selectbox.hide();\n }\n\n this.$value.css('display', '');\n this.$valueContent.html(`${this.displayedDate}`);\n this.$sidebarValue.html(this.displayedDate);\n\n $('.js-remove-due-date-holder').toggleClass('hidden', selectedDateValue.length);\n\n return axios.put(this.issueUpdateURL, this.datePayload)\n .then(() => {\n const tooltipText = hasDueDate ? `${__('Due date')}${selectedDateValue} (${timeFor(selectedDateValue)})` : __('Due date');\n if (isDropdown) {\n this.$dropdown.trigger('loaded.gl.dropdown');\n this.$dropdown.dropdown('toggle');\n }\n this.$sidebarCollapsedValue.attr('data-original-title', tooltipText);\n\n return this.$loading.fadeOut();\n });\n }\n}\n\nexport default class DueDateSelectors {\n constructor() {\n this.initMilestoneDatePicker();\n this.initIssuableSelect();\n }\n // eslint-disable-next-line class-methods-use-this\n initMilestoneDatePicker() {\n $('.datepicker').each(function initPikadayMilestone() {\n const $datePicker = $(this);\n const calendar = new Pikaday({\n field: $datePicker.get(0),\n theme: 'gitlab-theme animate-picker',\n format: 'yyyy-mm-dd',\n container: $datePicker.parent().get(0),\n parse: dateString => parsePikadayDate(dateString),\n toString: date => pikadayToString(date),\n onSelect(dateText) {\n $datePicker.val(calendar.toString(dateText));\n },\n });\n\n calendar.setDate(parsePikadayDate($datePicker.val()));\n\n $datePicker.data('pikaday', calendar);\n });\n\n $('.js-clear-due-date,.js-clear-start-date').on('click', (e) => {\n e.preventDefault();\n const calendar = $(e.target).siblings('.datepicker').data('pikaday');\n calendar.setDate(null);\n });\n }\n // eslint-disable-next-line class-methods-use-this\n initIssuableSelect() {\n const $loading = $('.js-issuable-update .due_date').find('.block-loading').hide();\n\n $('.js-due-date-select').each((i, dropdown) => {\n const $dropdown = $(dropdown);\n // eslint-disable-next-line no-new\n new DueDateSelect({\n $dropdown,\n $loading,\n });\n });\n }\n}\n","/* eslint-disable func-names, space-before-function-paren, no-var, prefer-rest-params, wrap-iife, no-unused-vars, consistent-return, one-var, one-var-declaration-per-line, quotes, prefer-template, object-shorthand, comma-dangle, no-else-return, no-param-reassign, max-len */\n\nimport $ from 'jquery';\nimport _ from 'underscore';\nimport Cookies from 'js-cookie';\nimport flash from './flash';\nimport axios from './lib/utils/axios_utils';\nimport { __ } from './locale';\n\nfunction Sidebar(currentUser) {\n this.toggleTodo = this.toggleTodo.bind(this);\n this.sidebar = $('aside');\n\n this.removeListeners();\n this.addEventListeners();\n}\n\nSidebar.initialize = function(currentUser) {\n if (!this.instance) {\n this.instance = new Sidebar(currentUser);\n }\n};\n\nSidebar.prototype.removeListeners = function () {\n this.sidebar.off('click', '.sidebar-collapsed-icon');\n this.sidebar.off('hidden.gl.dropdown');\n $('.dropdown').off('loading.gl.dropdown');\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 $('.dropdown').on('loading.gl.dropdown', this.sidebarDropdownLoading);\n $('.dropdown').on('loaded.gl.dropdown', this.sidebarDropdownLoaded);\n\n $document.on('click', '.js-sidebar-toggle', this.sidebarToggleClicked);\n return $(document).off('click', '.js-issuable-todo').on('click', '.js-issuable-todo', this.toggleTodo);\n};\n\nSidebar.prototype.sidebarToggleClicked = function (e, triggered) {\n var $allGutterToggleIcons, $this, isExpanded, tooltipLabel;\n e.preventDefault();\n $this = $(this);\n isExpanded = $this.find('i').hasClass('fa-angle-double-right');\n tooltipLabel = isExpanded ? __('Expand sidebar') : __('Collapse sidebar');\n $allGutterToggleIcons = $('.js-sidebar-toggle i');\n\n if (isExpanded) {\n $allGutterToggleIcons.removeClass('fa-angle-double-right').addClass('fa-angle-double-left');\n $('aside.right-sidebar').removeClass('right-sidebar-expanded').addClass('right-sidebar-collapsed');\n $('.layout-page').removeClass('right-sidebar-expanded').addClass('right-sidebar-collapsed');\n } else {\n $allGutterToggleIcons.removeClass('fa-angle-double-left').addClass('fa-angle-double-right');\n $('aside.right-sidebar').removeClass('right-sidebar-collapsed').addClass('right-sidebar-expanded');\n $('.layout-page').removeClass('right-sidebar-collapsed').addClass('right-sidebar-expanded');\n\n if (gl.lazyLoader) gl.lazyLoader.loadCheck();\n }\n\n $this.attr('data-original-title', tooltipLabel);\n\n if (!triggered) {\n Cookies.set(\"collapsed_gutter\", $('.right-sidebar').hasClass('right-sidebar-collapsed'));\n }\n};\n\nSidebar.prototype.toggleTodo = function(e) {\n var $btnText, $this, $todoLoading, ajaxType, url;\n $this = $(e.currentTarget);\n ajaxType = $this.attr('data-delete-path') ? 'delete' : 'post';\n if ($this.attr('data-delete-path')) {\n url = \"\" + ($this.attr('data-delete-path'));\n } else {\n url = \"\" + ($this.data('url'));\n }\n\n $this.tooltip('hide');\n\n $('.js-issuable-todo').disable().addClass('is-loading');\n\n axios[ajaxType](url, {\n issuable_id: $this.data('issuableId'),\n issuable_type: $this.data('issuableType'),\n }).then(({ data }) => {\n this.todoUpdateDone(data);\n }).catch(() => flash(`There was an error ${ajaxType === 'post' ? 'adding a' : 'deleting the'} todo.`));\n};\n\nSidebar.prototype.todoUpdateDone = function(data) {\n const deletePath = data.delete_path ? data.delete_path : null;\n const attrPrefix = deletePath ? 'mark' : 'todo';\n const $todoBtns = $('.js-issuable-todo');\n\n $(document).trigger('todo:toggle', data.count);\n\n $todoBtns.each((i, el) => {\n const $el = $(el);\n const $elText = $el.find('.js-issuable-todo-inner');\n\n $el.removeClass('is-loading')\n .enable()\n .attr('aria-label', $el.data(`${attrPrefix}Text`))\n .attr('data-delete-path', deletePath)\n .attr('title', $el.data(`${attrPrefix}Text`));\n\n if ($el.hasClass('has-tooltip')) {\n $el.tooltip('_fixTitle');\n }\n\n if ($el.data(`${attrPrefix}Icon`)) {\n $elText.html($el.data(`${attrPrefix}Icon`));\n } else {\n $elText.text($el.data(`${attrPrefix}Text`));\n }\n });\n};\n\nSidebar.prototype.sidebarDropdownLoading = function(e) {\n var $loading, $sidebarCollapsedIcon, i, img;\n $sidebarCollapsedIcon = $(this).closest('.block').find('.sidebar-collapsed-icon');\n img = $sidebarCollapsedIcon.find('img');\n i = $sidebarCollapsedIcon.find('i');\n $loading = $('');\n if (img.length) {\n img.before($loading);\n return img.hide();\n } else if (i.length) {\n i.before($loading);\n return i.hide();\n }\n};\n\nSidebar.prototype.sidebarDropdownLoaded = function(e) {\n var $sidebarCollapsedIcon, i, img;\n $sidebarCollapsedIcon = $(this).closest('.block').find('.sidebar-collapsed-icon');\n img = $sidebarCollapsedIcon.find('img');\n $sidebarCollapsedIcon.find('i.fa-spin').remove();\n i = $sidebarCollapsedIcon.find('i');\n if (img.length) {\n return img.show();\n } else {\n return i.show();\n }\n};\n\nSidebar.prototype.sidebarCollapseClicked = function(e) {\n var $block, sidebar;\n if ($(e.currentTarget).hasClass('dont-change-state')) {\n return;\n }\n sidebar = e.data;\n e.preventDefault();\n $block = $(this).closest('.block');\n return sidebar.openDropdown($block);\n};\n\nSidebar.prototype.openDropdown = function(blockOrName) {\n var $block;\n $block = _.isString(blockOrName) ? this.getBlock(blockOrName) : blockOrName;\n if (!this.isOpen()) {\n this.setCollapseAfterUpdate($block);\n this.toggleSidebar('open');\n }\n\n // Wait for the sidebar to trigger('click') open\n // so it doesn't cause our dropdown to close preemptively\n setTimeout(() => {\n $block.find('.js-sidebar-dropdown-toggle').trigger('click');\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 var $block, sidebar;\n sidebar = e.data;\n e.preventDefault();\n $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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('label',{staticClass:\"toggle-wrapper\"},[(_vm.name)?_c('input',{attrs:{\"type\":\"hidden\",\"name\":_vm.name},domProps:{\"value\":_vm.value}}):_vm._e(),_vm._v(\" \"),_c('button',{staticClass:\"project-feature-toggle\",class:{\n 'is-checked': _vm.value,\n 'is-disabled': _vm.disabledInput,\n 'is-loading': _vm.isLoading\n },attrs:{\"type\":\"button\",\"aria-label\":_vm.ariaLabel},on:{\"click\":_vm.toggleFeature}},[_c('loadingIcon',{staticClass:\"loading-icon\"}),_vm._v(\" \"),_c('span',{staticClass:\"toggle-icon\"},[_c('icon',{attrs:{\"css-classes\":\"toggle-icon-svg\",\"name\":_vm.toggleIcon}})],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n \n \n \n \n \n \n \n \n \n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./toggle_button.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./toggle_button.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./toggle_button.vue?vue&type=template&id=26c91d7c\"\nimport script from \"./toggle_button.vue?vue&type=script&lang=js\"\nexport * from \"./toggle_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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"sidebar-collapsed-icon sidebar-collapsed-user\",class:{ 'multiple-users': _vm.hasMoreThanOneAssignee },attrs:{\"data-container\":\"body\",\"data-placement\":\"left\",\"data-boundary\":\"viewport\",\"title\":_vm.collapsedTooltipTitle}},[(_vm.hasNoUsers)?_c('i',{staticClass:\"fa fa-user\",attrs:{\"aria-label\":\"No Assignee\"}}):_vm._e(),_vm._v(\" \"),_vm._l((_vm.users),function(user,index){return (_vm.shouldRenderCollapsedAssignee(index))?_c('button',{key:user.id,staticClass:\"btn-link\",attrs:{\"type\":\"button\"}},[_c('img',{staticClass:\"avatar avatar-inline s24\",attrs:{\"width\":\"24\",\"alt\":_vm.assigneeAlt(user),\"src\":_vm.avatarUrl(user)}}),_vm._v(\" \"),_c('span',{staticClass:\"author\"},[_vm._v(\"\\n \"+_vm._s(user.name)+\"\\n \")])]):_vm._e()}),_vm._v(\" \"),(_vm.hasMoreThanTwoAssignees)?_c('button',{staticClass:\"btn-link\",attrs:{\"type\":\"button\"}},[_c('span',{staticClass:\"avatar-counter sidebar-avatar-counter\"},[_vm._v(\"\\n \"+_vm._s(_vm.sidebarAvatarCounter)+\"\\n \")])]):_vm._e()],2),_vm._v(\" \"),_c('div',{staticClass:\"value hide-collapsed\"},[(_vm.hasNoUsers)?[_c('span',{staticClass:\"assign-yourself no-value\"},[_vm._v(\"\\n No assignee\\n \"),(_vm.editable)?[_vm._v(\"\\n -\\n \"),_c('button',{staticClass:\"btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.assignSelf}},[_vm._v(\"\\n assign yourself\\n \")])]:_vm._e()],2)]:(_vm.hasOneUser)?[_c('a',{staticClass:\"author_link bold\",attrs:{\"href\":_vm.assigneeUrl(_vm.firstUser)}},[_c('img',{staticClass:\"avatar avatar-inline s32\",attrs:{\"width\":\"32\",\"alt\":_vm.assigneeAlt(_vm.firstUser),\"src\":_vm.avatarUrl(_vm.firstUser)}}),_vm._v(\" \"),_c('span',{staticClass:\"author\"},[_vm._v(\"\\n \"+_vm._s(_vm.firstUser.name)+\"\\n \")]),_vm._v(\" \"),_c('span',{staticClass:\"username\"},[_vm._v(\"\\n \"+_vm._s(_vm.assigneeUsername(_vm.firstUser))+\"\\n \")])])]:[_c('div',{staticClass:\"user-list\"},_vm._l((_vm.users),function(user,index){return (_vm.renderAssignee(index))?_c('div',{key:user.id,staticClass:\"user-item\"},[_c('a',{staticClass:\"user-link has-tooltip\",attrs:{\"data-container\":\"body\",\"data-placement\":\"bottom\",\"href\":_vm.assigneeUrl(user),\"data-title\":user.name}},[_c('img',{staticClass:\"avatar avatar-inline s32\",attrs:{\"width\":\"32\",\"alt\":_vm.assigneeAlt(user),\"src\":_vm.avatarUrl(user)}})])]):_vm._e()})),_vm._v(\" \"),(_vm.renderShowMoreSection)?_c('div',{staticClass:\"user-list-more\"},[_c('button',{staticClass:\"btn-link\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.toggleShowLess}},[(_vm.showLess)?[_vm._v(\"\\n \"+_vm._s(_vm.hiddenAssigneesLabel)+\"\\n \")]:[_vm._v(\"\\n - show less\\n \")]],2)]):_vm._e()]],2)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./assignees.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./assignees.vue?vue&type=script&lang=js\"","\n\n\n \n \n \n \n \n \n \n {{ user.name }}\n \n \n \n \n {{ sidebarAvatarCounter }}\n \n \n \n \n \n \n No assignee\n \n -\n \n assign yourself\n \n \n \n \n \n \n \n \n {{ firstUser.name }}\n \n \n {{ assigneeUsername(firstUser) }}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {{ hiddenAssigneesLabel }}\n \n \n - show less\n \n \n \n \n \n \n\n\n","import { render, staticRenderFns } from \"./assignees.vue?vue&type=template&id=4166b3c0\"\nimport script from \"./assignees.vue?vue&type=script&lang=js\"\nexport * from \"./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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"title hide-collapsed\"},[_vm._v(\"\\n \"+_vm._s(_vm.assigneeTitle)+\"\\n \"),(_vm.loading)?_c('i',{staticClass:\"fa fa-spinner fa-spin block-loading\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \"),(_vm.editable)?_c('a',{staticClass:\"js-sidebar-dropdown-toggle edit-link float-right\",attrs:{\"href\":\"#\"}},[_vm._v(\"\\n \"+_vm._s(_vm.__('Edit'))+\"\\n \")]):_vm._e(),_vm._v(\" \"),(_vm.showToggle)?_c('a',{staticClass:\"gutter-toggle float-right js-sidebar-toggle\",attrs:{\"aria-label\":\"Toggle sidebar\",\"href\":\"#\",\"role\":\"button\"}},[_c('i',{staticClass:\"fa fa-angle-double-right\",attrs:{\"aria-hidden\":\"true\",\"data-hidden\":\"true\"}})]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./assignee_title.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./assignee_title.vue?vue&type=script&lang=js\"","\n\n \n {{ assigneeTitle }}\n \n\n \n \n {{ __('Edit') }}\n \n \n \n \n \n \n\n","import { render, staticRenderFns } from \"./assignee_title.vue?vue&type=template&id=d52d3b32\"\nimport script from \"./assignee_title.vue?vue&type=script&lang=js\"\nexport * from \"./assignee_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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"sidebar-collapsed-icon\",on:{\"click\":_vm.onClickCollapsedIcon}},[_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],attrs:{\"title\":_vm.notificationTooltip,\"data-container\":\"body\",\"data-placement\":\"left\",\"data-boundary\":\"viewport\"}},[_c('icon',{staticClass:\"sidebar-item-icon is-active\",attrs:{\"name\":_vm.notificationIcon,\"size\":16,\"aria-hidden\":\"true\"}})],1)]),_vm._v(\" \"),_c('span',{staticClass:\"issuable-header-text hide-collapsed float-left\"},[_vm._v(\"\\n \"+_vm._s(_vm.__('Notifications'))+\"\\n \")]),_vm._v(\" \"),_c('toggle-button',{ref:\"toggleButton\",staticClass:\"float-right hide-collapsed js-issuable-subscribe-button\",attrs:{\"is-loading\":_vm.showLoadingState,\"value\":_vm.subscribed},on:{\"change\":_vm.toggleSubscription}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n \n \n \n \n \n \n \n {{ __('Notifications') }}\n \n \n \n\n","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./subscriptions.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./subscriptions.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./subscriptions.vue?vue&type=template&id=93be2cda\"\nimport script from \"./subscriptions.vue?vue&type=script&lang=js\"\nexport * from \"./subscriptions.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import $ from 'jquery';\nimport Cookies from 'js-cookie';\nimport bp from './breakpoints';\nimport UsersSelect from './users_select';\n\nexport default class IssuableContext {\n constructor(currentUser) {\n this.userSelect = new UsersSelect(currentUser);\n\n $('select.select2').select2({\n width: 'resolve',\n dropdownAutoWidth: true,\n });\n\n $('.issuable-sidebar .inline-update').on('change', 'select', function onClickSelect() {\n return $(this).submit();\n });\n $('.issuable-sidebar .inline-update').on('change', '.js-assignee', function onClickAssignee() {\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 if (bpBreakpoint === 'xs' || bpBreakpoint === 'sm') {\n Cookies.set('collapsed_gutter', true);\n }\n });\n }\n}\n","import $ from 'jquery';\n\nexport default {\n bind(el) {\n $(el).tooltip({\n trigger: 'hover',\n });\n },\n\n componentUpdated(el) {\n $(el).tooltip('_fixTitle');\n },\n\n unbind(el) {\n $(el).tooltip('dispose');\n },\n};\n","/**!\n * Sortable\n * @author\tRubaXa \n * @license MIT\n */\n\n(function sortableModule(factory) {\n\t\"use strict\";\n\n\tif (typeof define === \"function\" && define.amd) {\n\t\tdefine(factory);\n\t}\n\telse if (typeof module != \"undefined\" && typeof module.exports != \"undefined\") {\n\t\tmodule.exports = factory();\n\t}\n\telse {\n\t\t/* jshint sub:true */\n\t\twindow[\"Sortable\"] = factory();\n\t}\n})(function sortableFactory() {\n\t\"use strict\";\n\n\tif (typeof window === \"undefined\" || !window.document) {\n\t\treturn function sortableError() {\n\t\t\tthrow new Error(\"Sortable.js requires a window with a document\");\n\t\t};\n\t}\n\n\tvar dragEl,\n\t\tparentEl,\n\t\tghostEl,\n\t\tcloneEl,\n\t\trootEl,\n\t\tnextEl,\n\t\tlastDownEl,\n\n\t\tscrollEl,\n\t\tscrollParentEl,\n\t\tscrollCustomFn,\n\n\t\tlastEl,\n\t\tlastCSS,\n\t\tlastParentCSS,\n\n\t\toldIndex,\n\t\tnewIndex,\n\n\t\tactiveGroup,\n\t\tputSortable,\n\n\t\tautoScroll = {},\n\n\t\ttapEvt,\n\t\ttouchEvt,\n\n\t\tmoved,\n\n\t\t/** @const */\n\t\tR_SPACE = /\\s+/g,\n\t\tR_FLOAT = /left|right|inline/,\n\n\t\texpando = 'Sortable' + (new Date).getTime(),\n\n\t\twin = window,\n\t\tdocument = win.document,\n\t\tparseInt = win.parseInt,\n\t\tsetTimeout = win.setTimeout,\n\n\t\t$ = win.jQuery || win.Zepto,\n\t\tPolymer = win.Polymer,\n\n\t\tcaptureMode = false,\n\t\tpassiveMode = false,\n\n\t\tsupportDraggable = ('draggable' in document.createElement('div')),\n\t\tsupportCssPointerEvents = (function (el) {\n\t\t\t// false when IE11\n\t\t\tif (!!navigator.userAgent.match(/(?:Trident.*rv[ :]?11\\.|msie)/i)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tel = document.createElement('x');\n\t\t\tel.style.cssText = 'pointer-events:auto';\n\t\t\treturn el.style.pointerEvents === 'auto';\n\t\t})(),\n\n\t\t_silent = false,\n\n\t\tabs = Math.abs,\n\t\tmin = Math.min,\n\n\t\tsavedInputChecked = [],\n\t\ttouchDragOverListeners = [],\n\n\t\t_autoScroll = _throttle(function (/**Event*/evt, /**Object*/options, /**HTMLElement*/rootEl) {\n\t\t\t// Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n\t\t\tif (rootEl && options.scroll) {\n\t\t\t\tvar _this = rootEl[expando],\n\t\t\t\t\tel,\n\t\t\t\t\trect,\n\t\t\t\t\tsens = options.scrollSensitivity,\n\t\t\t\t\tspeed = options.scrollSpeed,\n\n\t\t\t\t\tx = evt.clientX,\n\t\t\t\t\ty = evt.clientY,\n\n\t\t\t\t\twinWidth = window.innerWidth,\n\t\t\t\t\twinHeight = window.innerHeight,\n\n\t\t\t\t\tvx,\n\t\t\t\t\tvy,\n\n\t\t\t\t\tscrollOffsetX,\n\t\t\t\t\tscrollOffsetY\n\t\t\t\t;\n\n\t\t\t\t// Delect scrollEl\n\t\t\t\tif (scrollParentEl !== rootEl) {\n\t\t\t\t\tscrollEl = options.scroll;\n\t\t\t\t\tscrollParentEl = rootEl;\n\t\t\t\t\tscrollCustomFn = options.scrollFn;\n\n\t\t\t\t\tif (scrollEl === true) {\n\t\t\t\t\t\tscrollEl = rootEl;\n\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tif ((scrollEl.offsetWidth < scrollEl.scrollWidth) ||\n\t\t\t\t\t\t\t\t(scrollEl.offsetHeight < scrollEl.scrollHeight)\n\t\t\t\t\t\t\t) {\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* jshint boss:true */\n\t\t\t\t\t\t} while (scrollEl = scrollEl.parentNode);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (scrollEl) {\n\t\t\t\t\tel = scrollEl;\n\t\t\t\t\trect = scrollEl.getBoundingClientRect();\n\t\t\t\t\tvx = (abs(rect.right - x) <= sens) - (abs(rect.left - x) <= sens);\n\t\t\t\t\tvy = (abs(rect.bottom - y) <= sens) - (abs(rect.top - y) <= sens);\n\t\t\t\t}\n\n\n\t\t\t\tif (!(vx || vy)) {\n\t\t\t\t\tvx = (winWidth - x <= sens) - (x <= sens);\n\t\t\t\t\tvy = (winHeight - y <= sens) - (y <= sens);\n\n\t\t\t\t\t/* jshint expr:true */\n\t\t\t\t\t(vx || vy) && (el = win);\n\t\t\t\t}\n\n\n\t\t\t\tif (autoScroll.vx !== vx || autoScroll.vy !== vy || autoScroll.el !== el) {\n\t\t\t\t\tautoScroll.el = el;\n\t\t\t\t\tautoScroll.vx = vx;\n\t\t\t\t\tautoScroll.vy = vy;\n\n\t\t\t\t\tclearInterval(autoScroll.pid);\n\n\t\t\t\t\tif (el) {\n\t\t\t\t\t\tautoScroll.pid = setInterval(function () {\n\t\t\t\t\t\t\tscrollOffsetY = vy ? vy * speed : 0;\n\t\t\t\t\t\t\tscrollOffsetX = vx ? vx * speed : 0;\n\n\t\t\t\t\t\t\tif ('function' === typeof(scrollCustomFn)) {\n\t\t\t\t\t\t\t\treturn scrollCustomFn.call(_this, scrollOffsetX, scrollOffsetY, evt);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (el === win) {\n\t\t\t\t\t\t\t\twin.scrollTo(win.pageXOffset + scrollOffsetX, win.pageYOffset + scrollOffsetY);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tel.scrollTop += scrollOffsetY;\n\t\t\t\t\t\t\t\tel.scrollLeft += scrollOffsetX;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 24);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}, 30),\n\n\t\t_prepareGroup = function (options) {\n\t\t\tfunction toFn(value, pull) {\n\t\t\t\tif (value === void 0 || value === true) {\n\t\t\t\t\tvalue = group.name;\n\t\t\t\t}\n\n\t\t\t\tif (typeof value === 'function') {\n\t\t\t\t\treturn value;\n\t\t\t\t} else {\n\t\t\t\t\treturn function (to, from) {\n\t\t\t\t\t\tvar fromGroup = from.options.group.name;\n\n\t\t\t\t\t\treturn pull\n\t\t\t\t\t\t\t? value\n\t\t\t\t\t\t\t: value && (value.join\n\t\t\t\t\t\t\t\t? value.indexOf(fromGroup) > -1\n\t\t\t\t\t\t\t\t: (fromGroup == value)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tvar group = {};\n\t\t\tvar originalGroup = options.group;\n\n\t\t\tif (!originalGroup || typeof originalGroup != 'object') {\n\t\t\t\toriginalGroup = {name: originalGroup};\n\t\t\t}\n\n\t\t\tgroup.name = originalGroup.name;\n\t\t\tgroup.checkPull = toFn(originalGroup.pull, true);\n\t\t\tgroup.checkPut = toFn(originalGroup.put);\n\t\t\tgroup.revertClone = originalGroup.revertClone;\n\n\t\t\toptions.group = group;\n\t\t}\n\t;\n\n\t// Detect support a passive mode\n\ttry {\n\t\twindow.addEventListener('test', null, Object.defineProperty({}, 'passive', {\n\t\t\tget: function () {\n\t\t\t\t// `false`, because everything starts to work incorrectly and instead of d'n'd,\n\t\t\t\t// begins the page has scrolled.\n\t\t\t\tpassiveMode = false;\n\t\t\t\tcaptureMode = {\n\t\t\t\t\tcapture: false,\n\t\t\t\t\tpassive: passiveMode\n\t\t\t\t};\n\t\t\t}\n\t\t}));\n\t} catch (err) {}\n\n\t/**\n\t * @class Sortable\n\t * @param {HTMLElement} el\n\t * @param {Object} [options]\n\t */\n\tfunction Sortable(el, options) {\n\t\tif (!(el && el.nodeType && el.nodeType === 1)) {\n\t\t\tthrow 'Sortable: `el` must be HTMLElement, and not ' + {}.toString.call(el);\n\t\t}\n\n\t\tthis.el = el; // root element\n\t\tthis.options = options = _extend({}, options);\n\n\n\t\t// Export instance\n\t\tel[expando] = this;\n\n\t\t// Default options\n\t\tvar defaults = {\n\t\t\tgroup: Math.random(),\n\t\t\tsort: true,\n\t\t\tdisabled: false,\n\t\t\tstore: null,\n\t\t\thandle: null,\n\t\t\tscroll: true,\n\t\t\tscrollSensitivity: 30,\n\t\t\tscrollSpeed: 10,\n\t\t\tdraggable: /[uo]l/i.test(el.nodeName) ? 'li' : '>*',\n\t\t\tghostClass: 'sortable-ghost',\n\t\t\tchosenClass: 'sortable-chosen',\n\t\t\tdragClass: 'sortable-drag',\n\t\t\tignore: 'a, img',\n\t\t\tfilter: null,\n\t\t\tpreventOnFilter: true,\n\t\t\tanimation: 0,\n\t\t\tsetData: function (dataTransfer, dragEl) {\n\t\t\t\tdataTransfer.setData('Text', dragEl.textContent);\n\t\t\t},\n\t\t\tdropBubble: false,\n\t\t\tdragoverBubble: false,\n\t\t\tdataIdAttr: 'data-id',\n\t\t\tdelay: 0,\n\t\t\tforceFallback: false,\n\t\t\tfallbackClass: 'sortable-fallback',\n\t\t\tfallbackOnBody: false,\n\t\t\tfallbackTolerance: 0,\n\t\t\tfallbackOffset: {x: 0, y: 0},\n\t\t\tsupportPointer: Sortable.supportPointer !== false\n\t\t};\n\n\n\t\t// Set default options\n\t\tfor (var name in defaults) {\n\t\t\t!(name in options) && (options[name] = defaults[name]);\n\t\t}\n\n\t\t_prepareGroup(options);\n\n\t\t// Bind all private methods\n\t\tfor (var fn in this) {\n\t\t\tif (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n\t\t\t\tthis[fn] = this[fn].bind(this);\n\t\t\t}\n\t\t}\n\n\t\t// Setup drag mode\n\t\tthis.nativeDraggable = options.forceFallback ? false : supportDraggable;\n\n\t\t// Bind events\n\t\t_on(el, 'mousedown', this._onTapStart);\n\t\t_on(el, 'touchstart', this._onTapStart);\n\t\toptions.supportPointer && _on(el, 'pointerdown', this._onTapStart);\n\n\t\tif (this.nativeDraggable) {\n\t\t\t_on(el, 'dragover', this);\n\t\t\t_on(el, 'dragenter', this);\n\t\t}\n\n\t\ttouchDragOverListeners.push(this._onDragOver);\n\n\t\t// Restore sorting\n\t\toptions.store && this.sort(options.store.get(this));\n\t}\n\n\n\tSortable.prototype = /** @lends Sortable.prototype */ {\n\t\tconstructor: Sortable,\n\n\t\t_onTapStart: function (/** Event|TouchEvent */evt) {\n\t\t\tvar _this = this,\n\t\t\t\tel = this.el,\n\t\t\t\toptions = this.options,\n\t\t\t\tpreventOnFilter = options.preventOnFilter,\n\t\t\t\ttype = evt.type,\n\t\t\t\ttouch = evt.touches && evt.touches[0],\n\t\t\t\ttarget = (touch || evt).target,\n\t\t\t\toriginalTarget = evt.target.shadowRoot && (evt.path && evt.path[0]) || target,\n\t\t\t\tfilter = options.filter,\n\t\t\t\tstartIndex;\n\n\t\t\t_saveInputCheckedState(el);\n\n\n\t\t\t// Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n\t\t\tif (dragEl) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n\t\t\t\treturn; // only left button or enabled\n\t\t\t}\n\n\t\t\t// cancel dnd if original target is content editable\n\t\t\tif (originalTarget.isContentEditable) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\ttarget = _closest(target, options.draggable, el);\n\n\t\t\tif (!target) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (lastDownEl === target) {\n\t\t\t\t// Ignoring duplicate `down`\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Get the index of the dragged element within its parent\n\t\t\tstartIndex = _index(target, options.draggable);\n\n\t\t\t// Check filter\n\t\t\tif (typeof filter === 'function') {\n\t\t\t\tif (filter.call(this, evt, target, this)) {\n\t\t\t\t\t_dispatchEvent(_this, originalTarget, 'filter', target, el, el, startIndex);\n\t\t\t\t\tpreventOnFilter && evt.preventDefault();\n\t\t\t\t\treturn; // cancel dnd\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (filter) {\n\t\t\t\tfilter = filter.split(',').some(function (criteria) {\n\t\t\t\t\tcriteria = _closest(originalTarget, criteria.trim(), el);\n\n\t\t\t\t\tif (criteria) {\n\t\t\t\t\t\t_dispatchEvent(_this, criteria, 'filter', target, el, el, startIndex);\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (filter) {\n\t\t\t\t\tpreventOnFilter && evt.preventDefault();\n\t\t\t\t\treturn; // cancel dnd\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (options.handle && !_closest(originalTarget, options.handle, el)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Prepare `dragstart`\n\t\t\tthis._prepareDragStart(evt, touch, target, startIndex);\n\t\t},\n\n\t\t_prepareDragStart: function (/** Event */evt, /** Touch */touch, /** HTMLElement */target, /** Number */startIndex) {\n\t\t\tvar _this = this,\n\t\t\t\tel = _this.el,\n\t\t\t\toptions = _this.options,\n\t\t\t\townerDocument = el.ownerDocument,\n\t\t\t\tdragStartFn;\n\n\t\t\tif (target && !dragEl && (target.parentNode === el)) {\n\t\t\t\ttapEvt = evt;\n\n\t\t\t\trootEl = el;\n\t\t\t\tdragEl = target;\n\t\t\t\tparentEl = dragEl.parentNode;\n\t\t\t\tnextEl = dragEl.nextSibling;\n\t\t\t\tlastDownEl = target;\n\t\t\t\tactiveGroup = options.group;\n\t\t\t\toldIndex = startIndex;\n\n\t\t\t\tthis._lastX = (touch || evt).clientX;\n\t\t\t\tthis._lastY = (touch || evt).clientY;\n\n\t\t\t\tdragEl.style['will-change'] = 'all';\n\n\t\t\t\tdragStartFn = function () {\n\t\t\t\t\t// Delayed drag has been triggered\n\t\t\t\t\t// we can re-enable the events: touchmove/mousemove\n\t\t\t\t\t_this._disableDelayedDrag();\n\n\t\t\t\t\t// Make the element draggable\n\t\t\t\t\tdragEl.draggable = _this.nativeDraggable;\n\n\t\t\t\t\t// Chosen item\n\t\t\t\t\t_toggleClass(dragEl, options.chosenClass, true);\n\n\t\t\t\t\t// Bind the events: dragstart/dragend\n\t\t\t\t\t_this._triggerDragStart(evt, touch);\n\n\t\t\t\t\t// Drag start event\n\t\t\t\t\t_dispatchEvent(_this, rootEl, 'choose', dragEl, rootEl, rootEl, oldIndex);\n\t\t\t\t};\n\n\t\t\t\t// Disable \"draggable\"\n\t\t\t\toptions.ignore.split(',').forEach(function (criteria) {\n\t\t\t\t\t_find(dragEl, criteria.trim(), _disableDraggable);\n\t\t\t\t});\n\n\t\t\t\t_on(ownerDocument, 'mouseup', _this._onDrop);\n\t\t\t\t_on(ownerDocument, 'touchend', _this._onDrop);\n\t\t\t\t_on(ownerDocument, 'touchcancel', _this._onDrop);\n\t\t\t\t_on(ownerDocument, 'selectstart', _this);\n\t\t\t\toptions.supportPointer && _on(ownerDocument, 'pointercancel', _this._onDrop);\n\n\t\t\t\tif (options.delay) {\n\t\t\t\t\t// If the user moves the pointer or let go the click or touch\n\t\t\t\t\t// before the delay has been reached:\n\t\t\t\t\t// disable the delayed drag\n\t\t\t\t\t_on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n\t\t\t\t\t_on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n\t\t\t\t\t_on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n\t\t\t\t\t_on(ownerDocument, 'mousemove', _this._disableDelayedDrag);\n\t\t\t\t\t_on(ownerDocument, 'touchmove', _this._disableDelayedDrag);\n\t\t\t\t\toptions.supportPointer && _on(ownerDocument, 'pointermove', _this._disableDelayedDrag);\n\n\t\t\t\t\t_this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n\t\t\t\t} else {\n\t\t\t\t\tdragStartFn();\n\t\t\t\t}\n\n\n\t\t\t}\n\t\t},\n\n\t\t_disableDelayedDrag: function () {\n\t\t\tvar ownerDocument = this.el.ownerDocument;\n\n\t\t\tclearTimeout(this._dragStartTimer);\n\t\t\t_off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n\t\t\t_off(ownerDocument, 'touchend', this._disableDelayedDrag);\n\t\t\t_off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n\t\t\t_off(ownerDocument, 'mousemove', this._disableDelayedDrag);\n\t\t\t_off(ownerDocument, 'touchmove', this._disableDelayedDrag);\n\t\t\t_off(ownerDocument, 'pointermove', this._disableDelayedDrag);\n\t\t},\n\n\t\t_triggerDragStart: function (/** Event */evt, /** Touch */touch) {\n\t\t\ttouch = touch || (evt.pointerType == 'touch' ? evt : null);\n\n\t\t\tif (touch) {\n\t\t\t\t// Touch device support\n\t\t\t\ttapEvt = {\n\t\t\t\t\ttarget: dragEl,\n\t\t\t\t\tclientX: touch.clientX,\n\t\t\t\t\tclientY: touch.clientY\n\t\t\t\t};\n\n\t\t\t\tthis._onDragStart(tapEvt, 'touch');\n\t\t\t}\n\t\t\telse if (!this.nativeDraggable) {\n\t\t\t\tthis._onDragStart(tapEvt, true);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t_on(dragEl, 'dragend', this);\n\t\t\t\t_on(rootEl, 'dragstart', this._onDragStart);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tif (document.selection) {\n\t\t\t\t\t// Timeout neccessary for IE9\n\t\t\t\t\t_nextTick(function () {\n\t\t\t\t\t\tdocument.selection.empty();\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twindow.getSelection().removeAllRanges();\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t}\n\t\t},\n\n\t\t_dragStarted: function () {\n\t\t\tif (rootEl && dragEl) {\n\t\t\t\tvar options = this.options;\n\n\t\t\t\t// Apply effect\n\t\t\t\t_toggleClass(dragEl, options.ghostClass, true);\n\t\t\t\t_toggleClass(dragEl, options.dragClass, false);\n\n\t\t\t\tSortable.active = this;\n\n\t\t\t\t// Drag start event\n\t\t\t\t_dispatchEvent(this, rootEl, 'start', dragEl, rootEl, rootEl, oldIndex);\n\t\t\t} else {\n\t\t\t\tthis._nulling();\n\t\t\t}\n\t\t},\n\n\t\t_emulateDragOver: function () {\n\t\t\tif (touchEvt) {\n\t\t\t\tif (this._lastX === touchEvt.clientX && this._lastY === touchEvt.clientY) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis._lastX = touchEvt.clientX;\n\t\t\t\tthis._lastY = touchEvt.clientY;\n\n\t\t\t\tif (!supportCssPointerEvents) {\n\t\t\t\t\t_css(ghostEl, 'display', 'none');\n\t\t\t\t}\n\n\t\t\t\tvar target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n\t\t\t\tvar parent = target;\n\t\t\t\tvar i = touchDragOverListeners.length;\n\n\t\t\t\tif (target && target.shadowRoot) {\n\t\t\t\t\ttarget = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n\t\t\t\t\tparent = target;\n\t\t\t\t}\n\n\t\t\t\tif (parent) {\n\t\t\t\t\tdo {\n\t\t\t\t\t\tif (parent[expando]) {\n\t\t\t\t\t\t\twhile (i--) {\n\t\t\t\t\t\t\t\ttouchDragOverListeners[i]({\n\t\t\t\t\t\t\t\t\tclientX: touchEvt.clientX,\n\t\t\t\t\t\t\t\t\tclientY: touchEvt.clientY,\n\t\t\t\t\t\t\t\t\ttarget: target,\n\t\t\t\t\t\t\t\t\trootEl: parent\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttarget = parent; // store last element\n\t\t\t\t\t}\n\t\t\t\t\t/* jshint boss:true */\n\t\t\t\t\twhile (parent = parent.parentNode);\n\t\t\t\t}\n\n\t\t\t\tif (!supportCssPointerEvents) {\n\t\t\t\t\t_css(ghostEl, 'display', '');\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\n\t\t_onTouchMove: function (/**TouchEvent*/evt) {\n\t\t\tif (tapEvt) {\n\t\t\t\tvar\toptions = this.options,\n\t\t\t\t\tfallbackTolerance = options.fallbackTolerance,\n\t\t\t\t\tfallbackOffset = options.fallbackOffset,\n\t\t\t\t\ttouch = evt.touches ? evt.touches[0] : evt,\n\t\t\t\t\tdx = (touch.clientX - tapEvt.clientX) + fallbackOffset.x,\n\t\t\t\t\tdy = (touch.clientY - tapEvt.clientY) + fallbackOffset.y,\n\t\t\t\t\ttranslate3d = evt.touches ? 'translate3d(' + dx + 'px,' + dy + 'px,0)' : 'translate(' + dx + 'px,' + dy + 'px)';\n\n\t\t\t\t// only set the status to dragging, when we are actually dragging\n\t\t\t\tif (!Sortable.active) {\n\t\t\t\t\tif (fallbackTolerance &&\n\t\t\t\t\t\tmin(abs(touch.clientX - this._lastX), abs(touch.clientY - this._lastY)) < fallbackTolerance\n\t\t\t\t\t) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis._dragStarted();\n\t\t\t\t}\n\n\t\t\t\t// as well as creating the ghost element on the document body\n\t\t\t\tthis._appendGhost();\n\n\t\t\t\tmoved = true;\n\t\t\t\ttouchEvt = touch;\n\n\t\t\t\t_css(ghostEl, 'webkitTransform', translate3d);\n\t\t\t\t_css(ghostEl, 'mozTransform', translate3d);\n\t\t\t\t_css(ghostEl, 'msTransform', translate3d);\n\t\t\t\t_css(ghostEl, 'transform', translate3d);\n\n\t\t\t\tevt.preventDefault();\n\t\t\t}\n\t\t},\n\n\t\t_appendGhost: function () {\n\t\t\tif (!ghostEl) {\n\t\t\t\tvar rect = dragEl.getBoundingClientRect(),\n\t\t\t\t\tcss = _css(dragEl),\n\t\t\t\t\toptions = this.options,\n\t\t\t\t\tghostRect;\n\n\t\t\t\tghostEl = dragEl.cloneNode(true);\n\n\t\t\t\t_toggleClass(ghostEl, options.ghostClass, false);\n\t\t\t\t_toggleClass(ghostEl, options.fallbackClass, true);\n\t\t\t\t_toggleClass(ghostEl, options.dragClass, true);\n\n\t\t\t\t_css(ghostEl, 'top', rect.top - parseInt(css.marginTop, 10));\n\t\t\t\t_css(ghostEl, 'left', rect.left - parseInt(css.marginLeft, 10));\n\t\t\t\t_css(ghostEl, 'width', rect.width);\n\t\t\t\t_css(ghostEl, 'height', rect.height);\n\t\t\t\t_css(ghostEl, 'opacity', '0.8');\n\t\t\t\t_css(ghostEl, 'position', 'fixed');\n\t\t\t\t_css(ghostEl, 'zIndex', '100000');\n\t\t\t\t_css(ghostEl, 'pointerEvents', 'none');\n\n\t\t\t\toptions.fallbackOnBody && document.body.appendChild(ghostEl) || rootEl.appendChild(ghostEl);\n\n\t\t\t\t// Fixing dimensions.\n\t\t\t\tghostRect = ghostEl.getBoundingClientRect();\n\t\t\t\t_css(ghostEl, 'width', rect.width * 2 - ghostRect.width);\n\t\t\t\t_css(ghostEl, 'height', rect.height * 2 - ghostRect.height);\n\t\t\t}\n\t\t},\n\n\t\t_onDragStart: function (/**Event*/evt, /**boolean*/useFallback) {\n\t\t\tvar _this = this;\n\t\t\tvar dataTransfer = evt.dataTransfer;\n\t\t\tvar options = _this.options;\n\n\t\t\t_this._offUpEvents();\n\n\t\t\tif (activeGroup.checkPull(_this, _this, dragEl, evt)) {\n\t\t\t\tcloneEl = _clone(dragEl);\n\n\t\t\t\tcloneEl.draggable = false;\n\t\t\t\tcloneEl.style['will-change'] = '';\n\n\t\t\t\t_css(cloneEl, 'display', 'none');\n\t\t\t\t_toggleClass(cloneEl, _this.options.chosenClass, false);\n\n\t\t\t\t// #1143: IFrame support workaround\n\t\t\t\t_this._cloneId = _nextTick(function () {\n\t\t\t\t\trootEl.insertBefore(cloneEl, dragEl);\n\t\t\t\t\t_dispatchEvent(_this, rootEl, 'clone', dragEl);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\t_toggleClass(dragEl, options.dragClass, true);\n\n\t\t\tif (useFallback) {\n\t\t\t\tif (useFallback === 'touch') {\n\t\t\t\t\t// Bind touch events\n\t\t\t\t\t_on(document, 'touchmove', _this._onTouchMove);\n\t\t\t\t\t_on(document, 'touchend', _this._onDrop);\n\t\t\t\t\t_on(document, 'touchcancel', _this._onDrop);\n\n\t\t\t\t\tif (options.supportPointer) {\n\t\t\t\t\t\t_on(document, 'pointermove', _this._onTouchMove);\n\t\t\t\t\t\t_on(document, 'pointerup', _this._onDrop);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Old brwoser\n\t\t\t\t\t_on(document, 'mousemove', _this._onTouchMove);\n\t\t\t\t\t_on(document, 'mouseup', _this._onDrop);\n\t\t\t\t}\n\n\t\t\t\t_this._loopId = setInterval(_this._emulateDragOver, 50);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (dataTransfer) {\n\t\t\t\t\tdataTransfer.effectAllowed = 'move';\n\t\t\t\t\toptions.setData && options.setData.call(_this, dataTransfer, dragEl);\n\t\t\t\t}\n\n\t\t\t\t_on(document, 'drop', _this);\n\n\t\t\t\t// #1143: Бывает элемент с IFrame внутри блокирует `drop`,\n\t\t\t\t// поэтому если вызвался `mouseover`, значит надо отменять весь d'n'd.\n\t\t\t\t// Breaking Chrome 62+\n\t\t\t\t// _on(document, 'mouseover', _this);\n\n\t\t\t\t_this._dragStartId = _nextTick(_this._dragStarted);\n\t\t\t}\n\t\t},\n\n\t\t_onDragOver: function (/**Event*/evt) {\n\t\t\tvar el = this.el,\n\t\t\t\ttarget,\n\t\t\t\tdragRect,\n\t\t\t\ttargetRect,\n\t\t\t\trevert,\n\t\t\t\toptions = this.options,\n\t\t\t\tgroup = options.group,\n\t\t\t\tactiveSortable = Sortable.active,\n\t\t\t\tisOwner = (activeGroup === group),\n\t\t\t\tisMovingBetweenSortable = false,\n\t\t\t\tcanSort = options.sort;\n\n\t\t\tif (evt.preventDefault !== void 0) {\n\t\t\t\tevt.preventDefault();\n\t\t\t\t!options.dragoverBubble && evt.stopPropagation();\n\t\t\t}\n\n\t\t\tif (dragEl.animated) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tmoved = true;\n\n\t\t\tif (activeSortable && !options.disabled &&\n\t\t\t\t(isOwner\n\t\t\t\t\t? canSort || (revert = !rootEl.contains(dragEl)) // Reverting item into the original list\n\t\t\t\t\t: (\n\t\t\t\t\t\tputSortable === this ||\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(activeSortable.lastPullMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) &&\n\t\t\t\t\t\t\tgroup.checkPut(this, activeSortable, dragEl, evt)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t) &&\n\t\t\t\t(evt.rootEl === void 0 || evt.rootEl === this.el) // touch fallback\n\t\t\t) {\n\t\t\t\t// Smart auto-scrolling\n\t\t\t\t_autoScroll(evt, options, this.el);\n\n\t\t\t\tif (_silent) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\ttarget = _closest(evt.target, options.draggable, el);\n\t\t\t\tdragRect = dragEl.getBoundingClientRect();\n\n\t\t\t\tif (putSortable !== this) {\n\t\t\t\t\tputSortable = this;\n\t\t\t\t\tisMovingBetweenSortable = true;\n\t\t\t\t}\n\n\t\t\t\tif (revert) {\n\t\t\t\t\t_cloneHide(activeSortable, true);\n\t\t\t\t\tparentEl = rootEl; // actualization\n\n\t\t\t\t\tif (cloneEl || nextEl) {\n\t\t\t\t\t\trootEl.insertBefore(dragEl, cloneEl || nextEl);\n\t\t\t\t\t}\n\t\t\t\t\telse if (!canSort) {\n\t\t\t\t\t\trootEl.appendChild(dragEl);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\n\t\t\t\tif ((el.children.length === 0) || (el.children[0] === ghostEl) ||\n\t\t\t\t\t(el === evt.target) && (_ghostIsLast(el, evt))\n\t\t\t\t) {\n\t\t\t\t\t//assign target only if condition is true\n\t\t\t\t\tif (el.children.length !== 0 && el.children[0] !== ghostEl && el === evt.target) {\n\t\t\t\t\t\ttarget = el.lastElementChild;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (target) {\n\t\t\t\t\t\tif (target.animated) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\ttargetRect = target.getBoundingClientRect();\n\t\t\t\t\t}\n\n\t\t\t\t\t_cloneHide(activeSortable, isOwner);\n\n\t\t\t\t\tif (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt) !== false) {\n\t\t\t\t\t\tif (!dragEl.contains(el)) {\n\t\t\t\t\t\t\tel.appendChild(dragEl);\n\t\t\t\t\t\t\tparentEl = el; // actualization\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis._animate(dragRect, dragEl);\n\t\t\t\t\t\ttarget && this._animate(targetRect, target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (target && !target.animated && target !== dragEl && (target.parentNode[expando] !== void 0)) {\n\t\t\t\t\tif (lastEl !== target) {\n\t\t\t\t\t\tlastEl = target;\n\t\t\t\t\t\tlastCSS = _css(target);\n\t\t\t\t\t\tlastParentCSS = _css(target.parentNode);\n\t\t\t\t\t}\n\n\t\t\t\t\ttargetRect = target.getBoundingClientRect();\n\n\t\t\t\t\tvar width = targetRect.right - targetRect.left,\n\t\t\t\t\t\theight = targetRect.bottom - targetRect.top,\n\t\t\t\t\t\tfloating = R_FLOAT.test(lastCSS.cssFloat + lastCSS.display)\n\t\t\t\t\t\t\t|| (lastParentCSS.display == 'flex' && lastParentCSS['flex-direction'].indexOf('row') === 0),\n\t\t\t\t\t\tisWide = (target.offsetWidth > dragEl.offsetWidth),\n\t\t\t\t\t\tisLong = (target.offsetHeight > dragEl.offsetHeight),\n\t\t\t\t\t\thalfway = (floating ? (evt.clientX - targetRect.left) / width : (evt.clientY - targetRect.top) / height) > 0.5,\n\t\t\t\t\t\tnextSibling = target.nextElementSibling,\n\t\t\t\t\t\tafter = false\n\t\t\t\t\t;\n\n\t\t\t\t\tif (floating) {\n\t\t\t\t\t\tvar elTop = dragEl.offsetTop,\n\t\t\t\t\t\t\ttgTop = target.offsetTop;\n\n\t\t\t\t\t\tif (elTop === tgTop) {\n\t\t\t\t\t\t\tafter = (target.previousElementSibling === dragEl) && !isWide || halfway && isWide;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (target.previousElementSibling === dragEl || dragEl.previousElementSibling === target) {\n\t\t\t\t\t\t\tafter = (evt.clientY - targetRect.top) / height > 0.5;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tafter = tgTop > elTop;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t} else if (!isMovingBetweenSortable) {\n\t\t\t\t\t\tafter = (nextSibling !== dragEl) && !isLong || halfway && isLong;\n\t\t\t\t\t}\n\n\t\t\t\t\tvar moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n\n\t\t\t\t\tif (moveVector !== false) {\n\t\t\t\t\t\tif (moveVector === 1 || moveVector === -1) {\n\t\t\t\t\t\t\tafter = (moveVector === 1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_silent = true;\n\t\t\t\t\t\tsetTimeout(_unsilent, 30);\n\n\t\t\t\t\t\t_cloneHide(activeSortable, isOwner);\n\n\t\t\t\t\t\tif (!dragEl.contains(el)) {\n\t\t\t\t\t\t\tif (after && !nextSibling) {\n\t\t\t\t\t\t\t\tel.appendChild(dragEl);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\ttarget.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tparentEl = dragEl.parentNode; // actualization\n\n\t\t\t\t\t\tthis._animate(dragRect, dragEl);\n\t\t\t\t\t\tthis._animate(targetRect, target);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t_animate: function (prevRect, target) {\n\t\t\tvar ms = this.options.animation;\n\n\t\t\tif (ms) {\n\t\t\t\tvar currentRect = target.getBoundingClientRect();\n\n\t\t\t\tif (prevRect.nodeType === 1) {\n\t\t\t\t\tprevRect = prevRect.getBoundingClientRect();\n\t\t\t\t}\n\n\t\t\t\t_css(target, 'transition', 'none');\n\t\t\t\t_css(target, 'transform', 'translate3d('\n\t\t\t\t\t+ (prevRect.left - currentRect.left) + 'px,'\n\t\t\t\t\t+ (prevRect.top - currentRect.top) + 'px,0)'\n\t\t\t\t);\n\n\t\t\t\ttarget.offsetWidth; // repaint\n\n\t\t\t\t_css(target, 'transition', 'all ' + ms + 'ms');\n\t\t\t\t_css(target, 'transform', 'translate3d(0,0,0)');\n\n\t\t\t\tclearTimeout(target.animated);\n\t\t\t\ttarget.animated = setTimeout(function () {\n\t\t\t\t\t_css(target, 'transition', '');\n\t\t\t\t\t_css(target, 'transform', '');\n\t\t\t\t\ttarget.animated = false;\n\t\t\t\t}, ms);\n\t\t\t}\n\t\t},\n\n\t\t_offUpEvents: function () {\n\t\t\tvar ownerDocument = this.el.ownerDocument;\n\n\t\t\t_off(document, 'touchmove', this._onTouchMove);\n\t\t\t_off(document, 'pointermove', this._onTouchMove);\n\t\t\t_off(ownerDocument, 'mouseup', this._onDrop);\n\t\t\t_off(ownerDocument, 'touchend', this._onDrop);\n\t\t\t_off(ownerDocument, 'pointerup', this._onDrop);\n\t\t\t_off(ownerDocument, 'touchcancel', this._onDrop);\n\t\t\t_off(ownerDocument, 'pointercancel', this._onDrop);\n\t\t\t_off(ownerDocument, 'selectstart', this);\n\t\t},\n\n\t\t_onDrop: function (/**Event*/evt) {\n\t\t\tvar el = this.el,\n\t\t\t\toptions = this.options;\n\n\t\t\tclearInterval(this._loopId);\n\t\t\tclearInterval(autoScroll.pid);\n\t\t\tclearTimeout(this._dragStartTimer);\n\n\t\t\t_cancelNextTick(this._cloneId);\n\t\t\t_cancelNextTick(this._dragStartId);\n\n\t\t\t// Unbind events\n\t\t\t_off(document, 'mouseover', this);\n\t\t\t_off(document, 'mousemove', this._onTouchMove);\n\n\t\t\tif (this.nativeDraggable) {\n\t\t\t\t_off(document, 'drop', this);\n\t\t\t\t_off(el, 'dragstart', this._onDragStart);\n\t\t\t}\n\n\t\t\tthis._offUpEvents();\n\n\t\t\tif (evt) {\n\t\t\t\tif (moved) {\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\t!options.dropBubble && evt.stopPropagation();\n\t\t\t\t}\n\n\t\t\t\tghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n\n\t\t\t\tif (rootEl === parentEl || Sortable.active.lastPullMode !== 'clone') {\n\t\t\t\t\t// Remove clone\n\t\t\t\t\tcloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n\t\t\t\t}\n\n\t\t\t\tif (dragEl) {\n\t\t\t\t\tif (this.nativeDraggable) {\n\t\t\t\t\t\t_off(dragEl, 'dragend', this);\n\t\t\t\t\t}\n\n\t\t\t\t\t_disableDraggable(dragEl);\n\t\t\t\t\tdragEl.style['will-change'] = '';\n\n\t\t\t\t\t// Remove class's\n\t\t\t\t\t_toggleClass(dragEl, this.options.ghostClass, false);\n\t\t\t\t\t_toggleClass(dragEl, this.options.chosenClass, false);\n\n\t\t\t\t\t// Drag stop event\n\t\t\t\t\t_dispatchEvent(this, rootEl, 'unchoose', dragEl, parentEl, rootEl, oldIndex);\n\n\t\t\t\t\tif (rootEl !== parentEl) {\n\t\t\t\t\t\tnewIndex = _index(dragEl, options.draggable);\n\n\t\t\t\t\t\tif (newIndex >= 0) {\n\t\t\t\t\t\t\t// Add event\n\t\t\t\t\t\t\t_dispatchEvent(null, parentEl, 'add', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\n\t\t\t\t\t\t\t// Remove event\n\t\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'remove', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\n\t\t\t\t\t\t\t// drag from one list and drop into another\n\t\t\t\t\t\t\t_dispatchEvent(null, parentEl, 'sort', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\t\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'sort', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tif (dragEl.nextSibling !== nextEl) {\n\t\t\t\t\t\t\t// Get the index of the dragged element within its parent\n\t\t\t\t\t\t\tnewIndex = _index(dragEl, options.draggable);\n\n\t\t\t\t\t\t\tif (newIndex >= 0) {\n\t\t\t\t\t\t\t\t// drag & drop within the same list\n\t\t\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'update', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\t\t\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'sort', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (Sortable.active) {\n\t\t\t\t\t\t/* jshint eqnull:true */\n\t\t\t\t\t\tif (newIndex == null || newIndex === -1) {\n\t\t\t\t\t\t\tnewIndex = oldIndex;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_dispatchEvent(this, rootEl, 'end', dragEl, parentEl, rootEl, oldIndex, newIndex);\n\n\t\t\t\t\t\t// Save sorting\n\t\t\t\t\t\tthis.save();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tthis._nulling();\n\t\t},\n\n\t\t_nulling: function() {\n\t\t\trootEl =\n\t\t\tdragEl =\n\t\t\tparentEl =\n\t\t\tghostEl =\n\t\t\tnextEl =\n\t\t\tcloneEl =\n\t\t\tlastDownEl =\n\n\t\t\tscrollEl =\n\t\t\tscrollParentEl =\n\n\t\t\ttapEvt =\n\t\t\ttouchEvt =\n\n\t\t\tmoved =\n\t\t\tnewIndex =\n\n\t\t\tlastEl =\n\t\t\tlastCSS =\n\n\t\t\tputSortable =\n\t\t\tactiveGroup =\n\t\t\tSortable.active = null;\n\n\t\t\tsavedInputChecked.forEach(function (el) {\n\t\t\t\tel.checked = true;\n\t\t\t});\n\t\t\tsavedInputChecked.length = 0;\n\t\t},\n\n\t\thandleEvent: function (/**Event*/evt) {\n\t\t\tswitch (evt.type) {\n\t\t\t\tcase 'drop':\n\t\t\t\tcase 'dragend':\n\t\t\t\t\tthis._onDrop(evt);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'dragover':\n\t\t\t\tcase 'dragenter':\n\t\t\t\t\tif (dragEl) {\n\t\t\t\t\t\tthis._onDragOver(evt);\n\t\t\t\t\t\t_globalDragOver(evt);\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'mouseover':\n\t\t\t\t\tthis._onDrop(evt);\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'selectstart':\n\t\t\t\t\tevt.preventDefault();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Serializes the item into an array of string.\n\t\t * @returns {String[]}\n\t\t */\n\t\ttoArray: function () {\n\t\t\tvar order = [],\n\t\t\t\tel,\n\t\t\t\tchildren = this.el.children,\n\t\t\t\ti = 0,\n\t\t\t\tn = children.length,\n\t\t\t\toptions = this.options;\n\n\t\t\tfor (; i < n; i++) {\n\t\t\t\tel = children[i];\n\t\t\t\tif (_closest(el, options.draggable, this.el)) {\n\t\t\t\t\torder.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn order;\n\t\t},\n\n\n\t\t/**\n\t\t * Sorts the elements according to the array.\n\t\t * @param {String[]} order order of the items\n\t\t */\n\t\tsort: function (order) {\n\t\t\tvar items = {}, rootEl = this.el;\n\n\t\t\tthis.toArray().forEach(function (id, i) {\n\t\t\t\tvar el = rootEl.children[i];\n\n\t\t\t\tif (_closest(el, this.options.draggable, rootEl)) {\n\t\t\t\t\titems[id] = el;\n\t\t\t\t}\n\t\t\t}, this);\n\n\t\t\torder.forEach(function (id) {\n\t\t\t\tif (items[id]) {\n\t\t\t\t\trootEl.removeChild(items[id]);\n\t\t\t\t\trootEl.appendChild(items[id]);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\t/**\n\t\t * Save the current sorting\n\t\t */\n\t\tsave: function () {\n\t\t\tvar store = this.options.store;\n\t\t\tstore && store.set(this);\n\t\t},\n\n\n\t\t/**\n\t\t * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\n\t\t * @param {HTMLElement} el\n\t\t * @param {String} [selector] default: `options.draggable`\n\t\t * @returns {HTMLElement|null}\n\t\t */\n\t\tclosest: function (el, selector) {\n\t\t\treturn _closest(el, selector || this.options.draggable, this.el);\n\t\t},\n\n\n\t\t/**\n\t\t * Set/get option\n\t\t * @param {string} name\n\t\t * @param {*} [value]\n\t\t * @returns {*}\n\t\t */\n\t\toption: function (name, value) {\n\t\t\tvar options = this.options;\n\n\t\t\tif (value === void 0) {\n\t\t\t\treturn options[name];\n\t\t\t} else {\n\t\t\t\toptions[name] = value;\n\n\t\t\t\tif (name === 'group') {\n\t\t\t\t\t_prepareGroup(options);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Destroy\n\t\t */\n\t\tdestroy: function () {\n\t\t\tvar el = this.el;\n\n\t\t\tel[expando] = null;\n\n\t\t\t_off(el, 'mousedown', this._onTapStart);\n\t\t\t_off(el, 'touchstart', this._onTapStart);\n\t\t\t_off(el, 'pointerdown', this._onTapStart);\n\n\t\t\tif (this.nativeDraggable) {\n\t\t\t\t_off(el, 'dragover', this);\n\t\t\t\t_off(el, 'dragenter', this);\n\t\t\t}\n\n\t\t\t// Remove draggable attributes\n\t\t\tArray.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n\t\t\t\tel.removeAttribute('draggable');\n\t\t\t});\n\n\t\t\ttouchDragOverListeners.splice(touchDragOverListeners.indexOf(this._onDragOver), 1);\n\n\t\t\tthis._onDrop();\n\n\t\t\tthis.el = el = null;\n\t\t}\n\t};\n\n\n\tfunction _cloneHide(sortable, state) {\n\t\tif (sortable.lastPullMode !== 'clone') {\n\t\t\tstate = true;\n\t\t}\n\n\t\tif (cloneEl && (cloneEl.state !== state)) {\n\t\t\t_css(cloneEl, 'display', state ? 'none' : '');\n\n\t\t\tif (!state) {\n\t\t\t\tif (cloneEl.state) {\n\t\t\t\t\tif (sortable.options.group.revertClone) {\n\t\t\t\t\t\trootEl.insertBefore(cloneEl, nextEl);\n\t\t\t\t\t\tsortable._animate(dragEl, cloneEl);\n\t\t\t\t\t} else {\n\t\t\t\t\t\trootEl.insertBefore(cloneEl, dragEl);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tcloneEl.state = state;\n\t\t}\n\t}\n\n\n\tfunction _closest(/**HTMLElement*/el, /**String*/selector, /**HTMLElement*/ctx) {\n\t\tif (el) {\n\t\t\tctx = ctx || document;\n\n\t\t\tdo {\n\t\t\t\tif ((selector === '>*' && el.parentNode === ctx) || _matches(el, selector)) {\n\t\t\t\t\treturn el;\n\t\t\t\t}\n\t\t\t\t/* jshint boss:true */\n\t\t\t} while (el = _getParentOrHost(el));\n\t\t}\n\n\t\treturn null;\n\t}\n\n\n\tfunction _getParentOrHost(el) {\n\t\tvar parent = el.host;\n\n\t\treturn (parent && parent.nodeType) ? parent : el.parentNode;\n\t}\n\n\n\tfunction _globalDragOver(/**Event*/evt) {\n\t\tif (evt.dataTransfer) {\n\t\t\tevt.dataTransfer.dropEffect = 'move';\n\t\t}\n\t\tevt.preventDefault();\n\t}\n\n\n\tfunction _on(el, event, fn) {\n\t\tel.addEventListener(event, fn, captureMode);\n\t}\n\n\n\tfunction _off(el, event, fn) {\n\t\tel.removeEventListener(event, fn, captureMode);\n\t}\n\n\n\tfunction _toggleClass(el, name, state) {\n\t\tif (el) {\n\t\t\tif (el.classList) {\n\t\t\t\tel.classList[state ? 'add' : 'remove'](name);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tvar className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n\t\t\t\tel.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n\t\t\t}\n\t\t}\n\t}\n\n\n\tfunction _css(el, prop, val) {\n\t\tvar style = el && el.style;\n\n\t\tif (style) {\n\t\t\tif (val === void 0) {\n\t\t\t\tif (document.defaultView && document.defaultView.getComputedStyle) {\n\t\t\t\t\tval = document.defaultView.getComputedStyle(el, '');\n\t\t\t\t}\n\t\t\t\telse if (el.currentStyle) {\n\t\t\t\t\tval = el.currentStyle;\n\t\t\t\t}\n\n\t\t\t\treturn prop === void 0 ? val : val[prop];\n\t\t\t}\n\t\t\telse {\n\t\t\t\tif (!(prop in style)) {\n\t\t\t\t\tprop = '-webkit-' + prop;\n\t\t\t\t}\n\n\t\t\t\tstyle[prop] = val + (typeof val === 'string' ? '' : 'px');\n\t\t\t}\n\t\t}\n\t}\n\n\n\tfunction _find(ctx, tagName, iterator) {\n\t\tif (ctx) {\n\t\t\tvar list = ctx.getElementsByTagName(tagName), i = 0, n = list.length;\n\n\t\t\tif (iterator) {\n\t\t\t\tfor (; i < n; i++) {\n\t\t\t\t\titerator(list[i], i);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn list;\n\t\t}\n\n\t\treturn [];\n\t}\n\n\n\n\tfunction _dispatchEvent(sortable, rootEl, name, targetEl, toEl, fromEl, startIndex, newIndex) {\n\t\tsortable = (sortable || rootEl[expando]);\n\n\t\tvar evt = document.createEvent('Event'),\n\t\t\toptions = sortable.options,\n\t\t\tonName = 'on' + name.charAt(0).toUpperCase() + name.substr(1);\n\n\t\tevt.initEvent(name, true, true);\n\n\t\tevt.to = toEl || rootEl;\n\t\tevt.from = fromEl || rootEl;\n\t\tevt.item = targetEl || rootEl;\n\t\tevt.clone = cloneEl;\n\n\t\tevt.oldIndex = startIndex;\n\t\tevt.newIndex = newIndex;\n\n\t\trootEl.dispatchEvent(evt);\n\n\t\tif (options[onName]) {\n\t\t\toptions[onName].call(sortable, evt);\n\t\t}\n\t}\n\n\n\tfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvt, willInsertAfter) {\n\t\tvar evt,\n\t\t\tsortable = fromEl[expando],\n\t\t\tonMoveFn = sortable.options.onMove,\n\t\t\tretVal;\n\n\t\tevt = document.createEvent('Event');\n\t\tevt.initEvent('move', true, true);\n\n\t\tevt.to = toEl;\n\t\tevt.from = fromEl;\n\t\tevt.dragged = dragEl;\n\t\tevt.draggedRect = dragRect;\n\t\tevt.related = targetEl || toEl;\n\t\tevt.relatedRect = targetRect || toEl.getBoundingClientRect();\n\t\tevt.willInsertAfter = willInsertAfter;\n\n\t\tfromEl.dispatchEvent(evt);\n\n\t\tif (onMoveFn) {\n\t\t\tretVal = onMoveFn.call(sortable, evt, originalEvt);\n\t\t}\n\n\t\treturn retVal;\n\t}\n\n\n\tfunction _disableDraggable(el) {\n\t\tel.draggable = false;\n\t}\n\n\n\tfunction _unsilent() {\n\t\t_silent = false;\n\t}\n\n\n\t/** @returns {HTMLElement|false} */\n\tfunction _ghostIsLast(el, evt) {\n\t\tvar lastEl = el.lastElementChild,\n\t\t\trect = lastEl.getBoundingClientRect();\n\n\t\t// 5 — min delta\n\t\t// abs — нельзя добавлять, а то глюки при наведении сверху\n\t\treturn (evt.clientY - (rect.top + rect.height) > 5) ||\n\t\t\t(evt.clientX - (rect.left + rect.width) > 5);\n\t}\n\n\n\t/**\n\t * Generate id\n\t * @param {HTMLElement} el\n\t * @returns {String}\n\t * @private\n\t */\n\tfunction _generateId(el) {\n\t\tvar str = el.tagName + el.className + el.src + el.href + el.textContent,\n\t\t\ti = str.length,\n\t\t\tsum = 0;\n\n\t\twhile (i--) {\n\t\t\tsum += str.charCodeAt(i);\n\t\t}\n\n\t\treturn sum.toString(36);\n\t}\n\n\t/**\n\t * Returns the index of an element within its parent for a selected set of\n\t * elements\n\t * @param {HTMLElement} el\n\t * @param {selector} selector\n\t * @return {number}\n\t */\n\tfunction _index(el, selector) {\n\t\tvar index = 0;\n\n\t\tif (!el || !el.parentNode) {\n\t\t\treturn -1;\n\t\t}\n\n\t\twhile (el && (el = el.previousElementSibling)) {\n\t\t\tif ((el.nodeName.toUpperCase() !== 'TEMPLATE') && (selector === '>*' || _matches(el, selector))) {\n\t\t\t\tindex++;\n\t\t\t}\n\t\t}\n\n\t\treturn index;\n\t}\n\n\tfunction _matches(/**HTMLElement*/el, /**String*/selector) {\n\t\tif (el) {\n\t\t\tselector = selector.split('.');\n\n\t\t\tvar tag = selector.shift().toUpperCase(),\n\t\t\t\tre = new RegExp('\\\\s(' + selector.join('|') + ')(?=\\\\s)', 'g');\n\n\t\t\treturn (\n\t\t\t\t(tag === '' || el.nodeName.toUpperCase() == tag) &&\n\t\t\t\t(!selector.length || ((' ' + el.className + ' ').match(re) || []).length == selector.length)\n\t\t\t);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tfunction _throttle(callback, ms) {\n\t\tvar args, _this;\n\n\t\treturn function () {\n\t\t\tif (args === void 0) {\n\t\t\t\targs = arguments;\n\t\t\t\t_this = this;\n\n\t\t\t\tsetTimeout(function () {\n\t\t\t\t\tif (args.length === 1) {\n\t\t\t\t\t\tcallback.call(_this, args[0]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcallback.apply(_this, args);\n\t\t\t\t\t}\n\n\t\t\t\t\targs = void 0;\n\t\t\t\t}, ms);\n\t\t\t}\n\t\t};\n\t}\n\n\tfunction _extend(dst, src) {\n\t\tif (dst && src) {\n\t\t\tfor (var key in src) {\n\t\t\t\tif (src.hasOwnProperty(key)) {\n\t\t\t\t\tdst[key] = src[key];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn dst;\n\t}\n\n\tfunction _clone(el) {\n\t\tif (Polymer && Polymer.dom) {\n\t\t\treturn Polymer.dom(el).cloneNode(true);\n\t\t}\n\t\telse if ($) {\n\t\t\treturn $(el).clone(true)[0];\n\t\t}\n\t\telse {\n\t\t\treturn el.cloneNode(true);\n\t\t}\n\t}\n\n\tfunction _saveInputCheckedState(root) {\n\t\tvar inputs = root.getElementsByTagName('input');\n\t\tvar idx = inputs.length;\n\n\t\twhile (idx--) {\n\t\t\tvar el = inputs[idx];\n\t\t\tel.checked && savedInputChecked.push(el);\n\t\t}\n\t}\n\n\tfunction _nextTick(fn) {\n\t\treturn setTimeout(fn, 0);\n\t}\n\n\tfunction _cancelNextTick(id) {\n\t\treturn clearTimeout(id);\n\t}\n\n\t// Fixed #973:\n\t_on(document, 'touchmove', function (evt) {\n\t\tif (Sortable.active) {\n\t\t\tevt.preventDefault();\n\t\t}\n\t});\n\n\t// Export utils\n\tSortable.utils = {\n\t\ton: _on,\n\t\toff: _off,\n\t\tcss: _css,\n\t\tfind: _find,\n\t\tis: function (el, selector) {\n\t\t\treturn !!_closest(el, selector, el);\n\t\t},\n\t\textend: _extend,\n\t\tthrottle: _throttle,\n\t\tclosest: _closest,\n\t\ttoggleClass: _toggleClass,\n\t\tclone: _clone,\n\t\tindex: _index,\n\t\tnextTick: _nextTick,\n\t\tcancelNextTick: _cancelNextTick\n\t};\n\n\n\t/**\n\t * Create sortable instance\n\t * @param {HTMLElement} el\n\t * @param {Object} [options]\n\t */\n\tSortable.create = function (el, options) {\n\t\treturn new Sortable(el, options);\n\t};\n\n\n\t// Export\n\tSortable.version = '1.7.0';\n\treturn Sortable;\n});\n","import Mousetrap from 'mousetrap';\nimport findAndFollowLink from './shortcuts_dashboard_navigation';\nimport Shortcuts from './shortcuts';\n\nexport default class ShortcutsNavigation extends Shortcuts {\n constructor() {\n super();\n\n Mousetrap.bind('g p', () => findAndFollowLink('.shortcuts-project'));\n Mousetrap.bind('g v', () => findAndFollowLink('.shortcuts-project-activity'));\n Mousetrap.bind('g f', () => findAndFollowLink('.shortcuts-tree'));\n Mousetrap.bind('g c', () => findAndFollowLink('.shortcuts-commits'));\n Mousetrap.bind('g j', () => findAndFollowLink('.shortcuts-builds'));\n Mousetrap.bind('g n', () => findAndFollowLink('.shortcuts-network'));\n Mousetrap.bind('g d', () => findAndFollowLink('.shortcuts-repository-charts'));\n Mousetrap.bind('g i', () => findAndFollowLink('.shortcuts-issues'));\n Mousetrap.bind('g b', () => findAndFollowLink('.shortcuts-issue-boards'));\n Mousetrap.bind('g m', () => findAndFollowLink('.shortcuts-merge_requests'));\n Mousetrap.bind('g w', () => findAndFollowLink('.shortcuts-wiki'));\n Mousetrap.bind('g s', () => findAndFollowLink('.shortcuts-snippets'));\n Mousetrap.bind('g k', () => findAndFollowLink('.shortcuts-kubernetes'));\n Mousetrap.bind('g e', () => findAndFollowLink('.shortcuts-environments'));\n Mousetrap.bind('i', () => findAndFollowLink('.shortcuts-new-issue'));\n\n this.enabledHelp.push('.hidden-shortcut.project');\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{class:[_vm.iconSizeClass, _vm.iconTestClass, _vm.cssClasses],attrs:{\"width\":_vm.width,\"height\":_vm.height,\"x\":_vm.x,\"y\":_vm.y}},[_c('use',_vm._b({},'use',{ 'xlink:href':_vm.spriteHref },false))])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n \n \n \n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./icon.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./icon.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./icon.vue?vue&type=template&id=4bd8f44c\"\nimport script from \"./icon.vue?vue&type=script&lang=js\"\nexport * from \"./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","import Vue from 'vue';\n\nexport default new Vue();\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./recent_searches_dropdown_content.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./recent_searches_dropdown_content.vue?vue&type=script&lang=js\"","\n\n \n \n This feature requires local storage to be enabled\n \n \n \n \n \n \n {{ token.prefix }}\n {{ token.suffix }}\n \n \n \n {{ item.searchToken }}\n \n \n \n \n \n \n Clear recent searches\n \n \n \n \n You don't have any recent searches\n \n \n\n","import { render, staticRenderFns } from \"./recent_searches_dropdown_content.vue?vue&type=template&id=21b166e4\"\nimport script from \"./recent_searches_dropdown_content.vue?vue&type=script&lang=js\"\nexport * from \"./recent_searches_dropdown_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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[(!_vm.isLocalStorageAvailable)?_c('div',{staticClass:\"dropdown-info-note\"},[_vm._v(\"\\n This feature requires local storage to be enabled\\n \")]):(_vm.hasItems)?_c('ul',[_vm._l((_vm.processedItems),function(item,index){return _c('li',{key:(\"processed-items-\" + index)},[_c('button',{staticClass:\"filtered-search-history-dropdown-item\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.onItemActivated(item.text)}}},[_c('span',_vm._l((item.tokens),function(token,index){return _c('span',{key:(\"dropdown-token-\" + index),staticClass:\"filtered-search-history-dropdown-token\"},[_c('span',{staticClass:\"name\"},[_vm._v(_vm._s(token.prefix))]),_vm._v(\" \"),_c('span',{staticClass:\"value\"},[_vm._v(_vm._s(token.suffix))])])})),_vm._v(\" \"),_c('span',{staticClass:\"filtered-search-history-dropdown-search-token\"},[_vm._v(\"\\n \"+_vm._s(item.searchToken)+\"\\n \")])])])}),_vm._v(\" \"),_c('li',{staticClass:\"divider\"}),_vm._v(\" \"),_c('li',[_c('button',{staticClass:\"filtered-search-history-clear-button\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){_vm.onRequestClearRecentSearches($event)}}},[_vm._v(\"\\n Clear recent searches\\n \")])])],2):_c('div',{staticClass:\"dropdown-info-note\"},[_vm._v(\"\\n You don't have any recent searches\\n \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue';\nimport RecentSearchesDropdownContent from './components/recent_searches_dropdown_content.vue';\nimport eventHub from './event_hub';\n\nclass RecentSearchesRoot {\n constructor(\n recentSearchesStore,\n recentSearchesService,\n wrapperElement,\n ) {\n this.store = recentSearchesStore;\n this.service = recentSearchesService;\n this.wrapperElement = wrapperElement;\n }\n\n init() {\n this.bindEvents();\n this.render();\n }\n\n bindEvents() {\n this.onRequestClearRecentSearchesWrapper = this.onRequestClearRecentSearches.bind(this);\n\n eventHub.$on('requestClearRecentSearches', this.onRequestClearRecentSearchesWrapper);\n }\n\n unbindEvents() {\n eventHub.$off('requestClearRecentSearches', this.onRequestClearRecentSearchesWrapper);\n }\n\n render() {\n const state = this.store.state;\n this.vm = new Vue({\n el: this.wrapperElement,\n components: {\n RecentSearchesDropdownContent,\n },\n data() { return state; },\n template: `\n \n `,\n });\n }\n\n onRequestClearRecentSearches() {\n const resultantSearches = this.store.setRecentSearches([]);\n this.service.save(resultantSearches);\n }\n\n destroy() {\n this.unbindEvents();\n if (this.vm) {\n this.vm.$destroy();\n }\n }\n\n}\n\nexport default RecentSearchesRoot;\n","import _ from 'underscore';\n\nclass RecentSearchesStore {\n constructor(initialState = {}, allowedKeys) {\n this.state = Object.assign({\n isLocalStorageAvailable: true,\n recentSearches: [],\n allowedKeys,\n }, initialState);\n }\n\n addRecentSearch(newSearch) {\n this.setRecentSearches([newSearch].concat(this.state.recentSearches));\n\n return this.state.recentSearches;\n }\n\n setRecentSearches(searches = []) {\n const trimmedSearches = searches.map(search => search.trim());\n this.state.recentSearches = _.uniq(trimmedSearches).slice(0, 5);\n return this.state.recentSearches;\n }\n}\n\nexport default RecentSearchesStore;\n","class RecentSearchesServiceError {\n constructor(message) {\n this.name = 'RecentSearchesServiceError';\n this.message = message || 'Recent Searches Service is unavailable';\n }\n}\n\n// Can't use `extends` for builtin prototypes and get true inheritance yet\nRecentSearchesServiceError.prototype = Error.prototype;\n\nexport default RecentSearchesServiceError;\n","import RecentSearchesServiceError from './recent_searches_service_error';\nimport AccessorUtilities from '../../lib/utils/accessor';\n\nclass RecentSearchesService {\n constructor(localStorageKey = 'issuable-recent-searches') {\n this.localStorageKey = localStorageKey;\n }\n\n fetch() {\n if (!RecentSearchesService.isAvailable()) {\n const error = new RecentSearchesServiceError();\n return Promise.reject(error);\n }\n\n const input = window.localStorage.getItem(this.localStorageKey);\n\n let searches = [];\n if (input && input.length > 0) {\n try {\n searches = JSON.parse(input);\n } catch (err) {\n return Promise.reject(err);\n }\n }\n\n return Promise.resolve(searches);\n }\n\n save(searches = []) {\n if (!RecentSearchesService.isAvailable()) return;\n\n window.localStorage.setItem(this.localStorageKey, JSON.stringify(searches));\n }\n\n static isAvailable() {\n return AccessorUtilities.isLocalStorageAccessSafe();\n }\n}\n\nexport default RecentSearchesService;\n","import _ from 'underscore';\nimport {\n getParameterByName,\n getUrlParamsArray,\n} from '~/lib/utils/common_utils';\nimport { visitUrl } from '../lib/utils/url_utility';\nimport Flash from '../flash';\nimport FilteredSearchContainer from './container';\nimport FilteredSearchTokenKeys from './filtered_search_token_keys';\nimport RecentSearchesRoot from './recent_searches_root';\nimport RecentSearchesStore from './stores/recent_searches_store';\nimport RecentSearchesService from './services/recent_searches_service';\nimport eventHub from './event_hub';\nimport { addClassIfElementExists } from '../lib/utils/dom_utils';\nimport FilteredSearchTokenizer from './filtered_search_tokenizer';\nimport FilteredSearchDropdownManager from './filtered_search_dropdown_manager';\nimport FilteredSearchVisualTokens from './filtered_search_visual_tokens';\nimport DropdownUtils from './dropdown_utils';\n\nexport default class FilteredSearchManager {\n constructor({\n page,\n isGroup = false,\n isGroupAncestor = true,\n isGroupDecendent = false,\n filteredSearchTokenKeys = FilteredSearchTokenKeys,\n stateFiltersSelector = '.issues-state-filters',\n }) {\n this.isGroup = isGroup;\n this.isGroupAncestor = isGroupAncestor;\n this.isGroupDecendent = isGroupDecendent;\n this.states = ['opened', 'closed', 'merged', 'all'];\n\n this.page = page;\n this.container = FilteredSearchContainer.container;\n this.filteredSearchInput = this.container.querySelector('.filtered-search');\n this.filteredSearchInputForm = this.filteredSearchInput.form;\n this.clearSearchButton = this.container.querySelector('.clear-search');\n this.tokensContainer = this.container.querySelector('.tokens-container');\n this.filteredSearchTokenKeys = filteredSearchTokenKeys;\n this.stateFiltersSelector = stateFiltersSelector;\n this.recentsStorageKeyNames = {\n issues: 'issue-recent-searches',\n merge_requests: 'merge-request-recent-searches',\n };\n\n this.recentSearchesStore = new RecentSearchesStore({\n isLocalStorageAvailable: RecentSearchesService.isAvailable(),\n allowedKeys: this.filteredSearchTokenKeys.getKeys(),\n });\n this.searchHistoryDropdownElement = document.querySelector('.js-filtered-search-history-dropdown');\n const fullPath = this.searchHistoryDropdownElement ?\n this.searchHistoryDropdownElement.dataset.fullPath : 'project';\n const recentSearchesKey = `${fullPath}-${this.recentsStorageKeyNames[this.page]}`;\n this.recentSearchesService = new RecentSearchesService(recentSearchesKey);\n }\n\n setup() {\n // Fetch recent searches from localStorage\n this.fetchingRecentSearchesPromise = this.recentSearchesService.fetch()\n .catch((error) => {\n if (error.name === 'RecentSearchesServiceError') return undefined;\n // eslint-disable-next-line no-new\n new Flash('An error occurred while parsing recent searches');\n // Gracefully fail to empty array\n return [];\n })\n .then((searches) => {\n if (!searches) {\n return;\n }\n\n // Put any searches that may have come in before\n // we fetched the saved searches ahead of the already saved ones\n const resultantSearches = this.recentSearchesStore.setRecentSearches(\n this.recentSearchesStore.state.recentSearches.concat(searches),\n );\n this.recentSearchesService.save(resultantSearches);\n });\n\n if (this.filteredSearchInput) {\n this.tokenizer = FilteredSearchTokenizer;\n this.dropdownManager = new FilteredSearchDropdownManager({\n baseEndpoint: this.filteredSearchInput.getAttribute('data-base-endpoint') || '',\n tokenizer: this.tokenizer,\n page: this.page,\n isGroup: this.isGroup,\n isGroupAncestor: this.isGroupAncestor,\n isGroupDecendent: this.isGroupDecendent,\n filteredSearchTokenKeys: this.filteredSearchTokenKeys,\n });\n\n this.recentSearchesRoot = new RecentSearchesRoot(\n this.recentSearchesStore,\n this.recentSearchesService,\n this.searchHistoryDropdownElement,\n );\n this.recentSearchesRoot.init();\n\n this.bindEvents();\n this.loadSearchParamsFromURL();\n this.dropdownManager.setDropdown();\n this.cleanupWrapper = this.cleanup.bind(this);\n document.addEventListener('beforeunload', this.cleanupWrapper);\n }\n }\n\n cleanup() {\n this.unbindEvents();\n document.removeEventListener('beforeunload', this.cleanupWrapper);\n\n if (this.recentSearchesRoot) {\n this.recentSearchesRoot.destroy();\n }\n }\n\n bindStateEvents() {\n this.stateFilters = document.querySelector(`.container-fluid ${this.stateFiltersSelector}`);\n\n if (this.stateFilters) {\n this.searchStateWrapper = this.searchState.bind(this);\n\n this.applyToStateFilters((filterEl) => {\n filterEl.addEventListener('click', this.searchStateWrapper);\n });\n }\n }\n\n unbindStateEvents() {\n if (this.stateFilters) {\n this.applyToStateFilters((filterEl) => {\n filterEl.removeEventListener('click', this.searchStateWrapper);\n });\n }\n }\n\n applyToStateFilters(callback) {\n this.stateFilters.querySelectorAll('a[data-state]').forEach((filterEl) => {\n if (this.states.indexOf(filterEl.dataset.state) > -1) {\n callback(filterEl);\n }\n });\n }\n\n bindEvents() {\n this.handleFormSubmit = this.handleFormSubmit.bind(this);\n this.setDropdownWrapper = this.dropdownManager.setDropdown.bind(this.dropdownManager);\n this.toggleClearSearchButtonWrapper = this.toggleClearSearchButton.bind(this);\n this.handleInputPlaceholderWrapper = this.handleInputPlaceholder.bind(this);\n this.handleInputVisualTokenWrapper = this.handleInputVisualToken.bind(this);\n this.checkForEnterWrapper = this.checkForEnter.bind(this);\n this.onClearSearchWrapper = this.onClearSearch.bind(this);\n this.checkForBackspaceWrapper = this.checkForBackspace.call(this);\n this.removeSelectedTokenKeydownWrapper = this.removeSelectedTokenKeydown.bind(this);\n this.unselectEditTokensWrapper = this.unselectEditTokens.bind(this);\n this.editTokenWrapper = this.editToken.bind(this);\n this.tokenChange = this.tokenChange.bind(this);\n this.addInputContainerFocusWrapper = this.addInputContainerFocus.bind(this);\n this.removeInputContainerFocusWrapper = this.removeInputContainerFocus.bind(this);\n this.onrecentSearchesItemSelectedWrapper = this.onrecentSearchesItemSelected.bind(this);\n this.removeTokenWrapper = this.removeToken.bind(this);\n\n this.filteredSearchInputForm.addEventListener('submit', this.handleFormSubmit);\n this.filteredSearchInput.addEventListener('input', this.setDropdownWrapper);\n this.filteredSearchInput.addEventListener('input', this.toggleClearSearchButtonWrapper);\n this.filteredSearchInput.addEventListener('input', this.handleInputPlaceholderWrapper);\n this.filteredSearchInput.addEventListener('input', this.handleInputVisualTokenWrapper);\n this.filteredSearchInput.addEventListener('keydown', this.checkForEnterWrapper);\n this.filteredSearchInput.addEventListener('keyup', this.checkForBackspaceWrapper);\n this.filteredSearchInput.addEventListener('click', this.tokenChange);\n this.filteredSearchInput.addEventListener('keyup', this.tokenChange);\n this.filteredSearchInput.addEventListener('focus', this.addInputContainerFocusWrapper);\n this.tokensContainer.addEventListener('click', this.removeTokenWrapper);\n this.tokensContainer.addEventListener('click', this.editTokenWrapper);\n this.clearSearchButton.addEventListener('click', this.onClearSearchWrapper);\n document.addEventListener('click', this.unselectEditTokensWrapper);\n document.addEventListener('click', this.removeInputContainerFocusWrapper);\n document.addEventListener('keydown', this.removeSelectedTokenKeydownWrapper);\n eventHub.$on('recentSearchesItemSelected', this.onrecentSearchesItemSelectedWrapper);\n\n this.bindStateEvents();\n }\n\n unbindEvents() {\n this.filteredSearchInputForm.removeEventListener('submit', this.handleFormSubmit);\n this.filteredSearchInput.removeEventListener('input', this.setDropdownWrapper);\n this.filteredSearchInput.removeEventListener('input', this.toggleClearSearchButtonWrapper);\n this.filteredSearchInput.removeEventListener('input', this.handleInputPlaceholderWrapper);\n this.filteredSearchInput.removeEventListener('input', this.handleInputVisualTokenWrapper);\n this.filteredSearchInput.removeEventListener('keydown', this.checkForEnterWrapper);\n this.filteredSearchInput.removeEventListener('keyup', this.checkForBackspaceWrapper);\n this.filteredSearchInput.removeEventListener('click', this.tokenChange);\n this.filteredSearchInput.removeEventListener('keyup', this.tokenChange);\n this.filteredSearchInput.removeEventListener('focus', this.addInputContainerFocusWrapper);\n this.tokensContainer.removeEventListener('click', this.removeTokenWrapper);\n this.tokensContainer.removeEventListener('click', this.editTokenWrapper);\n this.clearSearchButton.removeEventListener('click', this.onClearSearchWrapper);\n document.removeEventListener('click', this.unselectEditTokensWrapper);\n document.removeEventListener('click', this.removeInputContainerFocusWrapper);\n document.removeEventListener('keydown', this.removeSelectedTokenKeydownWrapper);\n eventHub.$off('recentSearchesItemSelected', this.onrecentSearchesItemSelectedWrapper);\n\n this.unbindStateEvents();\n }\n\n checkForBackspace() {\n let backspaceCount = 0;\n\n // closure for keeping track of the number of backspace keystrokes\n return (e) => {\n // 8 = Backspace Key\n // 46 = Delete Key\n if (e.keyCode === 8 || e.keyCode === 46) {\n const { lastVisualToken } = FilteredSearchVisualTokens.getLastVisualTokenBeforeInput();\n const { tokenName, tokenValue } = DropdownUtils.getVisualTokenValues(lastVisualToken);\n const canEdit = tokenName && this.canEdit && this.canEdit(tokenName, tokenValue);\n\n if (this.filteredSearchInput.value === '' && lastVisualToken && canEdit) {\n backspaceCount += 1;\n\n if (backspaceCount === 2) {\n backspaceCount = 0;\n this.filteredSearchInput.value = FilteredSearchVisualTokens.getLastTokenPartial();\n FilteredSearchVisualTokens.removeLastTokenPartial();\n }\n }\n\n // Reposition dropdown so that it is aligned with cursor\n this.dropdownManager.updateCurrentDropdownOffset();\n } else {\n backspaceCount = 0;\n }\n };\n }\n\n checkForEnter(e) {\n if (e.keyCode === 38 || e.keyCode === 40) {\n const selectionStart = this.filteredSearchInput.selectionStart;\n\n e.preventDefault();\n this.filteredSearchInput.setSelectionRange(selectionStart, selectionStart);\n }\n\n if (e.keyCode === 13) {\n const dropdown = this.dropdownManager.mapping[this.dropdownManager.currentDropdown];\n const dropdownEl = dropdown.element;\n const activeElements = dropdownEl.querySelectorAll('.droplab-item-active');\n\n e.preventDefault();\n\n if (!activeElements.length) {\n if (this.isHandledAsync) {\n e.stopImmediatePropagation();\n\n this.filteredSearchInput.blur();\n this.dropdownManager.resetDropdowns();\n } else {\n // Prevent droplab from opening dropdown\n this.dropdownManager.destroyDroplab();\n }\n\n this.search();\n }\n }\n }\n\n addInputContainerFocus() {\n addClassIfElementExists(this.filteredSearchInput.closest('.filtered-search-box'), 'focus');\n }\n\n removeInputContainerFocus(e) {\n const inputContainer = this.filteredSearchInput.closest('.filtered-search-box');\n const isElementInFilteredSearch = inputContainer && inputContainer.contains(e.target);\n const isElementInDynamicFilterDropdown = e.target.closest('.filter-dropdown') !== null;\n const isElementInStaticFilterDropdown = e.target.closest('ul[data-dropdown]') !== null;\n\n if (!isElementInFilteredSearch && !isElementInDynamicFilterDropdown &&\n !isElementInStaticFilterDropdown && inputContainer) {\n inputContainer.classList.remove('focus');\n }\n }\n\n removeToken(e) {\n const removeButtonSelected = e.target.closest('.remove-token');\n\n if (removeButtonSelected) {\n e.preventDefault();\n // Prevent editToken from being triggered after token is removed\n e.stopImmediatePropagation();\n\n const button = e.target.closest('.selectable');\n FilteredSearchVisualTokens.selectToken(button, true);\n this.removeSelectedToken();\n }\n }\n\n unselectEditTokens(e) {\n const inputContainer = this.container.querySelector('.filtered-search-box');\n const isElementInFilteredSearch = inputContainer && inputContainer.contains(e.target);\n const isElementInFilterDropdown = e.target.closest('.filter-dropdown') !== null;\n const isElementTokensContainer = e.target.classList.contains('tokens-container');\n\n if ((!isElementInFilteredSearch && !isElementInFilterDropdown) || isElementTokensContainer) {\n FilteredSearchVisualTokens.moveInputToTheRight();\n this.dropdownManager.resetDropdowns();\n }\n }\n\n editToken(e) {\n const token = e.target.closest('.js-visual-token');\n const sanitizedTokenName = token && token.querySelector('.name').textContent.trim();\n const canEdit = this.canEdit && this.canEdit(sanitizedTokenName);\n\n if (token && canEdit) {\n e.preventDefault();\n e.stopPropagation();\n FilteredSearchVisualTokens.editToken(token);\n this.tokenChange();\n }\n }\n\n toggleClearSearchButton() {\n const query = DropdownUtils.getSearchQuery();\n const hidden = 'hidden';\n const hasHidden = this.clearSearchButton.classList.contains(hidden);\n\n if (query.length === 0 && !hasHidden) {\n this.clearSearchButton.classList.add(hidden);\n } else if (query.length && hasHidden) {\n this.clearSearchButton.classList.remove(hidden);\n }\n }\n\n handleInputPlaceholder() {\n const query = DropdownUtils.getSearchQuery();\n const placeholder = 'Search or filter results...';\n const currentPlaceholder = this.filteredSearchInput.placeholder;\n\n if (query.length === 0 && currentPlaceholder !== placeholder) {\n this.filteredSearchInput.placeholder = placeholder;\n } else if (query.length > 0 && currentPlaceholder !== '') {\n this.filteredSearchInput.placeholder = '';\n }\n }\n\n removeSelectedTokenKeydown(e) {\n // 8 = Backspace Key\n // 46 = Delete Key\n if (e.keyCode === 8 || e.keyCode === 46) {\n this.removeSelectedToken();\n }\n }\n\n removeSelectedToken() {\n FilteredSearchVisualTokens.removeSelectedToken();\n this.handleInputPlaceholder();\n this.toggleClearSearchButton();\n this.dropdownManager.updateCurrentDropdownOffset();\n }\n\n onClearSearch(e) {\n e.preventDefault();\n this.clearSearch();\n }\n\n clearSearch() {\n this.filteredSearchInput.value = '';\n\n const removeElements = [];\n\n [].forEach.call(this.tokensContainer.children, (t) => {\n let canClearToken = t.classList.contains('js-visual-token');\n\n if (canClearToken) {\n const { tokenName, tokenValue } = DropdownUtils.getVisualTokenValues(t);\n canClearToken = this.canEdit && this.canEdit(tokenName, tokenValue);\n }\n\n if (canClearToken) {\n removeElements.push(t);\n }\n });\n\n removeElements.forEach((el) => {\n el.parentElement.removeChild(el);\n });\n\n this.clearSearchButton.classList.add('hidden');\n this.handleInputPlaceholder();\n\n this.dropdownManager.resetDropdowns();\n\n if (this.isHandledAsync) {\n this.search();\n }\n }\n\n handleInputVisualToken() {\n const input = this.filteredSearchInput;\n const { tokens, searchToken }\n = this.tokenizer.processTokens(input.value, this.filteredSearchTokenKeys.getKeys());\n const { isLastVisualTokenValid }\n = FilteredSearchVisualTokens.getLastVisualTokenBeforeInput();\n\n if (isLastVisualTokenValid) {\n tokens.forEach((t) => {\n input.value = input.value.replace(`${t.key}:${t.symbol}${t.value}`, '');\n FilteredSearchVisualTokens.addFilterVisualToken(t.key, `${t.symbol}${t.value}`);\n });\n\n const fragments = searchToken.split(':');\n if (fragments.length > 1) {\n const inputValues = fragments[0].split(' ');\n const tokenKey = _.last(inputValues);\n\n if (inputValues.length > 1) {\n inputValues.pop();\n const searchTerms = inputValues.join(' ');\n\n input.value = input.value.replace(searchTerms, '');\n FilteredSearchVisualTokens.addSearchVisualToken(searchTerms);\n }\n\n FilteredSearchVisualTokens.addFilterVisualToken(tokenKey);\n input.value = input.value.replace(`${tokenKey}:`, '');\n }\n } else {\n // Keep listening to token until we determine that the user is done typing the token value\n const valueCompletedRegex = /([~%@]{0,1}\".+\")|([~%@]{0,1}'.+')|^((?![~%@]')(?![~%@]\")(?!')(?!\")).*/g;\n\n if (searchToken.match(valueCompletedRegex) && input.value[input.value.length - 1] === ' ') {\n FilteredSearchVisualTokens.addFilterVisualToken(searchToken);\n\n // Trim the last space as seen in the if statement above\n input.value = input.value.replace(searchToken, '').trim();\n }\n }\n }\n\n handleFormSubmit(e) {\n e.preventDefault();\n this.search();\n }\n\n saveCurrentSearchQuery() {\n // Don't save before we have fetched the already saved searches\n this.fetchingRecentSearchesPromise.then(() => {\n const searchQuery = DropdownUtils.getSearchQuery();\n if (searchQuery.length > 0) {\n const resultantSearches = this.recentSearchesStore.addRecentSearch(searchQuery);\n this.recentSearchesService.save(resultantSearches);\n }\n }).catch(() => {\n // https://gitlab.com/gitlab-org/gitlab-ce/issues/30821\n });\n }\n\n // allows for modifying params array when a param can't be included in the URL (e.g. Service Desk)\n getAllParams(urlParams) {\n return this.modifyUrlParams ? this.modifyUrlParams(urlParams) : urlParams;\n }\n\n loadSearchParamsFromURL() {\n const urlParams = getUrlParamsArray();\n const params = this.getAllParams(urlParams);\n const usernameParams = this.getUsernameParams();\n let hasFilteredSearch = false;\n\n params.forEach((p) => {\n const split = p.split('=');\n const keyParam = decodeURIComponent(split[0]);\n const value = split[1];\n\n // Check if it matches edge conditions listed in this.filteredSearchTokenKeys\n const condition = this.filteredSearchTokenKeys.searchByConditionUrl(p);\n\n if (condition) {\n hasFilteredSearch = true;\n const canEdit = this.canEdit && this.canEdit(condition.tokenKey);\n FilteredSearchVisualTokens.addFilterVisualToken(\n condition.tokenKey,\n condition.value,\n canEdit,\n );\n } else {\n // Sanitize value since URL converts spaces into +\n // Replace before decode so that we know what was originally + versus the encoded +\n const sanitizedValue = value ? decodeURIComponent(value.replace(/\\+/g, ' ')) : value;\n const match = this.filteredSearchTokenKeys.searchByKeyParam(keyParam);\n\n if (match) {\n // Use lastIndexOf because the token key is allowed to contain underscore\n // e.g. 'my_reaction' is the token key of 'my_reaction_emoji'\n const lastIndexOf = keyParam.lastIndexOf('_');\n let sanitizedKey = lastIndexOf !== -1 ? keyParam.slice(0, lastIndexOf) : keyParam;\n // Replace underscore with hyphen in the sanitizedkey.\n // e.g. 'my_reaction' => 'my-reaction'\n sanitizedKey = sanitizedKey.replace('_', '-');\n const symbol = match.symbol;\n let quotationsToUse = '';\n\n if (sanitizedValue.indexOf(' ') !== -1) {\n // Prefer \", but use ' if required\n quotationsToUse = sanitizedValue.indexOf('\"') === -1 ? '\"' : '\\'';\n }\n\n hasFilteredSearch = true;\n const canEdit = this.canEdit && this.canEdit(sanitizedKey, sanitizedValue);\n FilteredSearchVisualTokens.addFilterVisualToken(\n sanitizedKey,\n `${symbol}${quotationsToUse}${sanitizedValue}${quotationsToUse}`,\n canEdit,\n );\n } else if (!match && keyParam === 'assignee_id') {\n const id = parseInt(value, 10);\n if (usernameParams[id]) {\n hasFilteredSearch = true;\n const tokenName = 'assignee';\n const canEdit = this.canEdit && this.canEdit(tokenName);\n FilteredSearchVisualTokens.addFilterVisualToken(tokenName, `@${usernameParams[id]}`, canEdit);\n }\n } else if (!match && keyParam === 'author_id') {\n const id = parseInt(value, 10);\n if (usernameParams[id]) {\n hasFilteredSearch = true;\n const tokenName = 'author';\n const canEdit = this.canEdit && this.canEdit(tokenName);\n FilteredSearchVisualTokens.addFilterVisualToken(tokenName, `@${usernameParams[id]}`, canEdit);\n }\n } else if (!match && keyParam === 'search') {\n hasFilteredSearch = true;\n this.filteredSearchInput.value = sanitizedValue;\n }\n }\n });\n\n this.saveCurrentSearchQuery();\n\n if (hasFilteredSearch) {\n this.clearSearchButton.classList.remove('hidden');\n this.handleInputPlaceholder();\n }\n }\n\n searchState(e) {\n e.preventDefault();\n const target = e.currentTarget;\n // remove focus outline after click\n target.blur();\n\n const state = target.dataset && target.dataset.state;\n\n if (state) {\n this.search(state);\n }\n }\n\n search(state = null) {\n const paths = [];\n const searchQuery = DropdownUtils.getSearchQuery();\n\n this.saveCurrentSearchQuery();\n\n const { tokens, searchToken }\n = this.tokenizer.processTokens(searchQuery, this.filteredSearchTokenKeys.getKeys());\n const currentState = state || getParameterByName('state') || 'opened';\n paths.push(`state=${currentState}`);\n\n tokens.forEach((token) => {\n const condition = this.filteredSearchTokenKeys\n .searchByConditionKeyValue(token.key, token.value.toLowerCase());\n const { param } = this.filteredSearchTokenKeys.searchByKey(token.key) || {};\n // Replace hyphen with underscore to use as request parameter\n // e.g. 'my-reaction' => 'my_reaction'\n const underscoredKey = token.key.replace('-', '_');\n const keyParam = param ? `${underscoredKey}_${param}` : underscoredKey;\n let tokenPath = '';\n\n if (condition) {\n tokenPath = condition.url;\n } else {\n let tokenValue = token.value;\n\n if ((tokenValue[0] === '\\'' && tokenValue[tokenValue.length - 1] === '\\'') ||\n (tokenValue[0] === '\"' && tokenValue[tokenValue.length - 1] === '\"')) {\n tokenValue = tokenValue.slice(1, tokenValue.length - 1);\n }\n\n tokenPath = `${keyParam}=${encodeURIComponent(tokenValue)}`;\n }\n\n paths.push(tokenPath);\n });\n\n if (searchToken) {\n const sanitized = searchToken.split(' ').map(t => encodeURIComponent(t)).join('+');\n paths.push(`search=${sanitized}`);\n }\n\n const parameterizedUrl = `?scope=all&utf8=%E2%9C%93&${paths.join('&')}`;\n\n if (this.updateObject) {\n this.updateObject(parameterizedUrl);\n } else {\n visitUrl(parameterizedUrl);\n }\n }\n\n getUsernameParams() {\n const usernamesById = {};\n try {\n const attribute = this.filteredSearchInput.getAttribute('data-username-params');\n JSON.parse(attribute).forEach((user) => {\n usernamesById[user.id] = user.username;\n });\n } catch (e) {\n // do nothing\n }\n return usernamesById;\n }\n\n tokenChange() {\n const dropdown = this.dropdownManager.mapping[this.dropdownManager.currentDropdown];\n\n if (dropdown) {\n const currentDropdownRef = dropdown.reference;\n\n this.setDropdownWrapper();\n currentDropdownRef.dispatchInputEvent();\n }\n }\n\n onrecentSearchesItemSelected(text) {\n this.clearSearch();\n this.filteredSearchInput.value = text;\n this.filteredSearchInput.dispatchEvent(new CustomEvent('input'));\n this.search();\n }\n\n // eslint-disable-next-line class-methods-use-this\n canEdit() {\n return true;\n }\n}\n","import $ from 'jquery';\nimport AccessorUtilities from './lib/utils/accessor';\n\nexport default class ProjectSelectComboButton {\n constructor(select) {\n this.projectSelectInput = $(select);\n this.newItemBtn = $('.new-project-item-link');\n this.resourceType = this.newItemBtn.data('type');\n this.resourceLabel = this.newItemBtn.data('label');\n this.formattedText = this.deriveTextVariants();\n this.groupId = this.projectSelectInput.data('groupId');\n this.bindEvents();\n this.initLocalStorage();\n }\n\n bindEvents() {\n this.projectSelectInput.siblings('.new-project-item-select-button')\n .on('click', e => this.openDropdown(e));\n\n this.newItemBtn.on('click', (e) => {\n if (!this.getProjectFromLocalStorage()) {\n e.preventDefault();\n this.openDropdown(e);\n }\n });\n\n this.projectSelectInput.on('change', () => this.selectProject());\n }\n\n initLocalStorage() {\n const localStorageIsSafe = AccessorUtilities.isLocalStorageAccessSafe();\n\n if (localStorageIsSafe) {\n this.localStorageKey = ['group', this.groupId, this.formattedText.localStorageItemType, 'recent-project'].join('-');\n this.setBtnTextFromLocalStorage();\n }\n }\n\n // eslint-disable-next-line class-methods-use-this\n openDropdown(event) {\n $(event.currentTarget).siblings('.project-item-select').select2('open');\n }\n\n selectProject() {\n const selectedProjectData = JSON.parse(this.projectSelectInput.val());\n const projectUrl = `${selectedProjectData.url}/${this.projectSelectInput.data('relativePath')}`;\n const projectName = selectedProjectData.name;\n\n const projectMeta = {\n url: projectUrl,\n name: projectName,\n };\n\n this.setNewItemBtnAttributes(projectMeta);\n this.setProjectInLocalStorage(projectMeta);\n }\n\n setBtnTextFromLocalStorage() {\n const cachedProjectData = this.getProjectFromLocalStorage();\n\n this.setNewItemBtnAttributes(cachedProjectData);\n }\n\n setNewItemBtnAttributes(project) {\n if (project) {\n this.newItemBtn.attr('href', project.url);\n this.newItemBtn.text(`${this.formattedText.defaultTextPrefix} in ${project.name}`);\n } else {\n this.newItemBtn.text(`Select project to create ${this.formattedText.presetTextSuffix}`);\n }\n }\n\n getProjectFromLocalStorage() {\n const projectString = localStorage.getItem(this.localStorageKey);\n\n return JSON.parse(projectString);\n }\n\n setProjectInLocalStorage(projectMeta) {\n const projectString = JSON.stringify(projectMeta);\n\n localStorage.setItem(this.localStorageKey, projectString);\n }\n\n deriveTextVariants() {\n const defaultTextPrefix = this.resourceLabel;\n\n // the trailing slice call depluralizes each of these strings (e.g. new-issues -> new-issue)\n const localStorageItemType = `new-${this.resourceType.split('_').join('-').slice(0, -1)}`;\n const presetTextSuffix = this.resourceType.split('_').join(' ').slice(0, -1);\n\n return {\n localStorageItemType, // new-issue / new-merge-request\n defaultTextPrefix, // New issue / New merge request\n presetTextSuffix, // issue / merge request\n };\n }\n}\n\n","/* eslint-disable func-names, space-before-function-paren, wrap-iife, prefer-arrow-callback, no-var, comma-dangle, object-shorthand, one-var, one-var-declaration-per-line, no-else-return, quotes, max-len */\n\nimport $ from 'jquery';\nimport Api from './api';\nimport ProjectSelectComboButton from './project_select_combo_button';\n\nexport default function projectSelect() {\n $('.ajax-project-select').each(function(i, select) {\n var placeholder;\n const simpleFilter = $(select).data('simpleFilter') || false;\n this.groupId = $(select).data('groupId');\n this.includeGroups = $(select).data('includeGroups');\n this.allProjects = $(select).data('allProjects') || false;\n this.orderBy = $(select).data('orderBy') || 'id';\n this.withIssuesEnabled = $(select).data('withIssuesEnabled');\n this.withMergeRequestsEnabled = $(select).data('withMergeRequestsEnabled');\n\n placeholder = \"Search for project\";\n if (this.includeGroups) {\n placeholder += \" or group\";\n }\n\n $(select).select2({\n placeholder: placeholder,\n minimumInputLength: 0,\n query: (function (_this) {\n return function (query) {\n var finalCallback, projectsCallback;\n finalCallback = function (projects) {\n var data;\n data = {\n results: projects\n };\n return query.callback(data);\n };\n if (_this.includeGroups) {\n projectsCallback = function (projects) {\n var groupsCallback;\n groupsCallback = function (groups) {\n var data;\n data = groups.concat(projects);\n return finalCallback(data);\n };\n return Api.groups(query.term, {}, groupsCallback);\n };\n } else {\n projectsCallback = finalCallback;\n }\n if (_this.groupId) {\n return Api.groupProjects(_this.groupId, query.term, projectsCallback);\n } else {\n return Api.projects(query.term, {\n order_by: _this.orderBy,\n with_issues_enabled: _this.withIssuesEnabled,\n with_merge_requests_enabled: _this.withMergeRequestsEnabled,\n membership: !_this.allProjects,\n }, projectsCallback);\n }\n };\n })(this),\n id: function(project) {\n if (simpleFilter) return project.id;\n return JSON.stringify({\n name: project.name,\n url: project.web_url,\n });\n },\n text: function (project) {\n return project.name_with_namespace || project.name;\n },\n dropdownCssClass: \"ajax-project-dropdown\"\n });\n if (simpleFilter) return select;\n return new ProjectSelectComboButton(select);\n });\n}\n","/* eslint-disable func-names, space-before-function-paren, no-var, consistent-return, no-new, prefer-arrow-callback, no-return-assign, one-var, one-var-declaration-per-line, object-shorthand, no-else-return, newline-per-chained-call, no-shadow, vars-on-top, prefer-template, max-len */\n\nimport $ from 'jquery';\nimport Cookies from 'js-cookie';\nimport { __ } from '~/locale';\nimport { visitUrl } from '~/lib/utils/url_utility';\nimport axios from '~/lib/utils/axios_utils';\nimport flash from '~/flash';\nimport projectSelect from '../../project_select';\n\nexport default class Project {\n constructor() {\n const $cloneOptions = $('ul.clone-options-dropdown');\n const $projectCloneField = $('#project_clone');\n const $cloneBtnText = $('a.clone-dropdown-btn span');\n\n const selectedCloneOption = $cloneBtnText.text().trim();\n if (selectedCloneOption.length > 0) {\n $(`a:contains('${selectedCloneOption}')`, $cloneOptions).addClass('is-active');\n }\n\n $('a', $cloneOptions).on('click', (e) => {\n const $this = $(e.currentTarget);\n const url = $this.attr('href');\n const activeText = $this.find('.dropdown-menu-inner-title').text();\n\n e.preventDefault();\n\n $('.is-active', $cloneOptions).not($this).removeClass('is-active');\n $this.toggleClass('is-active');\n $projectCloneField.val(url);\n $cloneBtnText.text(activeText);\n\n return $('.clone').text(url);\n });\n // Ref switcher\n Project.initRefSwitcher();\n $('.project-refs-select').on('change', function() {\n return $(this).parents('form').submit();\n });\n $('.hide-no-ssh-message').on('click', function(e) {\n Cookies.set('hide_no_ssh_message', 'false');\n $(this).parents('.no-ssh-key-message').remove();\n return e.preventDefault();\n });\n $('.hide-no-password-message').on('click', function(e) {\n Cookies.set('hide_no_password_message', 'false');\n $(this).parents('.no-password-message').remove();\n return e.preventDefault();\n });\n Project.projectSelectDropdown();\n }\n\n static projectSelectDropdown() {\n projectSelect();\n $('.project-item-select').on('click', e => Project.changeProject($(e.currentTarget).val()));\n }\n\n static changeProject(url) {\n return window.location = url;\n }\n\n static initRefSwitcher() {\n var refListItem = document.createElement('li');\n var refLink = document.createElement('a');\n\n refLink.href = '#';\n\n return $('.js-project-refs-dropdown').each(function() {\n var $dropdown, selected;\n $dropdown = $(this);\n selected = $dropdown.data('selected');\n return $dropdown.glDropdown({\n data(term, callback) {\n axios.get($dropdown.data('refsUrl'), {\n params: {\n ref: $dropdown.data('ref'),\n search: term,\n },\n })\n .then(({ data }) => callback(data))\n .catch(() => flash(__('An error occurred while getting projects')));\n },\n selectable: true,\n filterable: true,\n filterRemote: true,\n filterByText: true,\n inputFieldName: $dropdown.data('inputFieldName'),\n fieldName: $dropdown.data('fieldName'),\n renderRow: function(ref) {\n var li = refListItem.cloneNode(false);\n\n if (ref.header != null) {\n li.className = 'dropdown-header';\n li.textContent = ref.header;\n } else {\n var link = refLink.cloneNode(false);\n\n if (ref === selected) {\n link.className = 'is-active';\n }\n\n link.textContent = ref;\n link.dataset.ref = ref;\n\n li.appendChild(link);\n }\n\n return li;\n },\n id: function(obj, $el) {\n return $el.attr('data-ref');\n },\n toggleLabel: function(obj, $el) {\n return $el.text().trim();\n },\n clicked: function(options) {\n const { e } = options;\n e.preventDefault();\n if ($('input[name=\"ref\"]').length) {\n var $form = $dropdown.closest('form');\n\n var $visit = $dropdown.data('visit');\n var shouldVisit = $visit ? true : $visit;\n var action = $form.attr('action');\n var divider = action.indexOf('?') === -1 ? '?' : '&';\n if (shouldVisit) {\n visitUrl(`${action}${divider}${$form.serialize()}`);\n }\n }\n },\n });\n });\n }\n}\n","import Project from './project';\nimport ShortcutsNavigation from '../../shortcuts_navigation';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new Project(); // eslint-disable-line no-new\n new ShortcutsNavigation(); // eslint-disable-line no-new\n});\n","export default class ListLabel {\n constructor(obj) {\n this.id = obj.id;\n this.title = obj.title;\n this.type = obj.type;\n this.color = obj.color;\n this.textColor = obj.text_color;\n this.description = obj.description;\n this.priority = (obj.priority !== null) ? obj.priority : Infinity;\n }\n}\n\nwindow.ListLabel = ListLabel;\n","export default class ListAssignee {\n constructor(obj, defaultAvatar) {\n this.id = obj.id;\n this.name = obj.name;\n this.username = obj.username;\n this.avatar = obj.avatar_url || obj.avatar || defaultAvatar;\n this.path = obj.path;\n this.state = obj.state;\n this.webUrl = obj.web_url || obj.webUrl;\n }\n}\n\nwindow.ListAssignee = ListAssignee;\n","/* eslint-disable class-methods-use-this */\nimport FilteredSearchContainer from '../filtered_search/container';\nimport FilteredSearchManager from '../filtered_search/filtered_search_manager';\n\nexport default class FilteredSearchBoards extends FilteredSearchManager {\n constructor(store, updateUrl = false, cantEdit = []) {\n super({\n page: 'boards',\n isGroupDecendent: true,\n stateFiltersSelector: '.issues-state-filters',\n });\n\n this.store = store;\n this.updateUrl = updateUrl;\n\n // Issue boards is slightly different, we handle all the requests async\n // instead or reloading the page, we just re-fire the list ajax requests\n this.isHandledAsync = true;\n this.cantEdit = cantEdit.filter(i => typeof i === 'string');\n this.cantEditWithValue = cantEdit.filter(i => typeof i === 'object');\n }\n\n updateObject(path) {\n this.store.path = path.substr(1);\n\n if (this.updateUrl) {\n gl.issueBoards.BoardsStore.updateFiltersUrl();\n }\n }\n\n removeTokens() {\n const tokens = FilteredSearchContainer.container.querySelectorAll('.js-visual-token');\n\n // Remove all the tokens as they will be replaced by the search manager\n [].forEach.call(tokens, (el) => {\n el.parentNode.removeChild(el);\n });\n\n this.filteredSearchInput.value = '';\n }\n\n updateTokens() {\n this.removeTokens();\n\n this.loadSearchParamsFromURL();\n\n // Get the placeholder back if search is empty\n this.filteredSearchInput.dispatchEvent(new Event('input'));\n }\n\n canEdit(tokenName, tokenValue) {\n if (this.cantEdit.includes(tokenName)) return false;\n return this.cantEditWithValue.findIndex(token => token.name === tokenName &&\n token.value === tokenValue) === -1;\n }\n}\n","import Vue from 'vue';\n\nexport default new Vue();\n","export default class IssueProject {\n constructor(obj) {\n this.id = obj.id;\n this.path = obj.path;\n }\n}\n","/* eslint-disable no-unused-vars, space-before-function-paren, arrow-body-style, arrow-parens, comma-dangle, max-len */\n/* global ListLabel */\n/* global ListMilestone */\n/* global ListAssignee */\n\nimport Vue from 'vue';\nimport IssueProject from './project';\n\nclass ListIssue {\n constructor (obj, defaultAvatar) {\n this.id = obj.id;\n this.iid = obj.iid;\n this.title = obj.title;\n this.confidential = obj.confidential;\n this.dueDate = obj.due_date;\n this.subscribed = obj.subscribed;\n this.labels = [];\n this.assignees = [];\n this.selected = false;\n this.position = obj.relative_position || Infinity;\n this.isFetching = {\n subscriptions: true,\n };\n this.isLoading = {};\n this.sidebarInfoEndpoint = obj.issue_sidebar_endpoint;\n this.referencePath = obj.reference_path;\n this.path = obj.real_path;\n this.toggleSubscriptionEndpoint = obj.toggle_subscription_endpoint;\n this.milestone_id = obj.milestone_id;\n this.project_id = obj.project_id;\n\n if (obj.project) {\n this.project = new IssueProject(obj.project);\n }\n\n if (obj.milestone) {\n this.milestone = new ListMilestone(obj.milestone);\n }\n\n obj.labels.forEach((label) => {\n this.labels.push(new ListLabel(label));\n });\n\n this.assignees = obj.assignees.map(a => new ListAssignee(a, defaultAvatar));\n }\n\n addLabel (label) {\n if (!this.findLabel(label)) {\n this.labels.push(new ListLabel(label));\n }\n }\n\n findLabel (findLabel) {\n return this.labels.filter(label => label.title === findLabel.title)[0];\n }\n\n removeLabel (removeLabel) {\n if (removeLabel) {\n this.labels = this.labels.filter(label => removeLabel.title !== label.title);\n }\n }\n\n removeLabels (labels) {\n labels.forEach(this.removeLabel.bind(this));\n }\n\n addAssignee (assignee) {\n if (!this.findAssignee(assignee)) {\n this.assignees.push(new ListAssignee(assignee));\n }\n }\n\n findAssignee (findAssignee) {\n return this.assignees.filter(assignee => assignee.id === findAssignee.id)[0];\n }\n\n removeAssignee (removeAssignee) {\n if (removeAssignee) {\n this.assignees = this.assignees.filter(assignee => assignee.id !== removeAssignee.id);\n }\n }\n\n removeAllAssignees () {\n this.assignees = [];\n }\n\n getLists () {\n return gl.issueBoards.BoardsStore.state.lists.filter(list => list.findIssue(this.id));\n }\n\n updateData(newData) {\n Object.assign(this, newData);\n }\n\n setFetchingState(key, value) {\n this.isFetching[key] = value;\n }\n\n setLoadingState(key, value) {\n this.isLoading[key] = value;\n }\n\n update () {\n const data = {\n issue: {\n milestone_id: this.milestone ? this.milestone.id : null,\n due_date: this.dueDate,\n assignee_ids: this.assignees.length > 0 ? this.assignees.map((u) => u.id) : [0],\n label_ids: this.labels.map((label) => label.id)\n }\n };\n\n if (!data.issue.label_ids.length) {\n data.issue.label_ids = [''];\n }\n\n const projectPath = this.project ? this.project.path : '';\n return Vue.http.patch(`${this.path}.json`, data);\n }\n}\n\nwindow.ListIssue = ListIssue;\n\nexport default ListIssue;\n","export default (path, extraData) => path.split('&').reduce((dataParam, filterParam) => {\n if (filterParam === '') return dataParam;\n\n const data = dataParam;\n const paramSplit = filterParam.split('=');\n const paramKeyNormalized = paramSplit[0].replace('[]', '');\n const isArray = paramSplit[0].indexOf('[]');\n const value = decodeURIComponent(paramSplit[1].replace(/\\+/g, ' '));\n\n if (isArray !== -1) {\n if (!data[paramKeyNormalized]) {\n data[paramKeyNormalized] = [];\n }\n\n data[paramKeyNormalized].push(value);\n } else {\n data[paramKeyNormalized] = value;\n }\n\n return data;\n}, extraData);\n","/* eslint-disable space-before-function-paren, no-underscore-dangle, class-methods-use-this, consistent-return, no-shadow, no-param-reassign, max-len, no-unused-vars */\n/* global ListIssue */\n\nimport ListLabel from '~/vue_shared/models/label';\nimport ListAssignee from '~/vue_shared/models/assignee';\nimport queryData from '../utils/query_data';\n\nconst PER_PAGE = 20;\n\nclass List {\n constructor(obj, defaultAvatar) {\n this.id = obj.id;\n this._uid = this.guid();\n this.position = obj.position;\n this.title = obj.title;\n this.type = obj.list_type;\n this.preset = ['backlog', 'closed', 'blank'].indexOf(this.type) > -1;\n this.isExpandable = ['backlog', 'closed'].indexOf(this.type) > -1;\n this.isExpanded = true;\n this.page = 1;\n this.loading = true;\n this.loadingMore = false;\n this.issues = [];\n this.issuesSize = 0;\n this.defaultAvatar = defaultAvatar;\n\n if (obj.label) {\n this.label = new ListLabel(obj.label);\n } else if (obj.user) {\n this.assignee = new ListAssignee(obj.user);\n this.title = this.assignee.name;\n }\n\n if (this.type !== 'blank' && this.id) {\n this.getIssues().catch(() => {\n // TODO: handle request error\n });\n }\n }\n\n guid() {\n const s4 = () =>\n Math.floor((1 + Math.random()) * 0x10000)\n .toString(16)\n .substring(1);\n return `${s4()}${s4()}-${s4()}-${s4()}-${s4()}-${s4()}${s4()}${s4()}`;\n }\n\n save() {\n const entity = this.label || this.assignee;\n let entityType = '';\n if (this.label) {\n entityType = 'label_id';\n } else {\n entityType = 'assignee_id';\n }\n\n return gl.boardService\n .createList(entity.id, entityType)\n .then(res => res.data)\n .then(data => {\n this.id = data.id;\n this.type = data.list_type;\n this.position = data.position;\n\n return this.getIssues();\n });\n }\n\n destroy() {\n const index = gl.issueBoards.BoardsStore.state.lists.indexOf(this);\n gl.issueBoards.BoardsStore.state.lists.splice(index, 1);\n gl.issueBoards.BoardsStore.updateNewListDropdown(this.id);\n\n gl.boardService.destroyList(this.id).catch(() => {\n // TODO: handle request error\n });\n }\n\n update() {\n gl.boardService.updateList(this.id, this.position).catch(() => {\n // TODO: handle request error\n });\n }\n\n nextPage() {\n if (this.issuesSize > this.issues.length) {\n if (this.issues.length / PER_PAGE >= 1) {\n this.page += 1;\n }\n\n return this.getIssues(false);\n }\n }\n\n getIssues(emptyIssues = true) {\n const data = queryData(gl.issueBoards.BoardsStore.filter.path, { page: this.page });\n\n if (this.label && data.label_name) {\n data.label_name = data.label_name.filter(label => label !== this.label.title);\n }\n\n if (emptyIssues) {\n this.loading = true;\n }\n\n return gl.boardService\n .getIssuesForList(this.id, data)\n .then(res => res.data)\n .then((data) => {\n this.loading = false;\n this.issuesSize = data.size;\n\n if (emptyIssues) {\n this.issues = [];\n }\n\n this.createIssues(data.issues);\n });\n }\n\n newIssue(issue) {\n this.addIssue(issue, null, 0);\n this.issuesSize += 1;\n\n return gl.boardService\n .newIssue(this.id, issue)\n .then(res => res.data)\n .then((data) => {\n issue.id = data.id;\n issue.iid = data.iid;\n issue.project = data.project;\n issue.path = data.real_path;\n issue.referencePath = data.reference_path;\n\n if (this.issuesSize > 1) {\n const moveBeforeId = this.issues[1].id;\n gl.boardService.moveIssue(issue.id, null, null, null, moveBeforeId);\n }\n });\n }\n\n createIssues(data) {\n data.forEach(issueObj => {\n this.addIssue(new ListIssue(issueObj, this.defaultAvatar));\n });\n }\n\n addIssue(issue, listFrom, newIndex) {\n let moveBeforeId = null;\n let moveAfterId = null;\n\n if (!this.findIssue(issue.id)) {\n if (newIndex !== undefined) {\n this.issues.splice(newIndex, 0, issue);\n\n if (this.issues[newIndex - 1]) {\n moveBeforeId = this.issues[newIndex - 1].id;\n }\n\n if (this.issues[newIndex + 1]) {\n moveAfterId = this.issues[newIndex + 1].id;\n }\n } else {\n this.issues.push(issue);\n }\n\n if (this.label) {\n issue.addLabel(this.label);\n }\n\n if (this.assignee) {\n if (listFrom && listFrom.type === 'assignee') {\n issue.removeAssignee(listFrom.assignee);\n }\n issue.addAssignee(this.assignee);\n }\n\n if (listFrom) {\n this.issuesSize += 1;\n\n this.updateIssueLabel(issue, listFrom, moveBeforeId, moveAfterId);\n }\n }\n }\n\n moveIssue(issue, oldIndex, newIndex, moveBeforeId, moveAfterId) {\n this.issues.splice(oldIndex, 1);\n this.issues.splice(newIndex, 0, issue);\n\n gl.boardService.moveIssue(issue.id, null, null, moveBeforeId, moveAfterId).catch(() => {\n // TODO: handle request error\n });\n }\n\n updateIssueLabel(issue, listFrom, moveBeforeId, moveAfterId) {\n gl.boardService\n .moveIssue(issue.id, listFrom.id, this.id, moveBeforeId, moveAfterId)\n .catch(() => {\n // TODO: handle request error\n });\n }\n\n findIssue(id) {\n return this.issues.find(issue => issue.id === id);\n }\n\n removeIssue(removeIssue) {\n this.issues = this.issues.filter(issue => {\n const matchesRemove = removeIssue.id === issue.id;\n\n if (matchesRemove) {\n this.issuesSize -= 1;\n issue.removeLabel(this.label);\n }\n\n return !matchesRemove;\n });\n }\n}\n\nwindow.List = List;\n","/* eslint-disable comma-dangle, space-before-function-paren, one-var, no-shadow, dot-notation, max-len */\n/* global List */\n\nimport $ from 'jquery';\nimport _ from 'underscore';\nimport Cookies from 'js-cookie';\nimport { getUrlParamsArray } from '~/lib/utils/common_utils';\n\nwindow.gl = window.gl || {};\nwindow.gl.issueBoards = window.gl.issueBoards || {};\n\ngl.issueBoards.BoardsStore = {\n disabled: false,\n filter: {\n path: '',\n },\n state: {},\n detail: {\n issue: {},\n },\n moving: {\n issue: {},\n list: {},\n },\n create () {\n this.state.lists = [];\n this.filter.path = getUrlParamsArray().join('&');\n this.detail = {\n issue: {},\n };\n },\n addList (listObj, defaultAvatar) {\n const list = new List(listObj, defaultAvatar);\n this.state.lists.push(list);\n\n return list;\n },\n new (listObj) {\n const list = this.addList(listObj);\n const backlogList = this.findList('type', 'backlog', 'backlog');\n\n list\n .save()\n .then(() => {\n // Remove any new issues from the backlog\n // as they will be visible in the new list\n list.issues.forEach(backlogList.removeIssue.bind(backlogList));\n this.state.lists = _.sortBy(this.state.lists, 'position');\n })\n .catch(() => {\n // https://gitlab.com/gitlab-org/gitlab-ce/issues/30821\n });\n this.removeBlankState();\n },\n updateNewListDropdown (listId) {\n $(`.js-board-list-${listId}`).removeClass('is-active');\n },\n shouldAddBlankState () {\n // Decide whether to add the blank state\n return !(this.state.lists.filter(list => list.type !== 'backlog' && list.type !== 'closed')[0]);\n },\n addBlankState () {\n if (!this.shouldAddBlankState() || this.welcomeIsHidden() || this.disabled) return;\n\n this.addList({\n id: 'blank',\n list_type: 'blank',\n title: 'Welcome to your Issue Board!',\n position: 0\n });\n\n this.state.lists = _.sortBy(this.state.lists, 'position');\n },\n removeBlankState () {\n this.removeList('blank');\n\n Cookies.set('issue_board_welcome_hidden', 'true', {\n expires: 365 * 10,\n path: ''\n });\n },\n welcomeIsHidden () {\n return Cookies.get('issue_board_welcome_hidden') === 'true';\n },\n removeList (id, type = 'blank') {\n const list = this.findList('id', id, type);\n\n if (!list) return;\n\n this.state.lists = this.state.lists.filter(list => list.id !== id);\n },\n moveList (listFrom, orderLists) {\n orderLists.forEach((id, i) => {\n const list = this.findList('id', parseInt(id, 10));\n\n list.position = i;\n });\n listFrom.update();\n },\n moveIssueToList (listFrom, listTo, issue, newIndex) {\n const issueTo = listTo.findIssue(issue.id);\n const issueLists = issue.getLists();\n const listLabels = issueLists.map(listIssue => listIssue.label);\n\n if (!issueTo) {\n // Check if target list assignee is already present in this issue\n if ((listTo.type === 'assignee' && listFrom.type === 'assignee') &&\n issue.findAssignee(listTo.assignee)) {\n const targetIssue = listTo.findIssue(issue.id);\n targetIssue.removeAssignee(listFrom.assignee);\n } else {\n // Add to new lists issues if it doesn't already exist\n listTo.addIssue(issue, listFrom, newIndex);\n }\n } else {\n listTo.updateIssueLabel(issue, listFrom);\n issueTo.removeLabel(listFrom.label);\n }\n\n if (listTo.type === 'closed' && listFrom.type !== 'backlog') {\n issueLists.forEach((list) => {\n list.removeIssue(issue);\n });\n issue.removeLabels(listLabels);\n } else if (listTo.type === 'backlog' && listFrom.type === 'assignee') {\n issue.removeAssignee(listFrom.assignee);\n listFrom.removeIssue(issue);\n } else if ((listTo.type !== 'label' && listFrom.type === 'assignee') ||\n (listTo.type !== 'assignee' && listFrom.type === 'label')) {\n listFrom.removeIssue(issue);\n }\n },\n moveIssueInList (list, issue, oldIndex, newIndex, idArray) {\n const beforeId = parseInt(idArray[newIndex - 1], 10) || null;\n const afterId = parseInt(idArray[newIndex + 1], 10) || null;\n\n list.moveIssue(issue, oldIndex, newIndex, beforeId, afterId);\n },\n findList (key, val, type = 'label') {\n const filteredList = this.state.lists.filter((list) => {\n const byType = type ? (list.type === type) || (list.type === 'assignee') : true;\n\n return list[key] === val && byType;\n });\n return filteredList[0];\n },\n updateFiltersUrl () {\n history.pushState(null, null, `?${this.filter.path}`);\n }\n};\n","import axios from '../../lib/utils/axios_utils';\nimport { mergeUrlParams } from '../../lib/utils/url_utility';\n\nexport default class BoardService {\n constructor({ boardsEndpoint, listsEndpoint, bulkUpdatePath, boardId }) {\n this.boardsEndpoint = boardsEndpoint;\n this.boardId = boardId;\n this.listsEndpoint = listsEndpoint;\n this.listsEndpointGenerate = `${listsEndpoint}/generate.json`;\n this.bulkUpdatePath = bulkUpdatePath;\n }\n\n generateBoardsPath(id) {\n return `${this.boardsEndpoint}${id ? `/${id}` : ''}.json`;\n }\n\n generateIssuesPath(id) {\n return `${this.listsEndpoint}${id ? `/${id}` : ''}/issues`;\n }\n\n static generateIssuePath(boardId, id) {\n return `${gon.relative_url_root}/-/boards/${boardId ? `${boardId}` : ''}/issues${id ? `/${id}` : ''}`;\n }\n\n all() {\n return axios.get(this.listsEndpoint);\n }\n\n generateDefaultLists() {\n return axios.post(this.listsEndpointGenerate, {});\n }\n\n createList(entityId, entityType) {\n const list = {\n [entityType]: entityId,\n };\n\n return axios.post(this.listsEndpoint, {\n list,\n });\n }\n\n updateList(id, position) {\n return axios.put(`${this.listsEndpoint}/${id}`, {\n list: {\n position,\n },\n });\n }\n\n destroyList(id) {\n return axios.delete(`${this.listsEndpoint}/${id}`);\n }\n\n getIssuesForList(id, filter = {}) {\n const data = { id };\n Object.keys(filter).forEach((key) => { data[key] = filter[key]; });\n\n return axios.get(mergeUrlParams(data, this.generateIssuesPath(id)));\n }\n\n moveIssue(id, fromListId = null, toListId = null, moveBeforeId = null, moveAfterId = null) {\n return axios.put(BoardService.generateIssuePath(this.boardId, id), {\n from_list_id: fromListId,\n to_list_id: toListId,\n move_before_id: moveBeforeId,\n move_after_id: moveAfterId,\n });\n }\n\n newIssue(id, issue) {\n return axios.post(this.generateIssuesPath(id), {\n issue,\n });\n }\n\n getBacklog(data) {\n return axios.get(mergeUrlParams(data, `${gon.relative_url_root}/-/boards/${this.boardId}/issues.json`));\n }\n\n bulkUpdate(issueIds, extraData = {}) {\n const data = {\n update: Object.assign(extraData, {\n issuable_ids: issueIds.join(','),\n }),\n };\n\n return axios.post(this.bulkUpdatePath, data);\n }\n\n static getIssueInfo(endpoint) {\n return axios.get(endpoint);\n }\n\n static toggleIssueSubscription(endpoint) {\n return axios.post(endpoint);\n }\n}\n\nwindow.BoardService = BoardService;\n","import ModalStore from '../stores/modal_store';\n\nexport default {\n methods: {\n toggleModal(toggle) {\n ModalStore.store.showAddIssuesModal = toggle;\n },\n changeTab(tab) {\n ModalStore.store.activeTab = tab;\n },\n },\n};\n","export default {\n animation: 200,\n forceFallback: true,\n fallbackClass: 'is-dragging',\n fallbackOnBody: true,\n ghostClass: 'is-ghost',\n};\n","/* eslint-disable no-unused-vars, no-mixed-operators, comma-dangle */\n/* global DocumentTouch */\n\nimport $ from 'jquery';\nimport sortableConfig from '../../sortable/sortable_config';\n\nwindow.gl = window.gl || {};\nwindow.gl.issueBoards = window.gl.issueBoards || {};\n\ngl.issueBoards.onStart = () => {\n $('.has-tooltip').tooltip('hide')\n .tooltip('disable');\n document.body.classList.add('is-dragging');\n};\n\ngl.issueBoards.onEnd = () => {\n $('.has-tooltip').tooltip('enable');\n document.body.classList.remove('is-dragging');\n};\n\ngl.issueBoards.touchEnabled = ('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch;\n\ngl.issueBoards.getBoardSortableDefaultOptions = (obj) => {\n const defaultSortOptions = Object.assign({}, sortableConfig, {\n filter: '.board-delete, .btn',\n delay: gl.issueBoards.touchEnabled ? 100 : 0,\n scrollSensitivity: gl.issueBoards.touchEnabled ? 60 : 100,\n scrollSpeed: 20,\n onStart: gl.issueBoards.onStart,\n onEnd: gl.issueBoards.onEnd,\n });\n\n Object.keys(obj).forEach((key) => { defaultSortOptions[key] = obj[key]; });\n return defaultSortOptions;\n};\n","/* global dateFormat */\n\nimport Vue from 'vue';\n\nVue.filter('due-date', (value) => {\n const date = new Date(value);\n return dateFormat(date, 'mmm d, yyyy', true);\n});\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project_select.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./project_select.vue?vue&type=script&lang=js\"","\n\n\n \n \n Project\n \n \n \n {{ selectedProjectName }}\n \n \n \n \n \n Projects\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n","import { render, staticRenderFns } from \"./project_select.vue?vue&type=template&id=b4f04adc\"\nimport script from \"./project_select.vue?vue&type=script&lang=js\"\nexport * from \"./project_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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('label',{staticClass:\"label-light prepend-top-10\"},[_vm._v(\"\\n Project\\n \")]),_vm._v(\" \"),_c('div',{ref:\"projectsDropdown\",staticClass:\"dropdown\"},[_c('button',{staticClass:\"dropdown-menu-toggle wide\",attrs:{\"type\":\"button\",\"data-toggle\":\"dropdown\",\"aria-expanded\":\"false\"}},[_vm._v(\"\\n \"+_vm._s(_vm.selectedProjectName)+\"\\n \"),_c('i',{staticClass:\"fa fa-chevron-down\",attrs:{\"aria-hidden\":\"true\"}})]),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-menu dropdown-menu-selectable dropdown-menu-full-width\"},[_vm._m(0),_vm._v(\" \"),_vm._m(1),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-content\"}),_vm._v(\" \"),_c('div',{staticClass:\"dropdown-loading\"},[_c('loading-icon')],1)])])])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dropdown-title\"},[_c('span',[_vm._v(\"Projects\")]),_vm._v(\" \"),_c('button',{staticClass:\"dropdown-title-button dropdown-menu-close\",attrs:{\"aria-label\":\"Close\",\"type\":\"button\"}},[_c('i',{staticClass:\"fa fa-times dropdown-menu-close-icon\",attrs:{\"aria-hidden\":\"true\",\"data-hidden\":\"true\"}})])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dropdown-input\"},[_c('input',{staticClass:\"dropdown-input-field\",attrs:{\"type\":\"search\",\"placeholder\":\"Search projects\"}}),_vm._v(\" \"),_c('i',{staticClass:\"fa fa-search dropdown-input-search\",attrs:{\"aria-hidden\":\"true\",\"data-hidden\":\"true\"}})])}]\n\nexport { render, staticRenderFns }","\n\n\n \n \n \n \n \n An error occurred. Please try again.\n \n \n \n Title\n \n \n \n \n \n Submit issue\n \n \n Cancel\n \n \n \n \n \n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./board_new_issue.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./board_new_issue.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./board_new_issue.vue?vue&type=template&id=8533b246\"\nimport script from \"./board_new_issue.vue?vue&type=script&lang=js\"\nexport * from \"./board_new_issue.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"board-new-issue-form\"},[_c('div',{staticClass:\"board-card\"},[_c('form',{on:{\"submit\":function($event){_vm.submit($event)}}},[(_vm.error)?_c('div',{staticClass:\"flash-container\"},[_c('div',{staticClass:\"flash-alert\"},[_vm._v(\"\\n An error occurred. Please try again.\\n \")])]):_vm._e(),_vm._v(\" \"),_c('label',{staticClass:\"label-light\",attrs:{\"for\":_vm.list.id + '-title'}},[_vm._v(\"\\n Title\\n \")]),_vm._v(\" \"),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.title),expression:\"title\"}],ref:\"input\",staticClass:\"form-control\",attrs:{\"type\":\"text\",\"autocomplete\":\"off\",\"id\":_vm.list.id + '-title'},domProps:{\"value\":(_vm.title)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.title=$event.target.value}}}),_vm._v(\" \"),(_vm.groupId)?_c('project-select',{attrs:{\"group-id\":_vm.groupId}}):_vm._e(),_vm._v(\" \"),_c('div',{staticClass:\"clearfix prepend-top-10\"},[_c('button',{ref:\"submit-button\",staticClass:\"btn btn-success float-left\",attrs:{\"type\":\"submit\",\"disabled\":_vm.disabled}},[_vm._v(\"\\n Submit issue\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default float-right\",attrs:{\"type\":\"button\"},on:{\"click\":_vm.cancel}},[_vm._v(\"\\n Cancel\\n \")])])],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import $ from 'jquery';\nimport Vue from 'vue';\nimport UserAvatarLink from '../../vue_shared/components/user_avatar/user_avatar_link.vue';\nimport eventHub from '../eventhub';\n\nconst Store = gl.issueBoards.BoardsStore;\n\nwindow.gl = window.gl || {};\nwindow.gl.issueBoards = window.gl.issueBoards || {};\n\ngl.issueBoards.IssueCardInner = Vue.extend({\n props: {\n issue: {\n type: Object,\n required: true,\n },\n issueLinkBase: {\n type: String,\n required: true,\n },\n list: {\n type: Object,\n required: false,\n default: () => ({}),\n },\n rootPath: {\n type: String,\n required: true,\n },\n updateFilters: {\n type: Boolean,\n required: false,\n default: false,\n },\n groupId: {\n type: Number,\n required: false,\n },\n },\n data() {\n return {\n limitBeforeCounter: 3,\n maxRender: 4,\n maxCounter: 99,\n };\n },\n components: {\n UserAvatarLink,\n },\n computed: {\n numberOverLimit() {\n return this.issue.assignees.length - this.limitBeforeCounter;\n },\n assigneeCounterTooltip() {\n return `${this.assigneeCounterLabel} more`;\n },\n assigneeCounterLabel() {\n if (this.numberOverLimit > this.maxCounter) {\n return `${this.maxCounter}+`;\n }\n\n return `+${this.numberOverLimit}`;\n },\n shouldRenderCounter() {\n if (this.issue.assignees.length <= this.maxRender) {\n return false;\n }\n\n return this.issue.assignees.length > this.numberOverLimit;\n },\n issueId() {\n if (this.issue.iid) {\n return `#${this.issue.iid}`;\n }\n return false;\n },\n showLabelFooter() {\n return this.issue.labels.find(l => this.showLabel(l)) !== undefined;\n },\n },\n methods: {\n isIndexLessThanlimit(index) {\n return index < this.limitBeforeCounter;\n },\n shouldRenderAssignee(index) {\n // Eg. maxRender is 4,\n // Render up to all 4 assignees if there are only 4 assigness\n // Otherwise render up to the limitBeforeCounter\n if (this.issue.assignees.length <= this.maxRender) {\n return index < this.maxRender;\n }\n\n return index < this.limitBeforeCounter;\n },\n assigneeUrl(assignee) {\n return `${this.rootPath}${assignee.username}`;\n },\n assigneeUrlTitle(assignee) {\n return `Assigned to ${assignee.name}`;\n },\n avatarUrlTitle(assignee) {\n return `Avatar for ${assignee.name}`;\n },\n showLabel(label) {\n if (!label.id) return false;\n return true;\n },\n filterByLabel(label, e) {\n if (!this.updateFilters) return;\n\n const filterPath = gl.issueBoards.BoardsStore.filter.path.split('&');\n const labelTitle = encodeURIComponent(label.title);\n const param = `label_name[]=${labelTitle}`;\n const labelIndex = filterPath.indexOf(param);\n $(e.currentTarget).tooltip('hide');\n\n if (labelIndex === -1) {\n filterPath.push(param);\n } else {\n filterPath.splice(labelIndex, 1);\n }\n\n gl.issueBoards.BoardsStore.filter.path = filterPath.join('&');\n\n Store.updateFiltersUrl();\n\n eventHub.$emit('updateTokens');\n },\n labelStyle(label) {\n return {\n backgroundColor: label.color,\n color: label.textColor,\n };\n },\n },\n template: `\n \n \n \n \n {{ issue.title }}\n \n {{ issue.referencePath }}\n \n \n \n \n \n {{ assigneeCounterLabel }}\n \n \n \n \n \n `,\n});\n","\n\n\n \n \n \n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./board_card.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./board_card.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./board_card.vue?vue&type=template&id=4763a0f4\"\nimport script from \"./board_card.vue?vue&type=script&lang=js\"\nexport * from \"./board_card.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{staticClass:\"board-card\",class:{\n 'user-can-drag': !_vm.disabled && _vm.issue.id,\n 'is-disabled': _vm.disabled || !_vm.issue.id,\n 'is-active': _vm.issueDetailVisible\n },attrs:{\"index\":_vm.index,\"data-issue-id\":_vm.issue.id},on:{\"mousedown\":_vm.mouseDown,\"mousemove\":_vm.mouseMove,\"mouseup\":function($event){_vm.showIssue($event)}}},[_c('issue-card-inner',{attrs:{\"list\":_vm.list,\"issue\":_vm.issue,\"issue-link-base\":_vm.issueLinkBase,\"group-id\":_vm.groupId,\"root-path\":_vm.rootPath,\"update-filters\":true}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n \n \n \n \n \n \n \n \n \n \n Showing all issues\n \n \n Showing {{ list.issues.length }} of {{ list.issuesSize }} issues\n \n \n \n \n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./board_list.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./board_list.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./board_list.vue?vue&type=template&id=4351ab7a\"\nimport script from \"./board_list.vue?vue&type=script&lang=js\"\nexport * from \"./board_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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"board-list-component\"},[(_vm.loading)?_c('div',{staticClass:\"board-list-loading text-center\",attrs:{\"aria-label\":\"Loading issues\"}},[_c('loading-icon')],1):_vm._e(),_vm._v(\" \"),(_vm.list.type !== 'closed' && _vm.showIssueForm)?_c('board-new-issue',{attrs:{\"group-id\":_vm.groupId,\"list\":_vm.list}}):_vm._e(),_vm._v(\" \"),_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.loading),expression:\"!loading\"}],ref:\"list\",staticClass:\"board-list js-board-list\",class:{ 'is-smaller': _vm.showIssueForm },attrs:{\"data-board\":_vm.list.id,\"data-board-type\":_vm.list.type}},[_vm._l((_vm.issues),function(issue,index){return _c('board-card',{key:issue.id,ref:\"issue\",refInFor:true,attrs:{\"index\":index,\"list\":_vm.list,\"issue\":issue,\"issue-link-base\":_vm.issueLinkBase,\"group-id\":_vm.groupId,\"root-path\":_vm.rootPath,\"disabled\":_vm.disabled}})}),_vm._v(\" \"),(_vm.showCount)?_c('li',{staticClass:\"board-list-count text-center\",attrs:{\"data-issue-id\":\"-1\"}},[_c('loading-icon',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.list.loadingMore),expression:\"list.loadingMore\"}],attrs:{\"label\":\"Loading more issues\"}}),_vm._v(\" \"),(_vm.list.issues.length === _vm.list.issuesSize)?_c('span',[_vm._v(\"\\n Showing all issues\\n \")]):_c('span',[_vm._v(\"\\n Showing \"+_vm._s(_vm.list.issues.length)+\" of \"+_vm._s(_vm.list.issuesSize)+\" issues\\n \")])],1):_vm._e()],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n \n \n Add the following default lists to your Issue Board with one click:\n \n \n \n \n \n {{ label.title }}\n \n \n \n Starting out with the default set of lists will get you\n right on the way to making the most of your board.\n \n \n Add default lists\n \n \n Nevermind, I'll use my own\n \n \n\n","import mod from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./board_blank_state.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./board_blank_state.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./board_blank_state.vue?vue&type=template&id=ad031510\"\nimport script from \"./board_blank_state.vue?vue&type=script&lang=js\"\nexport * from \"./board_blank_state.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"board-blank-state\"},[_c('p',[_vm._v(\"\\n Add the following default lists to your Issue Board with one click:\\n \")]),_vm._v(\" \"),_c('ul',{staticClass:\"board-blank-state-list\"},_vm._l((_vm.predefinedLabels),function(label,index){return _c('li',{key:index},[_c('span',{staticClass:\"label-color\",style:({ backgroundColor: label.color })}),_vm._v(\"\\n \"+_vm._s(label.title)+\"\\n \")])})),_vm._v(\" \"),_c('p',[_vm._v(\"\\n Starting out with the default set of lists will get you\\n right on the way to making the most of your board.\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-create btn-inverted btn-block\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.addDefaultLists($event)}}},[_vm._v(\"\\n Add default lists\\n \")]),_vm._v(\" \"),_c('button',{staticClass:\"btn btn-default btn-block\",attrs:{\"type\":\"button\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.clearBlankState($event)}}},[_vm._v(\"\\n Nevermind, I'll use my own\\n \")])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/* eslint-disable comma-dangle, space-before-function-paren, no-alert */\n\nimport $ from 'jquery';\nimport Vue from 'vue';\n\nwindow.gl = window.gl || {};\nwindow.gl.issueBoards = window.gl.issueBoards || {};\n\ngl.issueBoards.BoardDelete = Vue.extend({\n props: {\n list: Object\n },\n methods: {\n deleteBoard () {\n $(this.$el).tooltip('hide');\n\n if (confirm('Are you sure you want to delete this list?')) {\n this.list.destroy();\n }\n }\n }\n});\n","/* eslint-disable comma-dangle, space-before-function-paren, one-var */\n\nimport $ from 'jquery';\nimport Sortable from 'sortablejs';\nimport Vue from 'vue';\nimport AccessorUtilities from '../../lib/utils/accessor';\nimport boardList from './board_list.vue';\nimport BoardBlankState from './board_blank_state.vue';\nimport './board_delete';\n\nconst Store = gl.issueBoards.BoardsStore;\n\nwindow.gl = window.gl || {};\nwindow.gl.issueBoards = window.gl.issueBoards || {};\n\ngl.issueBoards.Board = Vue.extend({\n template: '#js-board-template',\n components: {\n boardList,\n 'board-delete': gl.issueBoards.BoardDelete,\n BoardBlankState,\n },\n props: {\n list: Object,\n disabled: Boolean,\n issueLinkBase: String,\n rootPath: String,\n boardId: {\n type: String,\n required: true,\n },\n },\n data () {\n return {\n detailIssue: Store.detail,\n filter: Store.filter,\n };\n },\n watch: {\n filter: {\n handler() {\n this.list.page = 1;\n this.list.getIssues(true)\n .catch(() => {\n // TODO: handle request error\n });\n },\n deep: true,\n },\n detailIssue: {\n handler () {\n if (!Object.keys(this.detailIssue.issue).length) return;\n\n const issue = this.list.findIssue(this.detailIssue.issue.id);\n\n if (issue) {\n const offsetLeft = this.$el.offsetLeft;\n const boardsList = document.querySelectorAll('.boards-list')[0];\n const left = boardsList.scrollLeft - offsetLeft;\n let right = (offsetLeft + this.$el.offsetWidth);\n\n if (window.innerWidth > 768 && boardsList.classList.contains('is-compact')) {\n // -290 here because width of boardsList is animating so therefore\n // getting the width here is incorrect\n // 290 is the width of the sidebar\n right -= (boardsList.offsetWidth - 290);\n } else {\n right -= boardsList.offsetWidth;\n }\n\n if (right - boardsList.scrollLeft > 0) {\n $(boardsList).animate({\n scrollLeft: right\n }, this.sortableOptions.animation);\n } else if (left > 0) {\n $(boardsList).animate({\n scrollLeft: offsetLeft\n }, this.sortableOptions.animation);\n }\n }\n },\n deep: true\n }\n },\n methods: {\n showNewIssueForm() {\n this.$refs['board-list'].showIssueForm = !this.$refs['board-list'].showIssueForm;\n },\n toggleExpanded(e) {\n if (this.list.isExpandable && !e.target.classList.contains('js-no-trigger-collapse')) {\n this.list.isExpanded = !this.list.isExpanded;\n\n if (AccessorUtilities.isLocalStorageAccessSafe()) {\n localStorage.setItem(`boards.${this.boardId}.${this.list.type}.expanded`, this.list.isExpanded);\n }\n }\n },\n },\n mounted () {\n this.sortableOptions = gl.issueBoards.getBoardSortableDefaultOptions({\n disabled: this.disabled,\n group: 'boards',\n draggable: '.is-draggable',\n handle: '.js-board-handle',\n onEnd: (e) => {\n gl.issueBoards.onEnd();\n\n if (e.newIndex !== undefined && e.oldIndex !== e.newIndex) {\n const order = this.sortable.toArray();\n const list = Store.findList('id', parseInt(e.item.dataset.id, 10));\n\n this.$nextTick(() => {\n Store.moveList(list, order);\n });\n }\n }\n });\n\n this.sortable = Sortable.create(this.$el.parentNode, this.sortableOptions);\n },\n created() {\n if (this.list.isExpandable && AccessorUtilities.isLocalStorageAccessSafe()) {\n const isCollapsed = localStorage.getItem(`boards.${this.boardId}.${this.list.type}.expanded`) === 'false';\n\n this.list.isExpanded = !isCollapsed;\n }\n },\n});\n","import Vue from 'vue';\nimport Flash from '../../../flash';\nimport { __ } from '../../../locale';\n\nconst Store = gl.issueBoards.BoardsStore;\n\nwindow.gl = window.gl || {};\nwindow.gl.issueBoards = window.gl.issueBoards || {};\n\ngl.issueBoards.RemoveIssueBtn = Vue.extend({\n props: {\n issue: {\n type: Object,\n required: true,\n },\n list: {\n type: Object,\n required: true,\n },\n },\n computed: {\n updateUrl() {\n return this.issue.path;\n },\n },\n methods: {\n removeIssue() {\n const issue = this.issue;\n const lists = issue.getLists();\n const listLabelIds = lists.map(list => list.label.id);\n\n let labelIds = issue.labels\n .map(label => label.id)\n .filter(id => !listLabelIds.includes(id));\n if (labelIds.length === 0) {\n labelIds = [''];\n }\n\n const data = {\n issue: {\n label_ids: labelIds,\n },\n };\n\n // Post the remove data\n Vue.http.patch(this.updateUrl, data).catch(() => {\n Flash(__('Failed to remove issue from board, please try again.'));\n\n lists.forEach((list) => {\n list.addIssue(issue);\n });\n });\n\n // Remove from the frontend store\n lists.forEach((list) => {\n list.removeIssue(issue);\n });\n\n Store.detail.issue = {};\n },\n },\n template: `\n \n \n Remove from board\n \n \n `,\n});\n","/* eslint-disable comma-dangle, space-before-function-paren, no-new */\n\nimport $ from 'jquery';\nimport Vue from 'vue';\nimport Flash from '../../flash';\nimport { __ } from '../../locale';\nimport Sidebar from '../../right_sidebar';\nimport eventHub from '../../sidebar/event_hub';\nimport assigneeTitle from '../../sidebar/components/assignees/assignee_title.vue';\nimport assignees from '../../sidebar/components/assignees/assignees.vue';\nimport DueDateSelectors from '../../due_date_select';\nimport './sidebar/remove_issue';\nimport IssuableContext from '../../issuable_context';\nimport LabelsSelect from '../../labels_select';\nimport subscriptions from '../../sidebar/components/subscriptions/subscriptions.vue';\nimport MilestoneSelect from '../../milestone_select';\n\nconst Store = gl.issueBoards.BoardsStore;\n\nwindow.gl = window.gl || {};\nwindow.gl.issueBoards = window.gl.issueBoards || {};\n\ngl.issueBoards.BoardSidebar = Vue.extend({\n props: {\n currentUser: Object\n },\n data() {\n return {\n detail: Store.detail,\n issue: {},\n list: {},\n loadingAssignees: false,\n };\n },\n computed: {\n showSidebar () {\n return Object.keys(this.issue).length;\n },\n milestoneTitle() {\n return this.issue.milestone ? this.issue.milestone.title : 'No Milestone';\n },\n canRemove() {\n return !this.list.preset;\n },\n },\n watch: {\n detail: {\n handler () {\n if (this.issue.id !== this.detail.issue.id) {\n $('.block.assignee')\n .find('input:not(.js-vue)[name=\"issue[assignee_ids][]\"]')\n .each((i, el) => {\n $(el).remove();\n });\n\n $('.js-issue-board-sidebar', this.$el).each((i, el) => {\n $(el).data('glDropdown').clearMenu();\n });\n }\n\n this.issue = this.detail.issue;\n this.list = this.detail.list;\n },\n deep: true\n },\n },\n methods: {\n closeSidebar () {\n this.detail.issue = {};\n },\n assignSelf () {\n // Notify gl dropdown that we are now assigning to current user\n this.$refs.assigneeBlock.dispatchEvent(new Event('assignYourself'));\n\n this.addAssignee(this.currentUser);\n this.saveAssignees();\n },\n removeAssignee (a) {\n gl.issueBoards.BoardsStore.detail.issue.removeAssignee(a);\n },\n addAssignee (a) {\n gl.issueBoards.BoardsStore.detail.issue.addAssignee(a);\n },\n removeAllAssignees () {\n gl.issueBoards.BoardsStore.detail.issue.removeAllAssignees();\n },\n saveAssignees () {\n this.loadingAssignees = true;\n\n gl.issueBoards.BoardsStore.detail.issue.update()\n .then(() => {\n this.loadingAssignees = false;\n })\n .catch(() => {\n this.loadingAssignees = false;\n Flash(__('An error occurred while saving assignees'));\n });\n },\n },\n created () {\n // Get events from glDropdown\n eventHub.$on('sidebar.removeAssignee', this.removeAssignee);\n eventHub.$on('sidebar.addAssignee', this.addAssignee);\n eventHub.$on('sidebar.removeAllAssignees', this.removeAllAssignees);\n eventHub.$on('sidebar.saveAssignees', this.saveAssignees);\n },\n beforeDestroy() {\n eventHub.$off('sidebar.removeAssignee', this.removeAssignee);\n eventHub.$off('sidebar.addAssignee', this.addAssignee);\n eventHub.$off('sidebar.removeAllAssignees', this.removeAllAssignees);\n eventHub.$off('sidebar.saveAssignees', this.saveAssignees);\n },\n mounted () {\n new IssuableContext(this.currentUser);\n new MilestoneSelect();\n new DueDateSelectors();\n new LabelsSelect();\n new Sidebar();\n },\n components: {\n assigneeTitle,\n assignees,\n removeBtn: gl.issueBoards.RemoveIssueBtn,\n subscriptions,\n },\n});\n","/* eslint-disable func-names, no-new, space-before-function-paren, one-var, promise/catch-or-return, max-len */\n\nimport $ from 'jquery';\nimport axios from '~/lib/utils/axios_utils';\nimport _ from 'underscore';\nimport CreateLabelDropdown from '../../create_label';\n\nwindow.gl = window.gl || {};\nwindow.gl.issueBoards = window.gl.issueBoards || {};\n\nconst Store = gl.issueBoards.BoardsStore;\n\n$(document).off('created.label').on('created.label', (e, label) => {\n Store.new({\n title: label.title,\n position: Store.state.lists.length - 2,\n list_type: 'label',\n label: {\n id: label.id,\n title: label.title,\n color: label.color,\n },\n });\n});\n\ngl.issueBoards.newListDropdownInit = () => {\n $('.js-new-board-list').each(function () {\n const $this = $(this);\n new CreateLabelDropdown($this.closest('.dropdown').find('.dropdown-new-label'), $this.data('namespacePath'), $this.data('projectPath'));\n\n $this.glDropdown({\n data(term, callback) {\n axios.get($this.attr('data-list-labels-path'))\n .then(({ data }) => {\n callback(data);\n });\n },\n renderRow (label) {\n const active = Store.findList('title', label.title);\n const $li = $('');\n const $a = $('', {\n class: (active ? `is-active js-board-list-${active.id}` : ''),\n text: label.title,\n href: '#',\n });\n const $labelColor = $('', {\n class: 'dropdown-label-box',\n style: `background-color: ${label.color}`,\n });\n\n return $li.append($a.prepend($labelColor));\n },\n search: {\n fields: ['title'],\n },\n filterable: true,\n selectable: true,\n multiSelect: true,\n containerSelector: '.js-tab-container-labels .dropdown-page-one .dropdown-content',\n clicked (options) {\n const { e } = options;\n const label = options.selectedObj;\n e.preventDefault();\n\n if (!Store.findList('title', label.title)) {\n Store.new({\n title: label.title,\n position: Store.state.lists.length - 2,\n list_type: 'label',\n label: {\n id: label.id,\n title: label.title,\n color: label.color,\n },\n });\n\n Store.state.lists = _.sortBy(Store.state.lists, 'position');\n }\n },\n });\n });\n};\n","import FilteredSearchBoards from '../../filtered_search_boards';\nimport FilteredSearchContainer from '../../../filtered_search/container';\n\nexport default {\n name: 'modal-filters',\n props: {\n store: {\n type: Object,\n required: true,\n },\n },\n mounted() {\n FilteredSearchContainer.container = this.$el;\n\n this.filteredSearch = new FilteredSearchBoards(this.store);\n this.filteredSearch.setup();\n this.filteredSearch.removeTokens();\n this.filteredSearch.handleInputPlaceholder();\n this.filteredSearch.toggleClearSearchButton();\n },\n destroyed() {\n this.filteredSearch.cleanup();\n FilteredSearchContainer.container = document;\n this.store.path = '';\n },\n template: '#js-board-modal-filter',\n};\n","import Vue from 'vue';\nimport ModalStore from '../../stores/modal_store';\nimport modalMixin from '../../mixins/modal_mixins';\n\ngl.issueBoards.ModalTabs = Vue.extend({\n mixins: [modalMixin],\n data() {\n return ModalStore.store;\n },\n computed: {\n selectedCount() {\n return ModalStore.selectedCount();\n },\n },\n destroyed() {\n this.activeTab = 'all';\n },\n template: `\n \n \n \n \n Open issues\n \n {{ issuesCount }}\n \n \n \n \n \n Selected issues\n \n {{ selectedCount }}\n \n \n \n \n \n `,\n});\n","import Vue from 'vue';\nimport modalFilters from './filters';\nimport './tabs';\nimport ModalStore from '../../stores/modal_store';\nimport modalMixin from '../../mixins/modal_mixins';\n\ngl.issueBoards.ModalHeader = Vue.extend({\n mixins: [modalMixin],\n props: {\n projectId: {\n type: Number,\n required: true,\n },\n milestonePath: {\n type: String,\n required: true,\n },\n labelPath: {\n type: String,\n required: true,\n },\n },\n data() {\n return ModalStore.store;\n },\n computed: {\n selectAllText() {\n if (ModalStore.selectedCount() !== this.issues.length || this.issues.length === 0) {\n return 'Select all';\n }\n\n return 'Deselect all';\n },\n showSearch() {\n return this.activeTab === 'all' && !this.loading && this.issuesCount > 0;\n },\n },\n methods: {\n toggleAll() {\n this.$refs.selectAllBtn.blur();\n\n ModalStore.toggleAll();\n },\n },\n components: {\n 'modal-tabs': gl.issueBoards.ModalTabs,\n modalFilters,\n },\n template: `\n \n \n \n Add issues\n \n ×\n \n \n \n 0\">\n \n \n \n {{ selectAllText }}\n \n \n \n `,\n});\n","import Vue from 'vue';\nimport bp from '../../../breakpoints';\nimport ModalStore from '../../stores/modal_store';\n\ngl.issueBoards.ModalList = Vue.extend({\n props: {\n issueLinkBase: {\n type: String,\n required: true,\n },\n rootPath: {\n type: String,\n required: true,\n },\n emptyStateSvg: {\n type: String,\n required: true,\n },\n },\n data() {\n return ModalStore.store;\n },\n watch: {\n activeTab() {\n if (this.activeTab === 'all') {\n ModalStore.purgeUnselectedIssues();\n }\n },\n },\n computed: {\n loopIssues() {\n if (this.activeTab === 'all') {\n return this.issues;\n }\n\n return this.selectedIssues;\n },\n groupedIssues() {\n const groups = [];\n this.loopIssues.forEach((issue, i) => {\n const index = i % this.columns;\n\n if (!groups[index]) {\n groups.push([]);\n }\n\n groups[index].push(issue);\n });\n\n return groups;\n },\n },\n methods: {\n scrollHandler() {\n const currentPage = Math.floor(this.issues.length / this.perPage);\n\n if (\n this.scrollTop() > this.scrollHeight() - 100 &&\n !this.loadingNewPage &&\n currentPage === this.page\n ) {\n this.loadingNewPage = true;\n this.page += 1;\n }\n },\n toggleIssue(e, issue) {\n if (e.target.tagName !== 'A') {\n ModalStore.toggleIssue(issue);\n }\n },\n listHeight() {\n return this.$refs.list.getBoundingClientRect().height;\n },\n scrollHeight() {\n return this.$refs.list.scrollHeight;\n },\n scrollTop() {\n return this.$refs.list.scrollTop + this.listHeight();\n },\n showIssue(issue) {\n if (this.activeTab === 'all') return true;\n\n const index = ModalStore.selectedIssueIndex(issue);\n\n return index !== -1;\n },\n setColumnCount() {\n const breakpoint = bp.getBreakpointSize();\n\n if (breakpoint === 'lg' || breakpoint === 'md') {\n this.columns = 3;\n } else if (breakpoint === 'sm') {\n this.columns = 2;\n } else {\n this.columns = 1;\n }\n },\n },\n mounted() {\n this.scrollHandlerWrapper = this.scrollHandler.bind(this);\n this.setColumnCountWrapper = this.setColumnCount.bind(this);\n this.setColumnCount();\n\n this.$refs.list.addEventListener('scroll', this.scrollHandlerWrapper);\n window.addEventListener('resize', this.setColumnCountWrapper);\n },\n beforeDestroy() {\n this.$refs.list.removeEventListener('scroll', this.scrollHandlerWrapper);\n window.removeEventListener('resize', this.setColumnCountWrapper);\n },\n components: {\n 'issue-card-inner': gl.issueBoards.IssueCardInner,\n },\n template: `\n \n 0 && issues.length === 0\">\n \n \n \n \n \n There are no issues to show.\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n});\n","import Vue from 'vue';\nimport ModalStore from '../../stores/modal_store';\n\ngl.issueBoards.ModalFooterListsDropdown = Vue.extend({\n data() {\n return {\n modal: ModalStore.store,\n state: gl.issueBoards.BoardsStore.state,\n };\n },\n computed: {\n selected() {\n return this.modal.selectedList || this.state.lists[1];\n },\n },\n destroyed() {\n this.modal.selectedList = null;\n },\n template: `\n \n \n \n \n {{ selected.title }}\n \n \n \n \n \n \n \n \n {{ list.title }}\n \n \n \n \n \n `,\n});\n","import Vue from 'vue';\nimport Flash from '../../../flash';\nimport { __ } from '../../../locale';\nimport './lists_dropdown';\nimport { pluralize } from '../../../lib/utils/text_utility';\nimport ModalStore from '../../stores/modal_store';\nimport modalMixin from '../../mixins/modal_mixins';\n\ngl.issueBoards.ModalFooter = Vue.extend({\n mixins: [modalMixin],\n data() {\n return {\n modal: ModalStore.store,\n state: gl.issueBoards.BoardsStore.state,\n };\n },\n computed: {\n submitDisabled() {\n return !ModalStore.selectedCount();\n },\n submitText() {\n const count = ModalStore.selectedCount();\n\n return `Add ${count > 0 ? count : ''} ${pluralize('issue', count)}`;\n },\n },\n methods: {\n addIssues() {\n const firstListIndex = 1;\n const list = this.modal.selectedList || this.state.lists[firstListIndex];\n const selectedIssues = ModalStore.getSelectedIssues();\n const issueIds = selectedIssues.map(issue => issue.id);\n\n // Post the data to the backend\n gl.boardService.bulkUpdate(issueIds, {\n add_label_ids: [list.label.id],\n }).catch(() => {\n Flash(__('Failed to update issues, please try again.'));\n\n selectedIssues.forEach((issue) => {\n list.removeIssue(issue);\n list.issuesSize -= 1;\n });\n });\n\n // Add the issues on the frontend\n selectedIssues.forEach((issue) => {\n list.addIssue(issue);\n list.issuesSize += 1;\n });\n\n this.toggleModal(false);\n },\n },\n components: {\n 'lists-dropdown': gl.issueBoards.ModalFooterListsDropdown,\n },\n template: `\n \n `,\n});\n","import Vue from 'vue';\nimport ModalStore from '../../stores/modal_store';\nimport modalMixin from '../../mixins/modal_mixins';\n\ngl.issueBoards.ModalEmptyState = Vue.extend({\n mixins: [modalMixin],\n data() {\n return ModalStore.store;\n },\n props: {\n newIssuePath: {\n type: String,\n required: true,\n },\n emptyStateSvg: {\n type: String,\n required: true,\n },\n },\n computed: {\n contents() {\n const obj = {\n title: 'You haven\\'t added any issues to your project yet',\n content: `\n An issue can be a bug, a todo or a feature request that needs to be\n discussed in a project. Besides, issues are searchable and filterable.\n `,\n };\n\n if (this.activeTab === 'selected') {\n obj.title = 'You haven\\'t selected any issues yet';\n obj.content = `\n Go back to Open issues and select some issues\n to add to your board.\n `;\n }\n\n return obj;\n },\n },\n template: `\n \n \n \n \n \n \n \n {{ contents.title }}\n \n \n New issue\n \n \n Open issues\n \n \n \n \n \n `,\n});\n","/* global ListIssue */\n\nimport Vue from 'vue';\nimport queryData from '~/boards/utils/query_data';\nimport loadingIcon from '~/vue_shared/components/loading_icon.vue';\nimport './header';\nimport './list';\nimport './footer';\nimport './empty_state';\nimport ModalStore from '../../stores/modal_store';\n\ngl.issueBoards.IssuesModal = Vue.extend({\n props: {\n newIssuePath: {\n type: String,\n required: true,\n },\n emptyStateSvg: {\n type: String,\n required: true,\n },\n issueLinkBase: {\n type: String,\n required: true,\n },\n rootPath: {\n type: String,\n required: true,\n },\n projectId: {\n type: Number,\n required: true,\n },\n milestonePath: {\n type: String,\n required: true,\n },\n labelPath: {\n type: String,\n required: true,\n },\n },\n data() {\n return ModalStore.store;\n },\n watch: {\n page() {\n this.loadIssues();\n },\n showAddIssuesModal() {\n if (this.showAddIssuesModal && !this.issues.length) {\n this.loading = true;\n const loadingDone = () => {\n this.loading = false;\n };\n\n this.loadIssues()\n .then(loadingDone)\n .catch(loadingDone);\n } else if (!this.showAddIssuesModal) {\n this.issues = [];\n this.selectedIssues = [];\n this.issuesCount = false;\n }\n },\n filter: {\n handler() {\n if (this.$el.tagName) {\n this.page = 1;\n this.filterLoading = true;\n const loadingDone = () => {\n this.filterLoading = false;\n };\n\n this.loadIssues(true)\n .then(loadingDone)\n .catch(loadingDone);\n }\n },\n deep: true,\n },\n },\n methods: {\n loadIssues(clearIssues = false) {\n if (!this.showAddIssuesModal) return false;\n\n return gl.boardService.getBacklog(queryData(this.filter.path, {\n page: this.page,\n per: this.perPage,\n }))\n .then(res => res.data)\n .then((data) => {\n if (clearIssues) {\n this.issues = [];\n }\n\n data.issues.forEach((issueObj) => {\n const issue = new ListIssue(issueObj);\n const foundSelectedIssue = ModalStore.findSelectedIssue(issue);\n issue.selected = !!foundSelectedIssue;\n\n this.issues.push(issue);\n });\n\n this.loadingNewPage = false;\n\n if (!this.issuesCount) {\n this.issuesCount = data.size;\n }\n }).catch(() => {\n // TODO: handle request error\n });\n },\n },\n computed: {\n showList() {\n if (this.activeTab === 'selected') {\n return this.selectedIssues.length > 0;\n }\n\n return this.issuesCount > 0;\n },\n showEmptyState() {\n if (!this.loading && this.issuesCount === 0) {\n return true;\n }\n\n return this.activeTab === 'selected' && this.selectedIssues.length === 0;\n },\n },\n created() {\n this.page = 1;\n },\n components: {\n 'modal-header': gl.issueBoards.ModalHeader,\n 'modal-list': gl.issueBoards.ModalList,\n 'modal-footer': gl.issueBoards.ModalFooter,\n 'empty-state': gl.issueBoards.ModalEmptyState,\n loadingIcon,\n },\n template: `\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n `,\n});\n","/* eslint-disable one-var, quote-props, comma-dangle, space-before-function-paren */\n\nimport $ from 'jquery';\nimport _ from 'underscore';\nimport Vue from 'vue';\n\nimport Flash from '~/flash';\nimport { __ } from '~/locale';\nimport '~/vue_shared/models/label';\nimport '~/vue_shared/models/assignee';\n\nimport FilteredSearchBoards from './filtered_search_boards';\nimport eventHub from './eventhub';\nimport sidebarEventHub from '~/sidebar/event_hub'; // eslint-disable-line import/first\nimport './models/issue';\nimport './models/list';\nimport './models/milestone';\nimport './models/project';\nimport './stores/boards_store';\nimport ModalStore from './stores/modal_store';\nimport BoardService from './services/board_service';\nimport modalMixin from './mixins/modal_mixins';\nimport './mixins/sortable_default_options';\nimport './filters/due_date_filters';\nimport './components/board';\nimport './components/board_sidebar';\nimport './components/new_list_dropdown';\nimport './components/modal/index';\nimport '~/vue_shared/vue_resource_interceptor'; // eslint-disable-line import/first\n\nexport default () => {\n const $boardApp = document.getElementById('board-app');\n const Store = gl.issueBoards.BoardsStore;\n\n window.gl = window.gl || {};\n\n if (gl.IssueBoardsApp) {\n gl.IssueBoardsApp.$destroy(true);\n }\n\n Store.create();\n\n // hack to allow sidebar scripts like milestone_select manipulate the BoardsStore\n gl.issueBoards.boardStoreIssueSet = (...args) => Vue.set(Store.detail.issue, ...args);\n gl.issueBoards.boardStoreIssueDelete = (...args) => Vue.delete(Store.detail.issue, ...args);\n\n gl.IssueBoardsApp = new Vue({\n el: $boardApp,\n components: {\n 'board': gl.issueBoards.Board,\n 'board-sidebar': gl.issueBoards.BoardSidebar,\n 'board-add-issues-modal': gl.issueBoards.IssuesModal,\n },\n data: {\n state: Store.state,\n loading: true,\n boardsEndpoint: $boardApp.dataset.boardsEndpoint,\n listsEndpoint: $boardApp.dataset.listsEndpoint,\n boardId: $boardApp.dataset.boardId,\n disabled: $boardApp.dataset.disabled === 'true',\n issueLinkBase: $boardApp.dataset.issueLinkBase,\n rootPath: $boardApp.dataset.rootPath,\n bulkUpdatePath: $boardApp.dataset.bulkUpdatePath,\n detailIssue: Store.detail,\n defaultAvatar: $boardApp.dataset.defaultAvatar,\n },\n computed: {\n detailIssueVisible () {\n return Object.keys(this.detailIssue.issue).length;\n },\n },\n created () {\n gl.boardService = new BoardService({\n boardsEndpoint: this.boardsEndpoint,\n listsEndpoint: this.listsEndpoint,\n bulkUpdatePath: this.bulkUpdatePath,\n boardId: this.boardId,\n });\n Store.rootPath = this.boardsEndpoint;\n\n eventHub.$on('updateTokens', this.updateTokens);\n eventHub.$on('newDetailIssue', this.updateDetailIssue);\n eventHub.$on('clearDetailIssue', this.clearDetailIssue);\n sidebarEventHub.$on('toggleSubscription', this.toggleSubscription);\n },\n beforeDestroy() {\n eventHub.$off('updateTokens', this.updateTokens);\n eventHub.$off('newDetailIssue', this.updateDetailIssue);\n eventHub.$off('clearDetailIssue', this.clearDetailIssue);\n sidebarEventHub.$off('toggleSubscription', this.toggleSubscription);\n },\n mounted () {\n this.filterManager = new FilteredSearchBoards(Store.filter, true, Store.cantEdit);\n this.filterManager.setup();\n\n Store.disabled = this.disabled;\n gl.boardService.all()\n .then(res => res.data)\n .then((data) => {\n data.forEach((board) => {\n const list = Store.addList(board, this.defaultAvatar);\n\n if (list.type === 'closed') {\n list.position = Infinity;\n } else if (list.type === 'backlog') {\n list.position = -1;\n }\n });\n\n this.state.lists = _.sortBy(this.state.lists, 'position');\n\n Store.addBlankState();\n this.loading = false;\n })\n .catch(() => {\n Flash('An error occurred while fetching the board lists. Please try again.');\n });\n },\n methods: {\n updateTokens() {\n this.filterManager.updateTokens();\n },\n updateDetailIssue(newIssue) {\n const sidebarInfoEndpoint = newIssue.sidebarInfoEndpoint;\n if (sidebarInfoEndpoint && newIssue.subscribed === undefined) {\n newIssue.setFetchingState('subscriptions', true);\n BoardService.getIssueInfo(sidebarInfoEndpoint)\n .then(res => res.data)\n .then((data) => {\n newIssue.setFetchingState('subscriptions', false);\n newIssue.updateData({\n subscribed: data.subscribed,\n });\n })\n .catch(() => {\n newIssue.setFetchingState('subscriptions', false);\n Flash(__('An error occurred while fetching sidebar data'));\n });\n }\n\n Store.detail.issue = newIssue;\n },\n clearDetailIssue() {\n Store.detail.issue = {};\n },\n toggleSubscription(id) {\n const issue = Store.detail.issue;\n if (issue.id === id && issue.toggleSubscriptionEndpoint) {\n issue.setFetchingState('subscriptions', true);\n BoardService.toggleIssueSubscription(issue.toggleSubscriptionEndpoint)\n .then(() => {\n issue.setFetchingState('subscriptions', false);\n issue.updateData({\n subscribed: !issue.subscribed,\n });\n })\n .catch(() => {\n issue.setFetchingState('subscriptions', false);\n Flash(__('An error occurred when toggling the notification subscription'));\n });\n }\n }\n },\n });\n\n gl.IssueBoardsSearch = new Vue({\n el: document.getElementById('js-add-list'),\n data: {\n filters: Store.state.filters,\n },\n mounted () {\n gl.issueBoards.newListDropdownInit();\n },\n });\n\n gl.IssueBoardsModalAddBtn = new Vue({\n el: document.getElementById('js-add-issues-btn'),\n mixins: [modalMixin],\n data() {\n return {\n modal: ModalStore.store,\n store: Store.state,\n canAdminList: this.$options.el.hasAttribute('data-can-admin-list'),\n };\n },\n computed: {\n disabled() {\n if (!this.store) {\n return true;\n }\n return !this.store.lists.filter(list => !list.preset).length;\n },\n tooltipTitle() {\n if (this.disabled) {\n return 'Please add a list to your board first';\n }\n\n return '';\n },\n },\n watch: {\n disabled() {\n this.updateTooltip();\n },\n },\n mounted() {\n this.updateTooltip();\n },\n methods: {\n updateTooltip() {\n const $tooltip = $(this.$refs.addIssuesButton);\n\n this.$nextTick(() => {\n if (this.disabled) {\n $tooltip.tooltip();\n } else {\n $tooltip.tooltip('dispose');\n }\n });\n },\n openModal() {\n if (!this.disabled) {\n this.toggleModal(true);\n }\n },\n },\n template: `\n \n \n Add issues\n \n \n `,\n });\n};\n","import Vue from 'vue';\n\nconst eventHub = new Vue();\n\n// TODO: remove eventHub hack after code splitting refactor\nwindow.emitSidebarEvent = (...args) => eventHub.$emit(...args);\n\nexport default eventHub;\n","/* eslint-disable no-unused-vars */\n\nclass ListMilestone {\n constructor(obj) {\n this.id = obj.id;\n this.title = obj.title;\n }\n}\n\nwindow.ListMilestone = ListMilestone;\n","import UsersSelect from '~/users_select';\nimport ShortcutsNavigation from '~/shortcuts_navigation';\nimport initBoards from '~/boards';\n\ndocument.addEventListener('DOMContentLoaded', () => {\n new UsersSelect(); // eslint-disable-line no-new\n new ShortcutsNavigation(); // eslint-disable-line no-new\n initBoards();\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('img',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],staticClass:\"avatar\",class:( _obj = {\n lazy: _vm.lazy\n }, _obj[_vm.avatarSizeClass] = true, _obj[_vm.cssClasses] = true, _obj ),attrs:{\"data-boundary\":\"window\",\"src\":_vm.resultantSrcAttribute,\"width\":_vm.size,\"height\":_vm.size,\"alt\":_vm.imgAlt,\"data-src\":_vm.sanitizedSource,\"data-container\":_vm.tooltipContainer,\"data-placement\":_vm.tooltipPlacement,\"title\":_vm.tooltipText}})\nvar _obj;}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_avatar_image.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_avatar_image.vue?vue&type=script&lang=js\"","\n\n\n \n\n","import { render, staticRenderFns } from \"./user_avatar_image.vue?vue&type=template&id=322edd8c\"\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","module.exports = \"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 render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('a',{staticClass:\"user-avatar-link\",attrs:{\"href\":_vm.linkHref}},[_c('user-avatar-image',{attrs:{\"img-src\":_vm.imgSrc,\"img-alt\":_vm.imgAlt,\"css-classes\":_vm.imgCssClasses,\"size\":_vm.imgSize,\"tooltip-text\":_vm.avatarTooltipText,\"tooltip-placement\":_vm.tooltipPlacement}}),(_vm.shouldShowUsername)?_c('span',{directives:[{name:\"tooltip\",rawName:\"v-tooltip\"}],attrs:{\"title\":_vm.tooltipText,\"tooltip-placement\":_vm.tooltipPlacement}},[_vm._v(_vm._s(_vm.username))]):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_avatar_link.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../../../node_modules/babel-loader/lib/index.js??ref--0!../../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./user_avatar_link.vue?vue&type=script&lang=js\"","\n\n\n \n {{ username }}\n \n\n","import { render, staticRenderFns } from \"./user_avatar_link.vue?vue&type=template&id=5dd80867\"\nimport script from \"./user_avatar_link.vue?vue&type=script&lang=js\"\nexport * from \"./user_avatar_link.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports"],"sourceRoot":""}
\n Add the following default lists to your Issue Board with one click:\n
\n Starting out with the default set of lists will get you\n right on the way to making the most of your board.\n