{"version":3,"sources":["webpack:///./users_select.js","webpack:///./boards/stores/modal_store.js"],"names":["UsersSelect","currentUser","els","$els","options","arguments","length","undefined","this","users","bind","user","usersPath","userPath","_typeof","JSON","parse","_this","handleClick","$","each","i","dropdown","$block","$collapsedSidebar","$dropdown","$loading","$selectbox","$value","abilityName","assignTo","assigneeTemplate","collapsedAssigneeTemplate","defaultLabel","defaultNullUser","firstUser","issueURL","selectedId","selectedIdDefault","showAnyUser","showNullUser","showMenuAbove","projectId","data","groupId","showCurrentUser","todoFilter","todoStateFilter","authorId","closest","find","fadeOut","assignYourself","unassignedSelected","concat","remove","input","document","createElement","type","name","currentUserInfo","value","id","dataset","meta","_","escape","parent","before","after","addEventListener","getSelectedUserInputs","getSelected","map","index","parseInt","get","checkMaxSelect","maxSelect","selected","firstSelectedId","emitSidebarEvent","getMultiSelectDropdownTitle","selectedUser","isSelected","selectedUsers","filter","u","otherSelected","s","on","e","preventDefault","currentTarget","hide","text","removeClass","$input","val","gon","current_user_id","current_user_fullname","assignee_id","fadeIn","trigger","axios","put","then","_ref","tooltipTitle","assignee","username","avatar","avatar_url","__","html","attr","tooltip","template","glDropdown","term","callback","instance","processData","anyUser","len","obj","showDivider","hasClass","selectedInputs","uniq","a","userId","_input$dataset","avatarUrl","splice","unshift","beforeDivider","header","indexOf","sort","b","forEach","positionMenuAbove","filterable","filterRemote","search","fields","selectable","fieldName","toggleLabel","el","inputValue","filterInput","multiSelect","filteredFullData","parseData","addClass","hidden","css","inputMeta","clicked","isIssueIndex","isMRIndex","page","$el","isMarking","selectedObj","isActive","previouslySelected","toLowerCase","element","addInput","show","isSelecting","ModalStore","store","Issuable","filterResults","submit","opened","highlightSelected","updateLabel","renderRow","img","default_avatar_url","select","showEmailUser","skipLdap","skipUsers","select2","placeholder","multiple","minimumInputLength","query","emailUser","nullUser","ref","results","match","trimmed","trim","invite","initSelection","args","slice","call","apply","formatResult","formatSelection","dropdownCssClass","escapeMarkup","m","window","noop","prototype","user_id","test","url","buildUrl","replace","_ref2","params","active","project_id","group_id","skip_ldap","todo_filter","todo_state_filter","current_user","author_id","skip_users","_ref3","relative_url_root","_classCallCheck","columns","issues","issuesCount","selectedIssues","showAddIssuesModal","activeTab","selectedList","searchTerm","loading","loadingNewPage","filterLoading","perPage","path","getSelectedIssues","issueObj","issue","removeSelectedIssue","addSelectedIssue","selectedCount","issueUpdate","selectedIssueIndex","push","forcePurge","fIssue","_this2","filteredIssue","__webpack_exports__"],"mappings":"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","file":"commons~pages.admin.groups.show~pages.dashboard.todos.index~pages.groups.boards~pages.groups.group_m~e82670fe.021af68a.chunk.js","sourcesContent":["/* eslint-disable func-names, one-var, no-var, prefer-rest-params, vars-on-top, prefer-arrow-callback, consistent-return, object-shorthand, no-shadow, no-unused-vars, no-else-return, no-self-compare, prefer-template, no-unused-expressions, yoda, prefer-spread, camelcase, no-param-reassign */\n/* global Issuable */\n/* global emitSidebarEvent */\n\nimport $ from 'jquery';\nimport _ from 'underscore';\nimport axios from './lib/utils/axios_utils';\nimport { __ } from './locale';\nimport ModalStore from './boards/stores/modal_store';\n\n// TODO: remove eventHub hack after code splitting refactor\nwindow.emitSidebarEvent = window.emitSidebarEvent || $.noop;\n\nfunction UsersSelect(currentUser, els, options = {}) {\n var $els;\n this.users = this.users.bind(this);\n this.user = this.user.bind(this);\n this.usersPath = '/autocomplete/users.json';\n this.userPath = '/autocomplete/users/:id.json';\n if (currentUser != null) {\n if (typeof currentUser === 'object') {\n this.currentUser = currentUser;\n } else {\n this.currentUser = JSON.parse(currentUser);\n }\n }\n\n const { handleClick } = options;\n\n $els = $(els);\n\n if (!els) {\n $els = $('.js-user-search');\n }\n\n $els.each(\n (function(_this) {\n return function(i, dropdown) {\n var options = {};\n var $block,\n $collapsedSidebar,\n $dropdown,\n $loading,\n $selectbox,\n $value,\n abilityName,\n assignTo,\n assigneeTemplate,\n collapsedAssigneeTemplate,\n defaultLabel,\n defaultNullUser,\n firstUser,\n issueURL,\n selectedId,\n selectedIdDefault,\n showAnyUser,\n showNullUser,\n showMenuAbove;\n $dropdown = $(dropdown);\n options.projectId = $dropdown.data('projectId');\n options.groupId = $dropdown.data('groupId');\n options.showCurrentUser = $dropdown.data('currentUser');\n options.todoFilter = $dropdown.data('todoFilter');\n options.todoStateFilter = $dropdown.data('todoStateFilter');\n showNullUser = $dropdown.data('nullUser');\n defaultNullUser = $dropdown.data('nullUserDefault');\n showMenuAbove = $dropdown.data('showMenuAbove');\n showAnyUser = $dropdown.data('anyUser');\n firstUser = $dropdown.data('firstUser');\n options.authorId = $dropdown.data('authorId');\n defaultLabel = $dropdown.data('defaultLabel');\n issueURL = $dropdown.data('issueUpdate');\n $selectbox = $dropdown.closest('.selectbox');\n $block = $selectbox.closest('.block');\n abilityName = $dropdown.data('abilityName');\n $value = $block.find('.value');\n $collapsedSidebar = $block.find('.sidebar-collapsed-user');\n $loading = $block.find('.block-loading').fadeOut();\n selectedIdDefault = defaultNullUser && showNullUser ? 0 : null;\n selectedId = $dropdown.data('selected');\n\n if (selectedId === undefined) {\n selectedId = selectedIdDefault;\n }\n\n const assignYourself = function() {\n const unassignedSelected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}'][value=0]`);\n\n if (unassignedSelected) {\n unassignedSelected.remove();\n }\n\n // Save current selected user to the DOM\n const input = document.createElement('input');\n input.type = 'hidden';\n input.name = $dropdown.data('fieldName');\n\n const currentUserInfo = $dropdown.data('currentUserInfo');\n\n if (currentUserInfo) {\n input.value = currentUserInfo.id;\n input.dataset.meta = _.escape(currentUserInfo.name);\n } else if (_this.currentUser) {\n input.value = _this.currentUser.id;\n }\n\n if ($selectbox) {\n $dropdown.parent().before(input);\n } else {\n $dropdown.after(input);\n }\n };\n\n if ($block[0]) {\n $block[0].addEventListener('assignYourself', assignYourself);\n }\n\n const getSelectedUserInputs = function() {\n return $selectbox.find(`input[name=\"${$dropdown.data('fieldName')}\"]`);\n };\n\n const getSelected = function() {\n return getSelectedUserInputs()\n .map((index, input) => parseInt(input.value, 10))\n .get();\n };\n\n const checkMaxSelect = function() {\n const maxSelect = $dropdown.data('maxSelect');\n if (maxSelect) {\n const selected = getSelected();\n\n if (selected.length > maxSelect) {\n const firstSelectedId = selected[0];\n const firstSelected = $dropdown\n .closest('.selectbox')\n .find(`input[name='${$dropdown.data('fieldName')}'][value=${firstSelectedId}]`);\n\n firstSelected.remove();\n emitSidebarEvent('sidebar.removeAssignee', {\n id: firstSelectedId,\n });\n }\n }\n };\n\n const getMultiSelectDropdownTitle = function(selectedUser, isSelected) {\n const selectedUsers = getSelected().filter(u => u !== 0);\n\n const firstUser = getSelectedUserInputs()\n .map((index, input) => ({\n name: input.dataset.meta,\n value: parseInt(input.value, 10),\n }))\n .filter(u => u.id !== 0)\n .get(0);\n\n if (selectedUsers.length === 0) {\n return 'Unassigned';\n } else if (selectedUsers.length === 1) {\n return firstUser.name;\n } else if (isSelected) {\n const otherSelected = selectedUsers.filter(s => s !== selectedUser.id);\n return `${selectedUser.name} + ${otherSelected.length} more`;\n } else {\n return `${firstUser.name} + ${selectedUsers.length - 1} more`;\n }\n };\n\n $('.assign-to-me-link').on('click', e => {\n e.preventDefault();\n $(e.currentTarget).hide();\n\n if ($dropdown.data('multiSelect')) {\n assignYourself();\n checkMaxSelect();\n\n const currentUserInfo = $dropdown.data('currentUserInfo');\n $dropdown\n .find('.dropdown-toggle-text')\n .text(getMultiSelectDropdownTitle(currentUserInfo))\n .removeClass('is-default');\n } else {\n const $input = $(`input[name=\"${$dropdown.data('fieldName')}\"]`);\n $input.val(gon.current_user_id);\n selectedId = $input.val();\n $dropdown\n .find('.dropdown-toggle-text')\n .text(gon.current_user_fullname)\n .removeClass('is-default');\n }\n });\n\n $block.on('click', '.js-assign-yourself', e => {\n e.preventDefault();\n return assignTo(_this.currentUser.id);\n });\n\n assignTo = function(selected) {\n var data;\n data = {};\n data[abilityName] = {};\n data[abilityName].assignee_id = selected != null ? selected : null;\n $loading.removeClass('hidden').fadeIn();\n $dropdown.trigger('loading.gl.dropdown');\n\n return axios.put(issueURL, data).then(({ data }) => {\n var user, tooltipTitle;\n $dropdown.trigger('loaded.gl.dropdown');\n $loading.fadeOut();\n if (data.assignee) {\n user = {\n name: data.assignee.name,\n username: data.assignee.username,\n avatar: data.assignee.avatar_url,\n };\n tooltipTitle = _.escape(user.name);\n } else {\n user = {\n name: 'Unassigned',\n username: '',\n avatar: '',\n };\n tooltipTitle = __('Assignee');\n }\n $value.html(assigneeTemplate(user));\n $collapsedSidebar.attr('title', tooltipTitle).tooltip('_fixTitle');\n return $collapsedSidebar.html(collapsedAssigneeTemplate(user));\n });\n };\n collapsedAssigneeTemplate = _.template(\n '<% if( avatar ) { %> \"> \"\"\"> <% } else { %> <% } %>',\n );\n assigneeTemplate = _.template(\n '<% if (username) { %> \"> <% if( avatar ) { %> \"\"\"> <% } %> <%- name %> @<%- username %> <% } else { %> No assignee - assign yourself <% } %>',\n );\n return $dropdown.glDropdown({\n showMenuAbove: showMenuAbove,\n data: function(term, callback) {\n return _this.users(\n term,\n options,\n function(users) {\n // GitLabDropdownFilter returns this.instance\n // GitLabDropdownRemote returns this.options.instance\n const glDropdown = this.instance || this.options.instance;\n glDropdown.options.processData(term, users, callback);\n }.bind(this),\n );\n },\n processData: function(term, data, callback) {\n let users = data;\n\n // Only show assigned user list when there is no search term\n if ($dropdown.hasClass('js-multiselect') && term.length === 0) {\n const selectedInputs = getSelectedUserInputs();\n\n // Potential duplicate entries when dealing with issue board\n // because issue board is also managed by vue\n const selectedUsers = _.uniq(selectedInputs, false, a => a.value)\n .filter(input => {\n const userId = parseInt(input.value, 10);\n const inUsersArray = users.find(u => u.id === userId);\n\n return !inUsersArray && userId !== 0;\n })\n .map(input => {\n const userId = parseInt(input.value, 10);\n const { avatarUrl, avatar_url, name, username } = input.dataset;\n return {\n avatar_url: avatarUrl || avatar_url,\n id: userId,\n name,\n username,\n };\n });\n\n users = data.concat(selectedUsers);\n }\n\n let anyUser;\n let index;\n let len;\n let name;\n let obj;\n let showDivider;\n if (term.length === 0) {\n showDivider = 0;\n if (firstUser) {\n // Move current user to the front of the list\n for (index = 0, len = users.length; index < len; index += 1) {\n obj = users[index];\n if (obj.username === firstUser) {\n users.splice(index, 1);\n users.unshift(obj);\n break;\n }\n }\n }\n if (showNullUser) {\n showDivider += 1;\n users.unshift({\n beforeDivider: true,\n name: 'Unassigned',\n id: 0,\n });\n }\n if (showAnyUser) {\n showDivider += 1;\n name = showAnyUser;\n if (name === true) {\n name = 'Any User';\n }\n anyUser = {\n beforeDivider: true,\n name: name,\n id: null,\n };\n users.unshift(anyUser);\n }\n\n if (showDivider) {\n users.splice(showDivider, 0, 'divider');\n }\n\n if ($dropdown.hasClass('js-multiselect')) {\n const selected = getSelected().filter(i => i !== 0);\n\n if (selected.length > 0) {\n if ($dropdown.data('dropdownHeader')) {\n showDivider += 1;\n users.splice(showDivider, 0, {\n header: $dropdown.data('dropdownHeader'),\n });\n }\n\n const selectedUsers = users\n .filter(u => selected.indexOf(u.id) !== -1)\n .sort((a, b) => a.name > b.name);\n\n users = users.filter(u => selected.indexOf(u.id) === -1);\n\n selectedUsers.forEach(selectedUser => {\n showDivider += 1;\n users.splice(showDivider, 0, selectedUser);\n });\n\n users.splice(showDivider + 1, 0, 'divider');\n }\n }\n }\n\n callback(users);\n if (showMenuAbove) {\n $dropdown.data('glDropdown').positionMenuAbove();\n }\n },\n filterable: true,\n filterRemote: true,\n search: {\n fields: ['name', 'username'],\n },\n selectable: true,\n fieldName: $dropdown.data('fieldName'),\n toggleLabel: function(selected, el, glDropdown) {\n const inputValue = glDropdown.filterInput.val();\n\n if (this.multiSelect && inputValue === '') {\n // Remove non-users from the fullData array\n const users = glDropdown.filteredFullData();\n const callback = glDropdown.parseData.bind(glDropdown);\n\n // Update the data model\n this.processData(inputValue, users, callback);\n }\n\n if (this.multiSelect) {\n return getMultiSelectDropdownTitle(selected, $(el).hasClass('is-active'));\n }\n\n if (selected && 'id' in selected && $(el).hasClass('is-active')) {\n $dropdown.find('.dropdown-toggle-text').removeClass('is-default');\n if (selected.text) {\n return selected.text;\n } else {\n return selected.name;\n }\n } else {\n $dropdown.find('.dropdown-toggle-text').addClass('is-default');\n return defaultLabel;\n }\n },\n defaultLabel: defaultLabel,\n hidden: function(e) {\n if ($dropdown.hasClass('js-multiselect')) {\n emitSidebarEvent('sidebar.saveAssignees');\n }\n\n if (!$dropdown.data('alwaysShowSelectbox')) {\n $selectbox.hide();\n\n // Recalculate where .value is because vue might have changed it\n $block = $selectbox.closest('.block');\n $value = $block.find('.value');\n // display:block overrides the hide-collapse rule\n $value.css('display', '');\n }\n },\n multiSelect: $dropdown.hasClass('js-multiselect'),\n inputMeta: $dropdown.data('inputMeta'),\n clicked: function(options) {\n const { $el, e, isMarking } = options;\n const user = options.selectedObj;\n\n if ($dropdown.hasClass('js-multiselect')) {\n const isActive = $el.hasClass('is-active');\n const previouslySelected = $dropdown\n .closest('.selectbox')\n .find(\"input[name='\" + $dropdown.data('fieldName') + \"'][value!=0]\");\n\n // Enables support for limiting the number of users selected\n // Automatically removes the first on the list if more users are selected\n checkMaxSelect();\n\n if (user.beforeDivider && user.name.toLowerCase() === 'unassigned') {\n // Unassigned selected\n previouslySelected.each((index, element) => {\n const id = parseInt(element.value, 10);\n element.remove();\n });\n emitSidebarEvent('sidebar.removeAllAssignees');\n } else if (isActive) {\n // user selected\n emitSidebarEvent('sidebar.addAssignee', user);\n\n // Remove unassigned selection (if it was previously selected)\n const unassignedSelected = $dropdown\n .closest('.selectbox')\n .find(\"input[name='\" + $dropdown.data('fieldName') + \"'][value=0]\");\n\n if (unassignedSelected) {\n unassignedSelected.remove();\n }\n } else {\n if (previouslySelected.length === 0) {\n // Select unassigned because there is no more selected users\n this.addInput($dropdown.data('fieldName'), 0, {});\n }\n\n // User unselected\n emitSidebarEvent('sidebar.removeAssignee', user);\n }\n\n if (getSelected().find(u => u === gon.current_user_id)) {\n $('.assign-to-me-link').hide();\n } else {\n $('.assign-to-me-link').show();\n }\n }\n\n var isIssueIndex, isMRIndex, page, selected;\n page = $('body').attr('data-page');\n isIssueIndex = page === 'projects:issues:index';\n isMRIndex = page === page && page === 'projects:merge_requests:index';\n if (\n $dropdown.hasClass('js-filter-bulk-update') ||\n $dropdown.hasClass('js-issuable-form-dropdown')\n ) {\n e.preventDefault();\n\n const isSelecting = user.id !== selectedId;\n selectedId = isSelecting ? user.id : selectedIdDefault;\n\n if (selectedId === gon.current_user_id) {\n $('.assign-to-me-link').hide();\n } else {\n $('.assign-to-me-link').show();\n }\n return;\n }\n if ($el.closest('.add-issues-modal').length) {\n ModalStore.store.filter[$dropdown.data('fieldName')] = user.id;\n } else if (handleClick) {\n e.preventDefault();\n handleClick(user, isMarking);\n } else if ($dropdown.hasClass('js-filter-submit') && (isIssueIndex || isMRIndex)) {\n return Issuable.filterResults($dropdown.closest('form'));\n } else if ($dropdown.hasClass('js-filter-submit')) {\n return $dropdown.closest('form').submit();\n } else if (!$dropdown.hasClass('js-multiselect')) {\n selected = $dropdown\n .closest('.selectbox')\n .find(\"input[name='\" + $dropdown.data('fieldName') + \"']\")\n .val();\n return assignTo(selected);\n }\n\n // Automatically close dropdown after assignee is selected\n // since CE has no multiple assignees\n // EE does not have a max-select\n if (\n $dropdown.data('maxSelect') &&\n getSelected().length === $dropdown.data('maxSelect')\n ) {\n // Close the dropdown\n $dropdown.dropdown('toggle');\n }\n },\n id: function(user) {\n return user.id;\n },\n opened: function(e) {\n const $el = $(e.currentTarget);\n const selected = getSelected();\n if ($dropdown.hasClass('js-issue-board-sidebar') && selected.length === 0) {\n this.addInput($dropdown.data('fieldName'), 0, {});\n }\n $el.find('.is-active').removeClass('is-active');\n\n function highlightSelected(id) {\n $el.find(`li[data-user-id=\"${id}\"] .dropdown-menu-user-link`).addClass('is-active');\n }\n\n if (selected.length > 0) {\n getSelected().forEach(selectedId => highlightSelected(selectedId));\n } else if ($dropdown.hasClass('js-issue-board-sidebar')) {\n highlightSelected(0);\n } else {\n highlightSelected(selectedId);\n }\n },\n updateLabel: $dropdown.data('dropdownTitle'),\n renderRow: function(user) {\n var avatar, img, listClosingTags, listWithName, listWithUserName, username;\n username = user.username ? '@' + user.username : '';\n avatar = user.avatar_url ? user.avatar_url : gon.default_avatar_url;\n\n let selected = false;\n\n if (this.multiSelect) {\n selected = getSelected().find(u => user.id === u);\n\n const { fieldName } = this;\n const field = $dropdown\n .closest('.selectbox')\n .find(\"input[name='\" + fieldName + \"'][value='\" + user.id + \"']\");\n\n if (field.length) {\n selected = true;\n }\n } else {\n selected = user.id === selectedId;\n }\n\n img = '';\n if (user.beforeDivider != null) {\n `
  • ${_.escape(\n user.name,\n )}
  • `;\n } else {\n img = \"\";\n }\n\n return `\n
  • \n \n ${img}\n \n ${_.escape(user.name)}\n \n ${username ? `${username}` : ''}\n \n
  • \n `;\n },\n });\n };\n })(this),\n );\n $('.ajax-users-select').each(\n (function(_this) {\n return function(i, select) {\n var firstUser, showAnyUser, showEmailUser, showNullUser;\n var options = {};\n options.skipLdap = $(select).hasClass('skip_ldap');\n options.projectId = $(select).data('projectId');\n options.groupId = $(select).data('groupId');\n options.showCurrentUser = $(select).data('currentUser');\n options.authorId = $(select).data('authorId');\n options.skipUsers = $(select).data('skipUsers');\n showNullUser = $(select).data('nullUser');\n showAnyUser = $(select).data('anyUser');\n showEmailUser = $(select).data('emailUser');\n firstUser = $(select).data('firstUser');\n return $(select).select2({\n placeholder: 'Search for a user',\n multiple: $(select).hasClass('multiselect'),\n minimumInputLength: 0,\n query: function(query) {\n return _this.users(query.term, options, function(users) {\n var anyUser, data, emailUser, index, len, name, nullUser, obj, ref;\n data = {\n results: users,\n };\n if (query.term.length === 0) {\n if (firstUser) {\n // Move current user to the front of the list\n ref = data.results;\n\n for (index = 0, len = ref.length; index < len; index += 1) {\n obj = ref[index];\n if (obj.username === firstUser) {\n data.results.splice(index, 1);\n data.results.unshift(obj);\n break;\n }\n }\n }\n if (showNullUser) {\n nullUser = {\n name: 'Unassigned',\n id: 0,\n };\n data.results.unshift(nullUser);\n }\n if (showAnyUser) {\n name = showAnyUser;\n if (name === true) {\n name = 'Any User';\n }\n anyUser = {\n name: name,\n id: null,\n };\n data.results.unshift(anyUser);\n }\n }\n if (showEmailUser && data.results.length === 0 && query.term.match(/^[^@]+@[^@]+$/)) {\n var trimmed = query.term.trim();\n emailUser = {\n name: 'Invite \"' + trimmed + '\" by email',\n username: trimmed,\n id: trimmed,\n invite: true,\n };\n data.results.unshift(emailUser);\n }\n return query.callback(data);\n });\n },\n initSelection: function() {\n var args;\n args = 1 <= arguments.length ? [].slice.call(arguments, 0) : [];\n return _this.initSelection.apply(_this, args);\n },\n formatResult: function() {\n var args;\n args = 1 <= arguments.length ? [].slice.call(arguments, 0) : [];\n return _this.formatResult.apply(_this, args);\n },\n formatSelection: function() {\n var args;\n args = 1 <= arguments.length ? [].slice.call(arguments, 0) : [];\n return _this.formatSelection.apply(_this, args);\n },\n dropdownCssClass: 'ajax-users-dropdown',\n // we do not want to escape markup since we are displaying html in results\n escapeMarkup: function(m) {\n return m;\n },\n });\n };\n })(this),\n );\n}\n\nUsersSelect.prototype.initSelection = function(element, callback) {\n var id, nullUser;\n id = $(element).val();\n if (id === '0') {\n nullUser = {\n name: 'Unassigned',\n };\n return callback(nullUser);\n } else if (id !== '') {\n return this.user(id, callback);\n }\n};\n\nUsersSelect.prototype.formatResult = function(user) {\n var avatar;\n if (user.avatar_url) {\n avatar = user.avatar_url;\n } else {\n avatar = gon.default_avatar_url;\n }\n return `\n
    \n
    \n \n
    \n
    \n \n \n
    \n
    \n `;\n};\n\nUsersSelect.prototype.formatSelection = function(user) {\n return _.escape(user.name);\n};\n\nUsersSelect.prototype.user = function(user_id, callback) {\n if (!/^\\d+$/.test(user_id)) {\n return false;\n }\n\n var url;\n url = this.buildUrl(this.userPath);\n url = url.replace(':id', user_id);\n return axios.get(url).then(({ data }) => {\n callback(data);\n });\n};\n\n// Return users list. Filtered by query\n// Only active users retrieved\nUsersSelect.prototype.users = function(query, options, callback) {\n const url = this.buildUrl(this.usersPath);\n const params = {\n search: query,\n active: true,\n project_id: options.projectId || null,\n group_id: options.groupId || null,\n skip_ldap: options.skipLdap || null,\n todo_filter: options.todoFilter || null,\n todo_state_filter: options.todoStateFilter || null,\n current_user: options.showCurrentUser || null,\n author_id: options.authorId || null,\n skip_users: options.skipUsers || null,\n };\n return axios.get(url, { params }).then(({ data }) => {\n callback(data);\n });\n};\n\nUsersSelect.prototype.buildUrl = function(url) {\n if (gon.relative_url_root != null) {\n url = gon.relative_url_root.replace(/\\/$/, '') + url;\n }\n return url;\n};\n\nexport default UsersSelect;\n","class ModalStore {\n constructor() {\n this.store = {\n columns: 3,\n issues: [],\n issuesCount: false,\n selectedIssues: [],\n showAddIssuesModal: false,\n activeTab: 'all',\n selectedList: null,\n searchTerm: '',\n loading: false,\n loadingNewPage: false,\n filterLoading: false,\n page: 1,\n perPage: 50,\n filter: {\n path: '',\n },\n };\n }\n\n selectedCount() {\n return this.getSelectedIssues().length;\n }\n\n toggleIssue(issueObj) {\n const issue = issueObj;\n const { selected } = issue;\n\n issue.selected = !selected;\n\n if (!selected) {\n this.addSelectedIssue(issue);\n } else {\n this.removeSelectedIssue(issue);\n }\n }\n\n toggleAll() {\n const select = this.selectedCount() !== this.store.issues.length;\n\n this.store.issues.forEach(issue => {\n const issueUpdate = issue;\n\n if (issueUpdate.selected !== select) {\n issueUpdate.selected = select;\n\n if (select) {\n this.addSelectedIssue(issue);\n } else {\n this.removeSelectedIssue(issue);\n }\n }\n });\n }\n\n getSelectedIssues() {\n return this.store.selectedIssues.filter(issue => issue.selected);\n }\n\n addSelectedIssue(issue) {\n const index = this.selectedIssueIndex(issue);\n\n if (index === -1) {\n this.store.selectedIssues.push(issue);\n }\n }\n\n removeSelectedIssue(issue, forcePurge = false) {\n if (this.store.activeTab === 'all' || forcePurge) {\n this.store.selectedIssues = this.store.selectedIssues.filter(\n fIssue => fIssue.id !== issue.id,\n );\n }\n }\n\n purgeUnselectedIssues() {\n this.store.selectedIssues.forEach(issue => {\n if (!issue.selected) {\n this.removeSelectedIssue(issue, true);\n }\n });\n }\n\n selectedIssueIndex(issue) {\n return this.store.selectedIssues.indexOf(issue);\n }\n\n findSelectedIssue(issue) {\n return this.store.selectedIssues.filter(filteredIssue => filteredIssue.id === issue.id)[0];\n }\n}\n\nexport default new ModalStore();\n"],"sourceRoot":""}