/** * Sort the list of Loop members. * @callback jibo.face.views.ContactsView~LoopListSort * @param loopList {jibo.kb.loop.UserNode[]} List of Loop members to sort. */ /** * Check to see if a Loop member is in the list. * @callback jibo.face.views.ContactsView~LooperCheck * @param looper {jibo.kb.loop.UserNode} Loop member to check the list for. * @return {Boolean} `true` if the Looper exists in the list. */ /** * Menu display for a list of Contacts. * * @class ContactsView * @extends jibo.face.views.MenuView * @memberof jibo.face.views */ /** * Optional function used to edit the looper list. * Should determine what ContactButtons are created and in what order. * Need to take and return an array of Loop members. * If not explicitly defined will be set to a default when createListComponents is called. * @name jibo.face.views.ContactsView#sortLoopList * @type {jibo.face.views.ContactsView~LoopListSort} */ /** * Optional function used to determine if a ContactButton's checkmark should be displayed. * Requires a Looper and return a boolean. * If true is returned, a checkmark on the Loop member's ContactButton will be displayed. * @name jibo.face.views.ContactsView#determineCheck * @type {jibo.face.views.ContactsView~LooperCheck} */ /** * Optional parameters indicating whether show the "Not a Loop Member" button. * @name jibo.face.views.ContactsView#showNotALoopMemberButton * @type {Boolean} */ /** * @name jibo.face.views.ContactsView#_loopMembers * @type {jibo.kb.loop.UserNode[]} * @private */ /** * Destroy. * @method jibo.face.views.ContactsView#destroy */ /** * Default LoopListSort used to edit list of Loop members. * @method jibo.face.views.ContactsView#removeInvalidLoopers * @param {jibo.kb.loop.UserNode[]} loopList List of Loop members objects * @returns {jibo.kb.loop.UserNode[]} The edited list of Loop members objects * @private */