{"version":3,"file":"re_error_initialiser.59024136a41e0d65f03e.js","mappings":"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","sources":["webpack:///./Common/re_inbox_notification_control.js","webpack:///./Data/re_notificationsenum_data.js","webpack:///./Data/re_relationshiptypes_data.js","webpack:///./Error/re_error_initialiser.js","webpack:///./Navigation/re_missed_reblasts_control.js","webpack:///./Navigation/re_navigation_control.js","webpack:///./Navigation/re_navigation_dialpad_control.js","webpack:///./Navigation/re_navigation_experience_control.js","webpack:///./Navigation/re_navigation_invite_control.js","webpack:///./Navigation/re_navigation_mobile_control.js","webpack:///./Navigation/re_navigation_scroll_control.js","webpack:///./Navigation/re_navigation_state_control.js","webpack:///./Navigation/re_navigation_tree_control.js","webpack:///./Navigation/re_navigation_unseen_notifications_control.js","webpack:///./Notifications/re_notification_delete_control.js","webpack:///./Notifications/re_notification_visit_control.js","webpack:///./Notifications/re_notificationtoolbar_connectionlist_control.js","webpack:///./Notifications/re_notificationtoolbar_genericlist_control.js","webpack:///./Services/re_connection_service.js","webpack:///./Services/re_contentreach_service.js","webpack:///./Services/re_missed_reblasts_service.js","webpack:///./Services/re_notification_service.js","webpack:///./Templates/re_notificationtoolbar_list_compiled.js","webpack:///./UserLastActiveDate/re_userlastactivedate_control.js","webpack:///../../vendor/sticky-sidebar/sticky-sidebar.min.js","webpack:///./Templates/re_notificationtoolbar_list_template.html","webpack:///external \"Pusher\"","webpack:///external \"jQuery\""],"sourcesContent":["define(['jquery', 'pubsub', 'generalUtilities', 'realtimeControl'], function inboxNotificationControl(\r\n\t$,\r\n\tpubsub,\r\n\tgeneralUtilities\r\n) {\r\n\t/**\r\n\t * re_inbox_notification_control\r\n\t * @exports inboxNotificationControl\r\n\t * @author Eugene Katsov\r\n\t */\r\n\r\n\t//#region set up\r\n\r\n\t'use strict';\r\n\r\n\tvar module, selectors;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\r\n\tselectors = {\r\n\t\tnavInboxContainer: '.re-nav-inbox',\r\n\t\tinboxRedDot: '.js-notificationcount-inbox'\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t//#region utilities\r\n\r\n\t/**\r\n\t * Animate the red dot to alert the user\r\n\t * Leave a red dot behind after animation\r\n\t */\r\n\tmodule.private.animateRedDot = function animateRedDot() {\r\n\t\tif (!$(selectors.navInboxContainer).hasClass('re-nav-hasactivity')) {\r\n\t\t\t$(selectors.navInboxContainer).addClass('re-nav-hasactivity');\r\n\t\t}\r\n\r\n\t\t$(selectors.inboxRedDot).addClass('sonar-wave');\r\n\r\n\t\tsetTimeout(function animateRedDotTimeout() {\r\n\t\t\t$(selectors.inboxRedDot).removeClass('sonar-wave');\r\n\t\t}, 1500);\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\tif (window.pageType === 'message-inbox') {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\tif (generalUtilities.prop(window, 'RESAAS.User2.UserPusherChannel')) {\r\n\t\t\tpubsub.publish('uiAction.RSRealtimeSubscribe', {\r\n\t\t\t\tchannel: window.RESAAS.User2.UserPusherChannel\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tpubsub.subscribe('data.Realtime.NewInstantMessage', module.private.animateRedDot);\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\t//#region external event bindings\r\n\tmodule.private.init();\r\n\r\n\t//#endregion\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","/**\r\n * re_notificationsenum_data\r\n * @module notificationsEnumData\r\n * @author Eugene Katsov\r\n */\r\n\r\ndefine([],\r\n\r\n\tfunction () {\r\n\t\t'use strict';\r\n\r\n\t\tvar data = {};\r\n\t\tdata.RegularUserUpgradeNotification = 0;\r\n\t\tdata.InviteToSellingCommunityNotification = 1;\r\n\t\tdata.GeneralTextNotification = 2;\r\n\t\tdata.GeneralHtmlNotification = 3;\r\n\t\tdata.InviteToConnectNotification = 4;\r\n\t\tdata.ReblastCommentNotification = 5;\r\n\t\t\r\n\t\tvar module = {\r\n\t\t\tbrowse: function () {\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn module;\r\n\t}\r\n);","/**\r\n * re_relationshiptypes_data\r\n * @module relationshiptypesData\r\n * @author Eugene Katsov\r\n */\r\n\r\ndefine([],\r\n\r\n\tfunction () {\r\n\t\t'use strict';\r\n\r\n\t\tvar data = {};\r\n\t\tdata.Following = 0;\r\n\t\tdata.Connection = 1;\r\n\t\tdata.SellingCommunity = 2;\r\n\t\tdata.Office = 3;\r\n\t\tdata.Firm = 4;\r\n\t\tdata.RealEstateBoard = 5;\r\n\r\n\t\tvar module = {\r\n\t\t\tbrowse: function () {\r\n\t\t\t\treturn data;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn module;\r\n\t}\r\n);","define(['languageControl', 'navigationControl', 'toolbarControl', 'mixpanelControl'], function() {\r\n 'use strict';\r\n});\r\n","define([\r\n\t'jquery',\r\n\t'pubsub',\r\n\t'moduleUtilities',\r\n\t'generalUtilities',\r\n\t'missedReblastsService',\r\n\t'realtimeControl'\r\n], function missedReblastsControl($, pubsub, moduleUtilities, generalUtilities) {\r\n\t/**\r\n\t * re_missed_reblats_control\r\n\t * @exports missedReblastsControl\r\n\t * @author May Montazer\r\n\t */\r\n\r\n\t//#region set up\r\n\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tselectors = {\r\n\t\tactivityListWrapper: '.re-nav-activity',\r\n\t\tactivityPanel: '.js-activity-panel',\r\n\t\tactivityLink: '.js-activity-item a[data-id]',\r\n\t\tactivityItems: '.js-activity-item',\r\n\t\tnewReblastsBtn: '.reblasts-stream-count'\r\n\t};\r\n\telements = {};\r\n\r\n\t//#endregion\r\n\r\n\t//#region utilities\r\n\r\n\t/**\r\n\t * Publish new reblast pusher channel\r\n\t */\r\n\tmodule.private.listenPusher = function listenPusher() {\r\n\t\tif (generalUtilities.prop(window, 'RESAAS.Environment.PusherNewReblastChannel')) {\r\n\t\t\tpubsub.publish('uiAction.RSRealtimeSubscribe', {\r\n\t\t\t\tchannel: RESAAS.Environment.PusherNewReblastChannel\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * update activity panel and indicator numbers base on the new reblsat numbers\r\n\t * @param {object} data reponse from new reblast pusher channel\r\n\t * @param {object} event The pubsub event.\r\n\t */\r\n\tmodule.private.handleDataRealTimeNewReblast = function handleDataRealTimeNewReblast(event, data) {\r\n\t\tvar $count, $parent, newReblast;\r\n\t\tif (data.FeedId) {\r\n\t\t\t$parent = elements.activityLink\r\n\t\t\t\t.filter(generalUtilities.stringFormat('[data-id=\"{0}\"]', data.FeedId))\r\n\t\t\t\t.parent('.js-activity-item');\r\n\t\t\tif (!$parent.hasClass('re-secondary-hasactivity')) {\r\n\t\t\t\t$parent.addClass('re-secondary-hasactivity');\r\n\t\t\t}\r\n\r\n\t\t\t$count = elements.activityLink\r\n\t\t\t\t.filter(generalUtilities.stringFormat('[data-id=\"{0}\"]', data.FeedId))\r\n\t\t\t\t.find('.re-notification');\r\n\r\n\t\t\t$count.each(function countEach() {\r\n\t\t\t\tvar $self, $text;\r\n\r\n\t\t\t\t$self = $(this);\r\n\t\t\t\t$text = $self.text();\r\n\r\n\t\t\t\tif ($text.indexOf('+') === -1) {\r\n\t\t\t\t\tif ($text !== '') {\r\n\t\t\t\t\t\tnewReblast = parseInt($text, 10) + 1;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tnewReblast = 1;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t$self.text(newReblast > 20 ? '20+' : newReblast);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (\r\n\t\t\t\t!elements.activityListWrapper.hasClass('re-nav-hasactivity') &&\r\n\t\t\t\telements.activityListWrapper.find('.re-secondary-hasactivity').length > 0\r\n\t\t\t) {\r\n\t\t\t\telements.activityListWrapper.addClass('re-nav-hasactivity');\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Publish a missed reblasts request\r\n\t */\r\n\tmodule.private.missedReblastsBrowse = function missedReblastsBrowse() {\r\n\t\tvar request, requestOptions, serviceObject;\r\n\t\t// seen in the request/response but not passed to the webservice (same as module.properties)\r\n\t\trequestOptions = {};\r\n\r\n\t\t// sent to webservice\r\n\t\trequest = {};\r\n\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n\t\t// service needs to be using publish2\r\n\t\tpubsub.publish('uiNeeds.MissedReblastsBrowse', serviceObject);\r\n\t};\r\n\r\n\t/**\r\n\t * return just reblasts that MissedReblastCount is not zero\r\n\t * @param {object} data reponse from missed reblasts service\r\n\t */\r\n\tmodule.private.filterMissedReblastData = function filterMissedReblastData(data) {\r\n\t\tvar dataFilter;\r\n\r\n\t\tdataFilter = [];\r\n\r\n\t\tif (Array.isArray(data.response)) {\r\n\t\t\tdata.response.forEach(function responseForEach(item, index) {\r\n\t\t\t\tif (item.MissedReblastCount !== 0) {\r\n\t\t\t\t\tdataFilter.push(data.response[index]);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn dataFilter;\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t//#region pubsub event handlers\r\n\r\n\t/**\r\n\t * Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t * @param {object} e The pubsub event.\r\n\t * @param {object} data Data object from service.\r\n\t */\r\n\tmodule.private.handleDataMissedReblasts = function handleDataMissedReblasts(e, data) {\r\n\t\tvar success;\r\n\r\n\t\tsuccess = generalUtilities.prop(data, 'response');\r\n\t\tif (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\tif (!success) {\r\n\t\t\t\tmodule.private.handleDataMissedReblastsError(e, data);\r\n\t\t\t} else {\r\n\t\t\t\tmodule.private.handleDataMissedReblastsSuccess(e, data);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * missed reblast success handler - filtering data and render on dom\r\n\t * @param {object} e event.\r\n\t * @param {object} data reponse data.\r\n\t */\r\n\tmodule.private.handleDataMissedReblastsSuccess = function handleDataMissedReblastsSuccess(e, data) {\r\n\t\tvar filteredData, $count, $parent;\r\n\r\n\t\tfilteredData = module.private.filterMissedReblastData(data);\r\n\r\n\t\tif (filteredData.length > 0) {\r\n\t\t\tfilteredData.forEach(function filteredDataForEach(item) {\r\n\t\t\t\t$parent = elements.activityLink\r\n\t\t\t\t\t.filter(generalUtilities.stringFormat('[data-id=\"{0}\"]', item.FeedId))\r\n\t\t\t\t\t.parent('.js-activity-item');\r\n\t\t\t\t$parent.addClass('re-secondary-hasactivity');\r\n\r\n\t\t\t\t$count = elements.activityLink\r\n\t\t\t\t\t.filter(generalUtilities.stringFormat('[data-id=\"{0}\"]', item.FeedId))\r\n\t\t\t\t\t.find('.re-notification');\r\n\r\n\t\t\t\t$count.each(function countEach() {\r\n\t\t\t\t\tvar $self = $(this);\r\n\t\t\t\t\t// also check if we are over 20 - 20+\r\n\t\t\t\t\t$self.text(item.MissedReblastCount > 20 ? '20+' : item.MissedReblastCount);\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tif (elements.activityListWrapper.find('.re-secondary-hasactivity').length > 0) {\r\n\t\t\t\telements.activityListWrapper.addClass('re-nav-hasactivity');\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * missed reblast fail handler\r\n\t * @param {object} e event.\r\n\t * @param {object} data reponse data.\r\n\t */\r\n\tmodule.private.handleDataMissedReblastsError = function handleDataMissedReblastsError(e, data) {\r\n\t\tpubsub.publish('loggly.error', {\r\n\t\t\tmessage: generalUtilities.stringFormat('getting missed reblast number is failed {0}', JSON.stringify(data))\r\n\t\t});\r\n\t};\r\n\r\n\t/**\r\n\t * Handle click on the activity item, hide the indicator on the ctivity item and red circle on the activity menu\r\n\t * @param {object} e Click event\r\n\t */\r\n\tmodule.private.hideFeedsIndicator = function hideFeedsIndicator(e) {\r\n\t\tvar dataId =\r\n\t\t\t$(this)\r\n\t\t\t\t.find('a')\r\n\t\t\t\t.attr('data-id') || $('.re-nav-secondary-list .re-nav-item-active').data('id');\r\n\r\n\t\telements.activityLink\r\n\t\t\t.filter(generalUtilities.stringFormat('[data-id=\"{0}\"]', dataId))\r\n\t\t\t.find('.re-notification')\r\n\t\t\t.html('');\r\n\t\telements.activityLink\r\n\t\t\t.filter(generalUtilities.stringFormat('[data-id=\"{0}\"]', dataId))\r\n\t\t\t.parent('.js-activity-item')\r\n\t\t\t.removeClass('re-secondary-hasactivity');\r\n\r\n\t\tif (elements.activityListWrapper.find('.re-secondary-hasactivity').length === 0) {\r\n\t\t\telements.activityListWrapper.removeClass('re-nav-hasactivity');\r\n\t\t}\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\r\n\t\t// exit if user is not logged in\r\n\t\tif (!generalUtilities.prop(RESAAS, 'User2.UserId')) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\tpubsub.subscribe('data.MissedReblastsBrowse', module.private.handleDataMissedReblasts);\r\n\t\tpubsub.subscribe('data.Realtime.NewReblast', module.private.handleDataRealTimeNewReblast);\r\n\r\n\t\tmodule.private.missedReblastsBrowse();\r\n\t\tmodule.private.listenPusher();\r\n\r\n\t\t// elements\r\n\t\telements.body = $('body');\r\n\t\telements.activityListWrapper = $(selectors.activityListWrapper);\r\n\t\telements.activityPanel = $(selectors.activityPanel);\r\n\t\telements.activityLink = $(selectors.activityLink);\r\n\t\telements.activityItems = $(selectors.activityItems);\r\n\t\telements.newReblastsBtn = $(selectors.newReblastsBtn);\r\n\r\n\t\t// dom event binding\r\n\t\telements.activityPanel.on('click', '.js-activity-item', module.private.hideFeedsIndicator);\r\n\t\telements.newReblastsBtn.on('click', module.private.hideFeedsIndicator);\r\n\r\n\t\treturn true;\r\n };\r\n\r\n window.addEventListener('load', function () {\r\n module.private.init();\r\n });\r\n\r\n\t//#endregion\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","/**\r\n * @fileOverview re_navigation_control.js\r\n *\r\n * @author John Allan\r\n *\r\n */\r\ndefine([\r\n 'pubsub',\r\n 'generalUtilities',\r\n 'inboxNotificationControl',\r\n 'navigationStateControl',\r\n 'notificationToolbarGenericListControl',\r\n 'notificationConnectionListControl',\r\n 'notificationVisitControl',\r\n 'navigationTreeControl',\r\n 'navigationMobileControl',\r\n 'navigationDialpadControl',\r\n 'navigationMissedReblastControl',\r\n 'navigationExperienceControl',\r\n 'navigationScrollControl',\r\n 'navigationInviteControl',\r\n 'toolbarControl',\r\n 'userLastActiveDateControl',\r\n 'navigationUnseenNotificationControl'\r\n], function navigationControl(pubsub, generalUtilities) {\r\n 'use strict';\r\n\r\n var module = {};\r\n var elements = {};\r\n var selectors = {};\r\n var values = {};\r\n\r\n module.CONTROL_ID = generalUtilities.uuid();\r\n module.private = {};\r\n\r\n selectors.navContainer = '.js-nav-container';\r\n selectors.feedApp = '#FeedApp';\r\n selectors.groupCreate = '.js-group-create';\r\n\r\n values.groupCreate = 'groupCreate';\r\n\r\n module.private.handleGroupCreateClick = function handleGroupCreateClick(e) {\r\n if (!elements.feedApp.length) {\r\n if (Modernizr.localstorage ) {\r\n localStorage.setItem(values.groupCreate, values.groupCreate);\r\n }\r\n generalUtilities.redirect('/');\r\n }\r\n };\r\n\r\n module.private.init = function(e, data) {\r\n elements.navContainer = $(selectors.navContainer);\r\n elements.feedApp = $(selectors.feedApp);\r\n\r\n elements.navContainer.on('click', selectors.groupCreate, module.private.handleGroupCreateClick);\r\n\r\n pubsub.publish('uiAction.NavigationStateControlInit');\r\n };\r\n\r\n module.private.init();\r\n\r\n return module;\r\n});\r\n","define(['jquery', 'pubsub', 'moduleUtilities', 'generalUtilities'], function navigationDialpadControl(\r\n\t$,\r\n\tpubsub,\r\n\tmoduleUtilities,\r\n\tgeneralUtilities\r\n) {\r\n\t/**\r\n\t * re_navigation_dialpad_control\r\n\t * @exports navigationDialpadControl\r\n\t * @author John Allan\r\n\t */\r\n\t//#region set up\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tselectors = {\r\n\t\taccordionOpen: '.accordion-open',\r\n\t\taccordion: '.js-nav-accordion',\r\n\t\ttoggleAccordion: '.js-toggle-accordion',\r\n\t\texperienceNav: '.js-nav-secondary-experiences'\r\n\t};\r\n\telements = {};\r\n\r\n\t//#endregion\r\n\r\n\t//#region pubsub event handlers\r\n\r\n\t/**\r\n\t * Toggles experiences submenus\r\n\t * @param {object} [e] the event\r\n\t */\r\n\tmodule.private.handleToggleAccordionClick = function handleToggleAccordionClick(e) {\r\n\t\tvar $this = $(e.currentTarget);\r\n\t\te.preventDefault();\r\n\t\te.stopPropagation();\r\n\r\n\t\t$(selectors.accordionOpen)\r\n\t\t\t.not($this.parent().siblings(selectors.accordion))\r\n\t\t\t.removeClass('accordion-open')\r\n\t\t\t.slideUp('fast');\r\n\t\t$(selectors.toggleAccordion + '.toggle-open')\r\n\t\t\t.not($this)\r\n\t\t\t.removeClass('toggle-open');\r\n\t\t$this\r\n\t\t\t.toggleClass('toggle-open')\r\n\t\t\t.parent()\r\n\t\t\t.siblings(selectors.accordion)\r\n\t\t\t.toggleClass('accordion-open')\r\n\t\t\t.slideToggle('fast');\r\n\t};\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\t// module config\r\n\t\telements.experienceNav = $(selectors.experienceNav);\r\n\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\telements.toggleAccordion = $(selectors.toggleAccordion);\r\n\r\n\t\telements.toggleAccordion\r\n\t\t\t.off('click.NavigationDialpadControl')\r\n\t\t\t.on('click.NavigationDialpadControl', module.private.handleToggleAccordionClick);\r\n\t};\r\n\r\n\t//#region external event bindings\r\n\r\n\tmodule.private.init();\r\n\r\n\t//#endregion\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","define([\r\n\t'jquery', 'pubsub', 'moduleUtilities', 'generalUtilities'],\r\n\r\n\tfunction ($, pubsub, moduleUtilities, generalUtilities) {\r\n\t\t/**\r\n\t\t* re_navigation_experience_control\r\n\t\t* @exports navigationExperienceControl\r\n\t\t* @author Sylvia Wang\r\n\t\t*/\r\n\t\t//#region set up\r\n\t\t'use strict';\r\n\r\n\t\tvar module, selectors, elements;\r\n\r\n\t\tmodule = {};\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\t\tselectors = {\r\n\t\t\texperiencesSubnav: '.js-nav-secondary-experiences',\r\n\t\t\tnavContainer: '.js-nav-container',\r\n\t\t\texperienceItem: '.js-nav-item[data-targetexperience]',\r\n\t\t\texperienceNotification: '.js-nav-item[data-targetexperience] .re-notification'\r\n\t\t};\r\n\t\telements = {};\r\n\r\n\t\t//#endregion\r\n\r\n\r\n\t\t//#region pubsub event handlers\r\n\r\n\t\t/**\r\n\t\t* handles experience switching\r\n\t\t* @param {object} [e] the event\r\n\t\t*/\r\n\t\tmodule.private.handleExperienceClick = function (e) {\r\n\t\t\tvar href, arr, guid, reblastUrl, selector, isInternalLink, link, domainUrl, isActivityLink, targetExperience, currentExperience, redirectPageCB;\r\n\r\n\t\t\thref = e.currentTarget.href;\r\n\t\t\tarr = href.split('/');\r\n\t\t\tguid = arr[arr.length - 2]; // will only be a GUID when joining REMAX QA group if not already a members\r\n\t\t\treblastUrl = arr[arr.length - 1];\r\n\t\t\tlink = generalUtilities.prop(RESAAS, 'Environment.ApplicationUrl');\r\n\t\t\tdomainUrl = generalUtilities.prop(RESAAS, 'User2.DomainUrl');\r\n\r\n\t\t\ttargetExperience = $(e.currentTarget).data().targetexperience;\r\n\t\t\tcurrentExperience = $(selectors.experiencesSubnav).data('currentexperience');\r\n\r\n\t\t\t// If reblast URL contains a = (ex: query string), then we'll grab what comes after it. Otherwise, grab the whole URL.\r\n\t\t\tselector = (reblastUrl.indexOf('=') > -1) ? reblastUrl.split('=')[1] : reblastUrl;\r\n\r\n\t\t\t// If the target hostname is the same as the current hostname, OR if there is no hostname (indicating a target on the same site)\r\n\t\t\tisInternalLink = location.hostname === e.currentTarget.hostname || !e.currentTarget.hostname.length;\r\n\t\t\tisActivityLink = (href === link + '/') || (href.indexOf(link + domainUrl + '#') === 0) || (href.indexOf('/join?group') > -1);\r\n\r\n\t\t\tif (isInternalLink) {\r\n\t\t\t\tgeneralUtilities.setCookie(\"resaasexperience\", targetExperience);\r\n\t\t\t}\r\n\r\n\t\t\tredirectPageCB = function () {\r\n\t\t\t\t//reloads page for activities links\r\n\t\t\t\tif (isInternalLink && isActivityLink) {\r\n\t\t\t\t\twindow.scrollTo(0, 0);\r\n\t\t\t\t\twindow.history.pushState('', '', href);\r\n\t\t\t\t\tgeneralUtilities.reload(true);\r\n\t\t\t\t}\r\n\t\t\t\t// redirects otherwise\r\n\t\t\t\telse {\r\n\t\t\t\t\tgeneralUtilities.redirect(href);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\te.preventDefault();\r\n\t\t\tif (targetExperience !== currentExperience) {\r\n\t\t\t\tpubsub.publish('mixpanel.Intent', { type: 'click experience, target-experience = ' + targetExperience });\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tredirectPageCB();\r\n\t\t\t\t}, 250);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tredirectPageCB();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\t\t\tvar currentExperience;\r\n\r\n\t\t\t//module config\r\n\t\t\telements.navContainer = $(selectors.navContainer);\r\n\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\r\n\t\t\t// marking current experience in the switcher\r\n\t\t\tcurrentExperience = $(selectors.experiencesSubnav).data('currentexperience');\r\n\t\t\t$(selectors.experienceItem + '[data-targetexperience=\"' + currentExperience + '\"]').addClass('re-current-experience');\r\n\r\n\t\t\telements.navContainer.off('click.navigationExperienceControl').on('click.navigationExperienceControl', selectors.experienceItem, selectors.experienceNotification, module.private.handleExperienceClick);\r\n\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);\r\n","/**\r\n * re_navigation_invite_control\r\n * @exports navigationInviteControl\r\n * @author Suen Ting\r\n */\r\ndefine(['generalUtilities', 'moduleUtilities', 'validator', 'pubsub'], function navigationInviteControl(\r\n generalUtilities,\r\n moduleUtilities,\r\n validator,\r\n pubsub\r\n) {\r\n var module, selectors, elements;\r\n\r\n module = {};\r\n module.private = {};\r\n module.properties = {};\r\n selectors = {\r\n inviteIcon: '.js-invite',\r\n inputHref: '#js-invite-href',\r\n copyButton: '#js-invite-copy',\r\n inviteForm: '.js-invite-form',\r\n inviteOption: '.js-invite-option',\r\n inviteBtn: '#js-invite-btn',\r\n errorMessage: '.js-invite-form .error',\r\n email: '#InviteEmail',\r\n inviteWithEmailForm: '#invite-with-email'\r\n };\r\n\r\n elements = {};\r\n\r\n var constraints = {\r\n InviteEmail: {\r\n email: {\r\n message: ['^', RESAAS.Localization.Navigation.INVITE_WITH_EMAIL_VALIDATION].join(' ')\r\n },\r\n presence: {\r\n message: ['^', RESAAS.Localization.Navigation.INVITE_WITH_EMAIL_VALIDATION].join(' ')\r\n }\r\n }\r\n };\r\n\r\n module.private.inviteClicked = function inviteClicked() {\r\n pubsub.publish('mixpanel.Intent', {\r\n type: 'open invite widget',\r\n context: 'toolbar invite'\r\n });\r\n };\r\n\r\n module.private.copyInviteClicked = function copyInviteClicked() {\r\n elements.inputHref.focus(); // required to highlight text on older browsers (pre ios10) as document.execCommand(\"copy\") wont work\r\n elements.inputHref.select();\r\n elements.inputHref.setSelectionRange(0, 99999); /* For mobile devices */\r\n document.execCommand('copy');\r\n\r\n pubsub.publish('mixpanel.Intent', {\r\n type: 'copy invite url',\r\n context: 'toolbar invite'\r\n });\r\n };\r\n\r\n module.private.inviteOptionClicked = function inviteOptionClicked(e) {\r\n elements.inviteOption.toggleClass('re-invite-option-selected');\r\n elements.inviteForm.toggleClass('hide');\r\n pubsub.publish('mixpanel.Intent', {\r\n type: e.currentTarget.dataset.mixpaneltype,\r\n context: 'toolbar invite'\r\n });\r\n };\r\n\r\n /**\r\n * Handle click on the action, Invite a user\r\n * @param {object} e Click event\r\n */\r\n module.private.inviteBtnClicked = function(e) {\r\n var requestOptions, request, serviceObject, email, invalid;\r\n email = elements.email.val();\r\n\r\n invalid = validator.validate(elements.inviteWithEmailForm, constraints);\r\n\r\n if (invalid) {\r\n validator.showErrors(elements.inviteWithEmailForm, invalid, false);\r\n return;\r\n }\r\n\r\n elements.inviteWithEmailForm.find(\":input, .re-input-wrapper\").removeClass('error');\r\n elements.inviteWithEmailForm.find('.error-message').remove();\r\n\r\n requestOptions = {};\r\n\r\n request = {\r\n contact: {\r\n Name: 'there',\r\n Email: email,\r\n Invite: true\r\n }\r\n };\r\n\r\n serviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n generalUtilities.disableAndWaitFor(e.target, 'data.ConnectionAdd');\r\n pubsub.publish('uiHas.ConnectionAdd', serviceObject);\r\n pubsub.publish('mixpanel.Intent', {\r\n type: 'Sent invite email',\r\n context: 'toolbar invite'\r\n });\r\n };\r\n\r\n /**\r\n * Invite response error handler\r\n * @param {object} e event\r\n * @param {object} data response data\r\n */\r\n module.private.handleDataInviteError = function(e, data) {\r\n pubsub.publish('loggly.error', { message: JSON.stringify(data) });\r\n\r\n pubsub.publish('uiAction.MessageAdd', {\r\n message: RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE,\r\n type: 'error'\r\n });\r\n };\r\n\r\n /**\r\n * Invite response success handler\r\n * @param {object} e event\r\n * @param {object} data response data\r\n */\r\n module.private.handleDataInviteSuccess = function(e, data) {\r\n pubsub.publish('uiAction.MessageAdd', {\r\n message: window.RESAAS.Localization.Navigation.INVITE_AGENT_SUCCEEDED\r\n });\r\n };\r\n\r\n /**\r\n * Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n * @param {object} e The pubsub event.\r\n * @param {object} data Data object from service.\r\n */\r\n module.private.handleDataInvite = function(e, data) {\r\n var success;\r\n elements.email.val('');\r\n if (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n success = generalUtilities.prop(data, 'response.SaveResult.Success');\r\n if (!success) {\r\n module.private.handleDataInviteError(e, data);\r\n } else {\r\n module.private.handleDataInviteSuccess(e, data);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Initiates the module, creates a guid and binds dom events.\r\n * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n */\r\n module.private.init = function init(e, data) {\r\n var applicationUrl, domainUrl, returnUrl, queryParams;\r\n \r\n //module config\r\n module.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n applicationUrl = generalUtilities.prop(RESAAS, 'Environment.ApplicationUrl');\r\n domainUrl = generalUtilities.prop(RESAAS, 'User2.DomainUrl');\r\n returnUrl = encodeURIComponent(generalUtilities.stringFormat('{0}/profile', domainUrl));\r\n\r\n // elements\r\n elements.inviteIcon = document.querySelector(selectors.inviteIcon);\r\n elements.inputHref = document.querySelector(selectors.inputHref);\r\n elements.copyButton = document.querySelector(selectors.copyButton);\r\n elements.inviteOption = $(selectors.inviteOption);\r\n elements.inviteForm = $(selectors.inviteForm);\r\n elements.email = $(selectors.email);\r\n elements.inviteBtn = document.querySelector(selectors.inviteBtn);\r\n elements.errorMessage = document.querySelector(selectors.errorMessage);\r\n elements.inviteWithEmailForm = $(selectors.inviteWithEmailForm);\r\n\r\n // note: elements are not defined on initialization in karma. or for regular users\r\n if (!elements.inviteIcon || !elements.inputHref || !elements.copyButton || !elements.inviteBtn) {\r\n return;\r\n }\r\n elements.inputHref.value = generalUtilities.stringFormat(\r\n '{0}/signup?ReturnUrl={1}&utm_source=RESAAS+Users&utm_medium=Email&utm_content=Toolbar+Invite+URL&utm_campaign=Invite+Users',\r\n applicationUrl,\r\n returnUrl\r\n );\r\n\r\n elements.copyButton.addEventListener('click', module.private.copyInviteClicked);\r\n elements.inviteIcon.addEventListener('click', module.private.inviteClicked);\r\n elements.inputHref.addEventListener('click', module.private.copyInviteClicked);\r\n elements.inviteBtn.addEventListener('click', module.private.inviteBtnClicked);\r\n elements.inviteOption.on('click', module.private.inviteOptionClicked);\r\n // handle user invite hashchange\r\n window.addEventListener('hashchange', function (event) {\r\n if (window.location.hash.indexOf('invite') !== -1) {\r\n document.querySelector('.js-invite').click();\r\n module.private.inviteClicked();\r\n window.location.hash = \"\"\r\n }\r\n });\r\n };\r\n\r\n pubsub.subscribe('data.ConnectionAdd', module.private.handleDataInvite);\r\n\r\n module.private.init();\r\n\r\n return module;\r\n});\r\n","define(['jquery', 'pubsub', 'moduleUtilities', 'generalUtilities'], function navigationMobileControl(\r\n\t$,\r\n\tpubsub,\r\n\tmoduleUtilities,\r\n\tgeneralUtilities\r\n) {\r\n\t/**\r\n\t * re_navigation_mobile_control\r\n\t * @exports navigationMobileControl\r\n\t * @author John Allan\r\n\t */\r\n\t//#region set up\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements, values;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tselectors = {\r\n\t\tnavMobile: '.js-nav-mobile',\r\n\t\tnavPrimary: '.re-nav-primary',\r\n\t\tnavSecondary: '.re-nav-secondary',\r\n\t\tmobileNavToggle: '.js-nav-mobile-toggle',\r\n\t\tactivityItem: '.js-activity-item > a, .js-group-create'\r\n\t};\r\n\telements = {};\r\n\tvalues = {\r\n\t\tpositionScroll: 0,\r\n\t\tnavOpenClass: 're-nav-open',\r\n\t\tnavItemOpenClass: 're-nav-item-open',\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t//#region pubsub event handlers\r\n\r\n\tmodule.private.closeMobileMenu = function closeMobileMenu(skipScrollReset) {\r\n\t\t// style ui\r\n\t\t$([selectors.mobileNavToggle, selectors.navMobile].join()).removeClass(values.navOpenClass);\r\n\r\n\t\t// update page layout\r\n\t\telements.html.removeClass('re-compact-overflow-y-hidden');\r\n\r\n\t\tif (!skipScrollReset) {\r\n\t\t\telements.window.scrollTop(values.positionScroll);\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.openMobileMenu = function openMobileMenu() {\r\n\t\t// close any old menus\r\n\t\t$('.re-nav-item-open')\r\n\t\t\t.removeClass(values.navItemOpenClass)\r\n\t\t$('.re-mobile-list-item.re-nav-open, .js-nav-mobile .js-nav-list-item-primary.re-nav-open')\r\n\t\t\t.removeClass(values.navOpenClass)\r\n\t\t\t.find(selectors.navSecondary)\r\n\t\t\t.attr('aria-hidden', true);\r\n\t\t\r\n\t\t// style ui\r\n\t\t$([selectors.mobileNavToggle, selectors.navMobile].join()).addClass(values.navOpenClass);\r\n\r\n\t\t// update page layout\r\n\t\tvalues.positionScroll = elements.window.scrollTop();\r\n\t\telements.body.css({\r\n\t\t\ttop: generalUtilities.stringFormat('-{0}px', values.positionScroll)\r\n\t\t});\r\n\t\telements.html.addClass('re-compact-overflow-y-hidden');\r\n\r\n\t\t// open active menu item - add open class to parent and remove aria-hidden from all sub navs\r\n\t\t$('.js-nav-mobile .re-nav-item-active:not(.js-experience-switcher)')\r\n\t\t\t.addClass(values.navItemOpenClass)\r\n\t\t\t.parent()\r\n\t\t\t.addClass(values.navOpenClass)\r\n\t\t\t.find(selectors.navSecondary)\r\n\t\t\t.removeAttr('aria-hidden');\r\n\t};\r\n\r\n\t/**\r\n\t * Toggles mobile menu\r\n\t */\r\n\tmodule.private.handleMobileToggleClick = function handleMobileToggleClick(e) {\r\n\t\tvar opening;\r\n\r\n\t\te.preventDefault();\r\n\r\n\t\topening = !$(selectors.navMobile).hasClass(values.navOpenClass);\r\n\r\n\t\tmodule.private.closeMobileMenu(opening);\r\n\r\n\t\tif (opening) {\r\n\t\t\tmodule.private.openMobileMenu();\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.handleClickActivityItem = function handleClickActivityItem() {\r\n\t\tvalues.scrollTop = 0;\r\n\t\tmodule.private.closeMobileMenu();\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\t\telements.navMobileToggle = $(selectors.mobileNavToggle);\r\n\t\telements.html = $('html');\r\n\t\telements.body = $('body');\r\n\t\telements.window = $(window);\r\n\t\telements.navMobile = $(selectors.navMobile);\r\n\r\n\t\t// bind to hamburger icon on click event\r\n\t\telements.navMobileToggle.on('click', module.private.handleMobileToggleClick);\r\n\t\telements.navMobile.on('click', selectors.activityItem, module.private.handleClickActivityItem);\r\n\t};\r\n\r\n\t//#region external event bindings\r\n\r\n\tmodule.private.init();\r\n\r\n\t//#endregion\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","define([\r\n\t'pubsub', 'generalUtilities', 'stickySidebar'],\r\n\r\n\tfunction (pubsub, generalUtilities) {\r\n\t\t'use strict';\r\n\t\t/**\r\n\t\t* re_navigation_scroll_control\r\n\t\t* @exports navigationScrollControl\r\n\t\t* @author John Allan\r\n\t\t*/\r\n\t\t//#region set up\r\n\r\n\t\tvar module, selectors, elements, values;\r\n\r\n\t\tmodule = {};\r\n\t\t/** @module */\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\r\n\t\tselectors = {\r\n\t\t\tleftNavigation: '.re-page-navigation',\r\n\t\t\tpageContent: '.re-page-content',\r\n\t\t\tpageWrapper: '.re-page-wrapper',\r\n\t\t\tstickySidebar: '.js-stickysidebar',\r\n\t\t\tstickySidebarInner: '.js-stickysidebar-inner'\r\n\t\t};\r\n\r\n\t\telements = {};\r\n\t\tvalues = {};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region utilities\r\n\r\n\t\t/**\r\n\t\t* Sticks the navigation.\r\n\t\t* @example\r\n\t\t* module.private.stickNavigation();\r\n\t\t*/\r\n\t\tmodule.private.stickNavigation = function () {\r\n\t\t\tif (values.navigation) {\r\n\t\t\t\tmodule.private.unStickNavigation();\r\n\t\t\t}\r\n\r\n\t\t\t//setup sticky nav\r\n\t\t\tvalues.navigation = new StickySidebar(selectors.stickySidebar, {\r\n\t\t\t\tcontainerSelector: selectors.pageWrapper,\r\n\t\t\t\tinnerWrapperSelector: selectors.stickySidebarInner,\r\n\t\t\t\ttopSpacing: 70,\r\n\t\t\t\tbottomSpacing: 20\r\n\t\t\t});\r\n\r\n\t\t\t//watch the nav and page for size changes\r\n\t\t\tvalues.ro.observe(elements.pageContent);\r\n\t\t\tvalues.ro.observe(elements.navContainerInnerInner);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Updates the navigation posiiton.\r\n\t\t* @example\r\n\t\t* module.private.updateNavigation();\r\n\t\t*/\r\n\t\tmodule.private.updateNavigation = function () {\r\n\t\t\tif (values.navigation) {\r\n\t\t\t\tvalues.navigation.updateSticky();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Unsticks the navigation removing all styles and event bindings.\r\n\t\t* @example\r\n\t\t* module.private.unStickNavigation();\r\n\t\t*/\r\n\t\tmodule.private.unStickNavigation = function () {\r\n\t\t\tif (values.navigation) {\r\n\t\t\t\tvalues.navigation.destroy();\r\n\t\t\t\tdelete values.navigation;\r\n\t\t\t}\r\n\r\n\t\t\tvalues.ro.unobserve(elements.pageContent);\r\n\t\t\tvalues.ro.unobserve(elements.navContainerInnerInner);\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region pubsub event handlers\r\n\r\n\t\t/**\r\n\t\t* Handle uiAction.NavigationStateChanged setting up or tearing down the sticky navigation.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleUiActionNavigationStateChanged = function (e, data) {\r\n\t\t\tif (data.isCompact) {\r\n\t\t\t\tmodule.private.unStickNavigation();\r\n\t\t\t} else {\r\n\t\t\t\tmodule.private.stickNavigation();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\t\t\tvar navigationState;\r\n\r\n\t\t\tif (!window.requestAnimationFrame || !Function.prototype.bind) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t//module config\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\r\n\t\t\t//get current page state\r\n\t\t\telements.leftNavigation = document.querySelector(selectors.leftNavigation);\r\n\t\t\tnavigationState = generalUtilities.getNavigationState();\r\n\r\n\t\t\t//if left navigation exists\r\n\t\t\tif (elements.leftNavigation) {\r\n\r\n\t\t\t\t//create resize observer\r\n\t\t\t\tvalues.ro = new ResizeObserver(function (entries, observer) {\r\n\t\t\t\t\tmodule.private.updateNavigation();\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//find DOM elements\r\n\t\t\t\telements.pageContent = document.querySelector(selectors.pageContent);\r\n\t\t\t\telements.navContainerInnerInner = document.querySelector(selectors.stickySidebarInner);\r\n\r\n\t\t\t\t//listen for changes in navigationState.isCompact\r\n\t\t\t\tpubsub.subscribe('uiAction.NavigationStateChanged', module.private.handleUiActionNavigationStateChanged);\r\n\r\n\t\t\t\t//if we are not in compact mode\r\n\t\t\t\tif (!navigationState.isCompact) {\r\n\t\t\t\t\tmodule.private.stickNavigation();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);\r\n","define(['jquery', 'pubsub', 'moduleUtilities', 'generalUtilities'], function navigationStateControl(\r\n\t$,\r\n\tpubsub,\r\n\tmoduleUtilities,\r\n\tgeneralUtilities\r\n) {\r\n\t/**\r\n\t * re_navigation_state_control\r\n\t * @exports navigationStateControl\r\n\t * @author John Allan\r\n\t */\r\n\t//#region set up\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements, values;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tselectors = {};\r\n\telements = {};\r\n\tvalues = {};\r\n\r\n\tselectors.html = 'html';\r\n\tselectors.nav = '.js-nav-container';\r\n\tselectors.navItem = '.js-nav-item';\r\n\tselectors.primaryNavListItem = '.js-nav-list-item-primary';\r\n\tselectors.footer = '.re-page-footer';\r\n\r\n\tvalues.activeClass = 're-nav-item-active';\r\n\tvalues.highlightClass = 're-nav-highlight';\r\n\tvalues.openClass = 're-nav-item-open';\r\n\r\n\t//#endregion\r\n\r\n\t//#region utilities\r\n\r\n\t/**\r\n\t * Publishes an updated navigation state if there is a change\r\n\t */\r\n\tmodule.private.publishState = function publishState(force) {\r\n\t\tvar currentState, currentStateString;\r\n\t\tcurrentState = generalUtilities.getNavigationState();\r\n\t\tcurrentStateString = JSON.stringify(currentState);\r\n\r\n\t\tif (force === true || !values.previousStateString || values.previousStateString !== currentStateString) {\r\n\t\t\tvalues.previousStateString = currentStateString;\r\n\t\t\tpubsub.publish('uiAction.NavigationStateChanged', currentState);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * selects a nav item based on url\r\n\t * @returns {object} containing a $primary and $secondary navigation node\r\n\t */\r\n\tmodule.private.urlToNavSelectors = function urlToNavSelectors(domainUrl, pathname, hash, search) {\r\n\t\tvar result, dashboard, domHash, activeTab, pathSegment, regexResult, currentReblastTab, urlQuery, groupUniquName, decodedUrl;\r\n\r\n\t\tresult = {};\r\n\t\tdashboard = ['[href=\"', domainUrl, '/dashboard\"]'].join('');\r\n\r\n\t\t// set the default selectors\r\n\t\tresult.secondary = ['[href=\"', pathname.replace(/\\/$/, ''), hash, '\"]'].join('');\r\n\r\n\t\t// set page specific primary and secondary selectors\r\n\t\tswitch (window.pageType) {\r\n\t\t\tcase 'profile':\r\n\t\t\t\tresult.primary = '[data-id=\"activity\"]';\r\n\r\n\t\t\t\t// find the currently selected tab in the old nav\r\n\t\t\t\tactiveTab = document.querySelector('.tab.active a');\r\n\t\t\t\tdomHash = activeTab ? activeTab.hash : false;\r\n\t\t\t\turlQuery = generalUtilities.queryStringToObject(search);\r\n\r\n\t\t\t\tif (urlQuery && urlQuery.ReturnUrl) {\r\n\t\t\t\t\tdecodedUrl = decodeURIComponent(urlQuery.ReturnUrl);\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tgroupUniquName = pathname.indexOf('/feed/group') > -1 ? pathname.split(\"/feed/group/\")[1] : false;\r\n\r\n\t\t\t\tif (domHash) {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/group' + domHash.split('#')[1] + '\"],[href$=\"' + hash + '\"]';\r\n\t\t\t\t} else if (hash) {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/group' + hash.split('#')[1] + '\"],[href$=\"' + hash + '\"]';\r\n\t\t\t\t} else if (decodedUrl && decodedUrl.indexOf('/feed/group') > -1) {\r\n\t\t\t\t\t// returnurl with group feed link\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/group/' + decodedUrl.split(\"/feed/group/\")[1] + '\"]';\r\n\t\t\t\t} else if (groupUniquName) {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/group/' + groupUniquName + '\"]';\r\n\t\t\t\t} else if (pathname === '/feed/local') {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/local\"]';\r\n\t\t\t\t} else if (pathname === '/feed/myposts') {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/myposts\"]';\r\n\t\t\t\t} else if (pathname === '/feed/connections') {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/connections\"]';\r\n\t\t\t\t} else if (pathname === '/feed/global') {\r\n\t\t\t\t\tresult.secondary = '[href$=\"/feed/global\"]';\r\n\t\t\t\t} else if (!hash && !search) {\r\n\t\t\t\t\tif (RESAAS.Environment.DefaultGroupUniqueName) {\r\n\t\t\t\t\t\tcurrentReblastTab = RESAAS.Environment.DefaultGroupUniqueName;\r\n\t\t\t\t\t\tresult.secondary = '[href$=\"/feed/group/' + currentReblastTab + '\"]';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tresult.secondary = '[href$=\"/feed/global\"]';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'activity-feed':\r\n\t\t\t\tif (window.isO === 'False') {\r\n\t\t\t\t\tresult.primary = '[data-id=\"agents\"]';\r\n\t\t\t\t\tresult.secondary = null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (window.isO === 'True') {\r\n\t\t\t\t\tresult.primary = '[data-id=\"settings\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"' + domainUrl + '/profile\"]';\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'send-message':\r\n\t\t\t\tresult.primary = '[data-id=\"agents\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'public-question':\r\n\t\t\t\tif (window.RESAAS.User2.IsProfessional) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"learn\"]';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.primary = '[data-id=\"questions\"]';\r\n\t\t\t\t}\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'hashtag':\r\n\t\t\t\tresult.primary = '[data-id=\"activity\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'group':\r\n\t\t\t\tresult.primary = '[data-id=\"activity\"]';\r\n\t\t\t\tregexResult = pathname.match(\r\n\t\t\t\t\t/(\\/groups\\/)([0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12})/i\r\n\t\t\t\t);\r\n\t\t\t\tresult.secondary = regexResult ? '[data-id=\"' + regexResult[2] + '\"]' : null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'dashboard':\r\n\t\t\t\tresult.primary = '[data-id=\"settings\"]';\r\n\t\t\t\tresult.secondary = dashboard;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'manageSubscriptions':\r\n\t\t\t\tresult.primary = '[data-id=\"settings\"]';\r\n\t\t\t\tresult.secondary = dashboard;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'listing-discovery':\r\n\t\t\t\tresult.primary = '[data-id=\"listings\"]';\r\n\t\t\t\tresult.secondary = '[href^=\"/listings\"]';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'user-discovery':\r\n\t\t\t\tif (pathname.indexOf('brokeros') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"brokeros\"]';\r\n\t\t\t\t\tresult.secondary = null;\r\n\t\t\t\t} else if (search.indexOf('RelationshipSearch=2') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"agents\"]';\r\n\t\t\t\t\tresult.secondary = '[href^=\"/agents?RelationshipSearch=2\"]';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.primary = '[data-id=\"agents\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/agents\"]';\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'my-referrals':\r\n\t\t\t\tresult.primary = '[data-id=\"referrals\"]';\r\n\t\t\t\t// result.secondary = will be found by exact match (my leads)\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'one-to-one-referral-form':\r\n\t\t\t\tresult.primary = '[data-id=\"referrals\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'lead-create':\r\n\t\t\t\tif (search.indexOf('referral') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"referrals\"]';\r\n\t\t\t\t\tresult.secondary = '[href^=\"/ReferralCreate\"]';\r\n\t\t\t\t} else if (search.indexOf('buyerneed') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"buyerNeeds\"]';\r\n\t\t\t\t\tresult.secondary = '[href^=\"/BuyerNeedCreate\"]';\r\n\t\t\t\t} else if (search.indexOf('instant') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"instantLeads\"]';\r\n\t\t\t\t\tresult.secondary = '[href^=\"/InstantLeadCreate\"]';\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'DiscoverLeadsPage':\r\n\t\t\t\tif (search.indexOf('2') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"referrals\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/leads?leadTypeFilter=2\"]';\r\n\t\t\t\t} else if (search.indexOf('3') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"buyerNeeds\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/leads?leadTypeFilter=3\"]';\r\n\t\t\t\t} else if (search.indexOf('4') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"instantLeads\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/leads?leadTypeFilter=4\"]';\r\n\t\t\t\t} \r\n\t\t\t\tbreak;\r\n\t\t\tcase 'listing-edit':\r\n\t\t\t\tresult.primary = '[data-id=\"listings\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'referral-response':\r\n\t\t\t\tif (window.RESAAS.ReferralDetails.ReferralType === 3) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"buyerNeeds\"]';\r\n\t\t\t\t}\r\n\t\t\t\tif (window.RESAAS.ReferralDetails.ReferralType === 2) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"referrals\"]';\r\n\t\t\t\t}\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'instant-referral-response':\r\n\t\t\t\tresult.primary = '[data-id=\"instantLeads\"]';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'referral-app':\r\n\t\t\t\tresult.primary = '[data-id=\"referrals\"]';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'buyerneeds-app':\r\n\t\t\t\tresult.primary = '[data-id=\"buyerNeeds\"]';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'listing-detail':\r\n\t\t\t\tresult.primary = '[data-id=\"listings\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'reblast-detail':\r\n\t\t\t\tresult.primary = '[data-id=\"activity\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'question-detail':\r\n\t\t\t\tresult.primary = '[data-id=\"learn\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'brokeros':\r\n\t\t\t\tresult.primary = '[data-id=\"brokeros\"]';\r\n\t\t\t\tresult.secondary = '[href^=\"/brokeros\"]';\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'brokeros-clients':\r\n\t\t\t\tresult.primary = '[data-id=\"brokeros\"]';\r\n\t\t\t\tresult.secondary = null;\r\n\t\t\t\tbreak;\r\n\t\t\tcase 'dashboardAnalytics':\r\n\t\t\t\tif (search.indexOf('type=1') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"analytics\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/analytics?type=1\"]';\r\n\t\t\t\t} else if (search.indexOf('type=7') >= 0) {\r\n\t\t\t\t\tresult.primary = '[data-id=\"analytics\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/analytics?type=7\"]';\r\n\t\t\t\t} else {\r\n\t\t\t\t\tresult.primary = '[data-id=\"analytics\"]';\r\n\t\t\t\t\tresult.secondary = '[href=\"/analytics?type=1\"]';\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\treturn result;\r\n\t};\r\n\r\n\t/**\r\n\t * Highlight the corresponding nav item in the nav according to the current page\r\n\t */\r\n\tmodule.private.setCurrentPage = function setCurrentPage() {\r\n\r\n\t\tvar activeClasses, domainUrl, currentSelectors, $selected;\r\n\r\n\t\t$selected = $();\r\n\r\n\t\t// add back once groups are removed from experience switcher\r\n\t\t// highlightClasses = values.activeClass + ' ' + values.highlightClass + ' ' + values.openClass;\r\n\r\n\t\t// remove once groups are removed from experience switcher\r\n\t\tactiveClasses = values.highlightClass + ' ' + values.openClass;\r\n\r\n\t\t// cleanup any existing highlighting\r\n\t\telements.allLinks.removeClass(values.activeClass);\r\n\r\n\t\t// get nav selectors\r\n\t\tdomainUrl = generalUtilities.prop(RESAAS, 'User2.DomainUrl');\r\n\t\tcurrentSelectors = module.private.urlToNavSelectors(\r\n\t\t\tdomainUrl,\r\n\t\t\twindow.location.pathname,\r\n\t\t\twindow.location.hash,\r\n\t\t\twindow.location.search\r\n\t\t);\r\n\r\n\t\t// find secondary nav item\r\n\t\tif (currentSelectors.secondary) {\r\n\t\t\t$selected = $selected.add(elements.allLinks.filter(currentSelectors.secondary));\r\n\t\t}\r\n\r\n\t\t// add primary nav item\r\n\t\tif ($selected.length) {\r\n\t\t\t$selected = $selected.add($selected.closest(selectors.primaryNavListItem).children(selectors.navItem));\r\n\t\t} else {\r\n\t\t\t$selected = $selected.add(elements.allLinks.filter(currentSelectors.primary));\r\n\t\t}\r\n\r\n\t\t// highlight nav\r\n\t\t// add back once groups are removed from experience switcher\r\n\t\t// $selected.addClass(highlightClasses);\r\n\r\n\t\t// remove once groups are removed from experience switcher\r\n\t\t$selected\r\n\t\t\t.addClass(values.activeClass)\r\n\t\t\t.not('.js-has-flyoutmenu')\r\n\t\t\t.addClass(activeClasses)\r\n\t\t\t.siblings('.js-nav-secondary')\r\n\t\t\t.removeAttr('aria-hidden')\r\n\t\t\t.slideDown('fast')\r\n\t\t\t.parent()\r\n\t\t\t.addClass('re-nav-open');\r\n\t};\r\n\r\n\t//#endregion\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\telements.window = $(window);\r\n\t\telements.html = $(selectors.html);\r\n\t\telements.nav = $(selectors.nav);\r\n\t\telements.footer = $(selectors.footer);\r\n\t\telements.allLinks = elements.nav.find(selectors.navItem);\r\n\r\n\t\tmodule.private.publishState(true);\r\n\t\tmodule.private.setCurrentPage();\r\n\r\n\t\twindow.addEventListener('reactNavigate', module.private.setCurrentPage);\r\n\r\n\t\t// dom event binding\r\n\t\telements.window\r\n\t\t\t.off('resize.NavigationStateControl')\r\n\t\t\t.on('resize.NavigationStateControl', generalUtilities.debounce(module.private.publishState, 100));\r\n\t\telements.window\r\n\t\t\t.off('popstate.NavigationStateControl hashchange.NavigationStateControl')\r\n\t\t\t.on(\r\n\t\t\t\t'popstate.NavigationStateControl hashchange.NavigationStateControl',\r\n\t\t\t\tgeneralUtilities.debounce(module.private.setCurrentPage, 100)\r\n\t\t\t);\r\n\t};\r\n\r\n\t//#region external event bindings\r\n\tpubsub.subscribe('uiAction.NavigationStateControlInit', module.private.init);\r\n\r\n\t//#endregion\r\n\r\n\t//expose API\r\n\treturn module;\r\n});\r\n","define(['jquery', 'pubsub', 'moduleUtilities', 'generalUtilities'], function navigationTreeControl(\r\n\t$,\r\n\tpubsub,\r\n\tmoduleUtilities,\r\n\tgeneralUtilities\r\n) {\r\n\t/**\r\n\t * re_navigation_tree_control\r\n\t * @exports navigationTreeControl\r\n\t * @author Elina Goldin\r\n\t */\r\n\t//#region set up\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements, values;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tselectors = {\r\n\t\tnavContainer: '.js-nav-container',\r\n\t\tnavSecondary: '.re-nav-secondary',\r\n\t\texperienceSwitcher: '.js-experience-switcher',\r\n\t\tnotificationItem: '.js-notification',\r\n\t\tnavItemOpen: '.re-nav-item-open',\r\n\t\tflyOutMenu: '.js-has-flyoutmenu'\r\n\t};\r\n\telements = {};\r\n\tvalues = {};\r\n\r\n\tvalues.highlightClass = 're-nav-highlight';\r\n\r\n\t//#endregion\r\n\r\n\t//#region pubsub event handlers\r\n\r\n\tmodule.private.openSecondaryNavigation = function openSecondaryNavigation(target, animate) {\r\n\t\tif (animate) {\r\n\t\t\ttarget\r\n\t\t\t\t.addClass('re-nav-item-open')\r\n\t\t\t\t.siblings(selectors.navSecondary)\r\n\t\t\t\t.removeAttr('aria-hidden')\r\n\t\t\t\t.slideDown('fast')\r\n\t\t\t\t.parent()\r\n\t\t\t\t.addClass('re-nav-open');\r\n\t\t} else {\r\n\t\t\ttarget\r\n\t\t\t\t.addClass('re-nav-item-open')\r\n\t\t\t\t.siblings(selectors.navSecondary)\r\n\t\t\t\t.removeAttr('aria-hidden')\r\n\t\t\t\t.show()\r\n\t\t\t\t.parent()\r\n\t\t\t\t.addClass('re-nav-open');\r\n\t\t}\r\n\t};\r\n\r\n\tmodule.private.closeExperienceSwitcher = function closeExperienceSwitcher(e) {\r\n\t\tif (e) {\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\t\telements.experienceSwitcher\r\n\t\t\t.removeClass('re-nav-item-open')\r\n\t\t\t.siblings(selectors.navSecondary)\r\n\t\t\t.attr('aria-hidden', true)\r\n\t\t\t.hide()\r\n\t\t\t.parent()\r\n\t\t\t.removeClass('re-nav-open');\r\n\t\telements.navContainer.removeClass('re-experienceswitcher-open');\r\n\t};\r\n\r\n\tmodule.private.closeSecondaryNavigation = function closeSecondaryNavigation(target, animate) {\r\n\t\tif (animate) {\r\n\t\t\ttarget\r\n\t\t\t\t.removeClass('re-nav-item-open')\r\n\t\t\t\t.siblings(selectors.navSecondary)\r\n\t\t\t\t.attr('aria-hidden', true)\r\n\t\t\t\t.slideUp('fast')\r\n\t\t\t\t.parent()\r\n\t\t\t\t.removeClass('re-nav-open');\r\n\t\t} else {\r\n\t\t\ttarget\r\n\t\t\t\t.removeClass('re-nav-item-open')\r\n\t\t\t\t.siblings(selectors.navSecondary)\r\n\t\t\t\t.attr('aria-hidden', true)\r\n\t\t\t\t.hide()\r\n\t\t\t\t.parent()\r\n\t\t\t\t.removeClass('re-nav-open');\r\n\t\t}\r\n\t\tmodule.private.closeExperienceSwitcher();\r\n\t};\r\n\r\n\t/**\r\n\t * Handles toggling of secondary navigation.\r\n\t * @param {object} [e] Click event\r\n\t * @param {object} [data] Data passed in by uiAction.NavigationStateChanged event.\r\n\t */\r\n\tmodule.private.handleSecondaryNavigation = function handleSecondaryNavigation(e) {\r\n\t\tvar $this;\r\n\r\n\t\t$this = $(this);\r\n\t\t// if item has subnav, prevent default on top level link\r\n\t\tif ($this.next(selectors.navSecondary).length > 0) {\r\n\t\t\te.preventDefault();\r\n\t\t}\r\n\r\n\t\t// handling flyout menus and dropdowns\r\n\t\tif ($this.hasClass('js-has-flyoutmenu')) {\r\n\t\t\tif ($this.hasClass('re-nav-item-open')) {\r\n\t\t\t\tmodule.private.closeSecondaryNavigation($this, true);\r\n\t\t\t} else {\r\n\t\t\t\tmodule.private.closeSecondaryNavigation($(selectors.flyOutMenu), false);\r\n\t\t\t\tmodule.private.openSecondaryNavigation($this, false);\r\n\t\t\t\tif ($this.hasClass('js-experience-switcher')) {\r\n\t\t\t\t\telements.navContainer.addClass('re-experienceswitcher-open');\r\n\t\t\t\t\tpubsub.publish('mixpanel.Intent', { type: 'open dialpad' });\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// handling regular left nav subnavs\r\n\t\t} else if ($this.hasClass('re-nav-item-open')) {\r\n\t\t\tif (!generalUtilities.getNavigationState().isCompact) {\r\n\t\t\t\tmodule.private.handleNavigationClose();\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tmodule.private.closeSecondaryNavigation($(selectors.navItemOpen), true);\r\n\t\t\tmodule.private.openSecondaryNavigation($this, true);\r\n\t\t}\r\n\r\n\t\treturn true;\r\n\t};\r\n\r\n\t/**\r\n\t * Closes all secondary navs.\r\n\t */\r\n\tmodule.private.handleNavigationClose = function handleNavigationClose() {\r\n\t\tmodule.private.closeSecondaryNavigation($(selectors.navItemOpen), false);\r\n\t};\r\n\r\n\t/**\r\n\t * Handle click on , creates service object and publish pubsub event uiNeeds.FeatureBrowse.\r\n\t * @param {object} e Click event\r\n\t */\r\n\tmodule.private.handleGenericNavClick = function handleGenericNavClick(e) {\r\n\t\te.stopPropagation();\r\n\t};\r\n\t//#endregion\r\n\r\n\tmodule.private.handleHtmlClick = function handleHtmlClick() {\r\n\t\tmodule.private.closeSecondaryNavigation($('.js-has-flyoutmenu.re-nav-item-open'), false);\r\n\t};\r\n\r\n\tmodule.private.handleDownloadAppClick = function handleDownloadAppClick(e) {\r\n\t\tRESAAS.MixPanel.trackEvent('Intent', { type: 'Download App Link', from: 'Top Nav Dropdown' });\r\n\t};\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\telements.document = $(document);\r\n\t\telements.html = $('html');\r\n\t\telements.window = $(window);\r\n\t\telements.navItemPrimary = $('.js-nav-item-primary');\r\n\t\telements.navContainer = $(selectors.navContainer);\r\n\t\telements.navMobileToggle = $('.js-nav-mobile-toggle');\r\n\t\telements.navSecondaryExperiences = $('.js-nav-secondary-experiences');\r\n\t\telements.navDialpad = $('.re-nav-dialpad');\r\n\t\telements.experienceSwitcher = $(selectors.experienceSwitcher);\r\n\t\telements.downloadApp = $('.js-nav-item-downloadapp');\r\n\r\n\t\t// dom event binding\r\n\t\telements.html.off('click.NavigationTreeControl');\r\n\t\telements.navContainer.off('click.NavigationTreeControl');\r\n\t\telements.navItemPrimary.off('click.NavigationTreeControl');\r\n\t\telements.document.off('keydown.NavigationTreeControl');\r\n\t\telements.downloadApp.off('click.NavigationTreeControl');\r\n\r\n\t\telements.navItemPrimary.on('click.NavigationTreeControl', module.private.handleSecondaryNavigation);\r\n\t\telements.html.on('click.NavigationTreeControl', module.private.handleHtmlClick);\r\n\t\telements.navContainer.on('click.NavigationTreeControl', module.private.handleGenericNavClick);\r\n\t\telements.downloadApp.on('click.NavigationTreeControl', module.private.handleDownloadAppClick);\r\n\r\n\t\t// this binding now only applies to the experience switcher close button (no others exist)\r\n\t\telements.navContainer.on(\r\n\t\t\t'click.NavigationTreeControl',\r\n\t\t\t'.js-close-nav, .js-nav-back-btn',\r\n\t\t\tmodule.private.closeExperienceSwitcher\r\n\t\t);\r\n\r\n\t\telements.document.on('keydown.NavigationTreeControl', function documentOnKeyDown(ev) {\r\n\t\t\tif (ev.keyCode === 27) {\r\n\t\t\t\tmodule.private.closeExperienceSwitcher();\r\n\t\t\t}\r\n\t\t});\r\n\t};\r\n\r\n\t//#region external event bindings\r\n\r\n\tmodule.private.init();\r\n\r\n\t//#endregion\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","define([\r\n\t'jquery', 'pubsub', 'moduleUtilities', 'generalUtilities', 'notificationService'],\r\n\r\n\tfunction ($, pubsub, moduleUtilities, generalUtilities) {\r\n\t\t'use strict';\r\n\t\t/**\r\n\t\t* re_navigation_unseen_notifications_control\r\n\t\t* @exports navigationUnseenNotificationControl\r\n\t\t* @author May Montazer\r\n\t\t*/\r\n\t\t//#region set up\r\n\r\n\t\tvar module, selectors, elements;\r\n\r\n\t\tmodule = {};\r\n\t\t/** @module */\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\t\tselectors = {};\r\n\t\telements = {};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region utilities\r\n\r\n\t\t/**\r\n\t\t* ask for the unseen notication\r\n\t\t*/\r\n\t\tmodule.private.notificationUnseenBrowse = function notificationUnseenBrowse() {\r\n\t\t\tvar request, serviceObject;\r\n\r\n\t\t\trequest = {};\r\n\t\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties);\r\n\r\n\t\t\t// service needs to be using publish2\r\n\t\t\tpubsub.publish('uiNeeds.NotificationUnseen', serviceObject);\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from uiNeeds.NotificationUnseen, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationUnseen = function (e, data) {\r\n\t\t\tvar r = data && data.response;\r\n\r\n\t\t\tif (moduleUtilities.isOwnEvent(data, module.properties) && r) {\r\n\t\t\t\tif (r.Connections) {\r\n\t\t\t\t\tvar connectionIcon= document.querySelector('.js-notificationcount-connection');\r\n\t\t\t\t\tif (connectionIcon) {\r\n\t\t\t\t\t\tconnectionIcon.innerText = r.Connections;\r\n\t\t\t\t\t\tdocument.querySelector('.js-nav-connectioncount').classList.add('re-nav-hasactivity');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpubsub.publish('loggly.error', {\r\n\t\t\t\t\t\t\tmessage: generalUtilities.stringFormat('There is {0} connections to show but the connection icon is not rendered in {1}', r.Connections, document.querySelector('.re-page-navigation, .re-page-navigation-anonymous').innerHTML)\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif (r.Notifications) {\r\n\t\t\t\t\tvar notificationIcon = document.querySelector('.js-notificationcount-notification');\r\n\t\t\t\t\tif (notificationIcon){\r\n\t\t\t\t\t\tnotificationIcon.innerText = r.Notifications;\r\n\t\t\t\t\t\tdocument.querySelector('.js-nav-notificationcount').classList.add('re-nav-hasactivity');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tpubsub.publish('loggly.error', {\r\n\t\t\t\t\t\t\tmessage: generalUtilities.stringFormat('There is {0} notifications but the notification icon is not rendered in {1}', r.Connections, document.querySelector('.re-page-navigation, .re-page-navigation-anonymous').innerHTML)\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t}\r\n\t\t\t\tif (r.HasNewInstantMessage) {\r\n\t\t\t\t\tdocument.querySelector('.js-nav-instantmessage-count').classList.add('re-nav-hasactivity');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tpubsub.publish('loggly.error', {\r\n\t\t\t\t\tmessage: generalUtilities.stringFormat('showing unseen notifications is failed {0}', JSON.stringify(data))\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events. Tracks notification visits.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\r\n\t\t\tif (!generalUtilities.prop(window, 'RESAAS.User2.IsProfessional')) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t//module config\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\t\t\tmodule.private.notificationUnseenBrowse();\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\t\tpubsub.subscribe('data.NotificationUnseen', module.private.handleDataNotificationUnseen);\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);\r\n","define([\r\n\t'jquery', 'pubsub', 'moduleUtilities', 'generalUtilities', 'notificationsEnumData', 'notificationService', 'messageControl2'],\r\n\r\n\tfunction ($, pubsub, moduleUtilities, generalUtilities, notificationsEnumData) {\r\n\t\t/**\r\n\t\t* re_notification_delete_control\r\n\t\t* @exports notificationDeleteControl\r\n\t\t* @author Eugene Katsov\r\n\t\t*/\r\n\r\n\t\t//#region set up\r\n\r\n\t\t'use strict';\r\n\r\n\t\tvar module, selectors, elements, values;\r\n\r\n\t\tmodule = {};\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\t\tselectors = {\r\n\t\t\tnotificationListWrapper: '.re-notifications-list',\r\n\t\t\tnotificationDelete: '.js-generic-delete'\r\n\t\t};\r\n\t\telements = {};\r\n\t\tvalues = {};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region utilities\r\n\r\n\t\t/**\r\n\t\t* Delete method\r\n\t\t* @param {object} e event\r\n\t\t* @param {object} data response data\r\n\t\t*/\r\n\t\tmodule.private.notificationDelete = function (e, data) {\r\n\t\t\tvar requestOptions, request, serviceObject;\r\n\r\n\t\t\trequestOptions = {};\r\n\r\n\t\t\trequest = { NotificationId: data.notificationId };\r\n\r\n\t\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n\t\t\tpubsub.publish('uiHas.NotificationDelete', serviceObject);\r\n\t\t};\r\n\t\t//#endregion\r\n\r\n\t\t//#region pubsub event handlers\r\n\r\n\t\t/**\r\n\t\t* Delete response error handler\r\n\t\t* @param {object} e event\r\n\t\t* @param {object} data response data\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationDeleteError = function (e, data) {\r\n\t\t\tpubsub.publish('loggly.error', { message: JSON.stringify(data) });\r\n\r\n\t\t\tpubsub.publish('uiAction.MessageAdd', {\r\n\t\t\t\t'message': RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE,\r\n\t\t\t\t'type': 'error'\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Delete response success handler\r\n\t\t* @param {object} e event\r\n\t\t* @param {object} data response data\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationDeleteSuccess = function (e, data) {\r\n\t\t\tvar $nItem;\r\n\r\n\t\t\t$nItem = elements.notificationListWrapper.find('[data-notificationid=\"' + data.request.NotificationId + '\"]');\r\n\r\n\t\t\t$nItem.fadeOut(\"slow\", function () {\r\n\t\t\t\t$nItem.remove();\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationDelete = function (e, data) {\r\n\t\t\tvar success;\r\n\r\n\t\t\tsuccess = generalUtilities.prop(data, 'response.HideNotificationForUserResult.Success');\r\n\r\n\t\t\tif (!success) {\r\n\t\t\t\tmodule.private.handleDataNotificationDeleteError(e, data);\r\n\t\t\t} else {\r\n\t\t\t\tmodule.private.handleDataNotificationDeleteSuccess(e, data);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region dom event handlers\r\n\r\n\t\t/**\r\n\t\t* Handle click on the delete, hides notification list\r\n\t\t* @param {object} e Click event\r\n\t\t*/\r\n\t\tmodule.private.handleNotificationDeleteClick = function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tmodule.private.notificationDelete('', { notificationId: e.currentTarget.dataset.notificationid });\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\t\t\tvar html;\r\n\r\n\t\t\t//module config\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\r\n\t\t\t//elements\r\n\t\t\telements.body = $('body');\r\n\t\t\telements.notificationListWrapper = $(selectors.notificationListWrapper);\r\n\r\n\t\t\t//dom event binding\r\n\t\t\telements.notificationListWrapper.on('click', selectors.notificationDelete, module.private.handleNotificationDeleteClick);\r\n\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\r\n\t\tpubsub.subscribe('data.NotificationDelete', module.private.handleDataNotificationDelete);\r\n\t\tpubsub.subscribe('uiAction.NotificationDelete', module.private.notificationDelete);\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);","define([\r\n\t'jquery', 'pubsub', 'moduleUtilities', 'generalUtilities', 'notificationService'],\r\n\r\n\tfunction ($, pubsub, moduleUtilities, generalUtilities) {\r\n\t\t'use strict';\r\n\t\t/**\r\n\t\t* re_notification_visit_control\r\n\t\t* @exports notificationVisitControl\r\n\t\t* @author John Allan\r\n\t\t*/\r\n\t\t//#region set up\r\n\r\n\t\tvar module, selectors, elements, values;\r\n\r\n\t\tmodule = {};\r\n\t\t/** @module */\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\t\tselectors = {};\r\n\t\telements = {};\r\n\t\tvalues = {};\r\n\r\n\t\tselectors.notificationListWrappers = '.js-notificationhistory-list, .js-notifications-list';\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region utilities\r\n\r\n\t\t/**\r\n\t\t* Called on init to mark a notification as visted.\r\n\t\t*/\r\n\t\tmodule.private.markNotificationAsVisited = function () {\r\n\t\t\tvar authenticated, notificationId, request, serviceObject;\r\n\r\n\t\t\tauthenticated = !!generalUtilities.prop(RESAAS, 'User2.UserId');\r\n\t\t\tnotificationId = generalUtilities.queryStringToObject().notificationId;\r\n\t\t\t\r\n\t\t\tif (authenticated && notificationId) {\r\n\t\t\t\trequest = {\r\n\t\t\t\t\tnotificationId: notificationId\r\n\t\t\t\t};\r\n\r\n\t\t\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties);\r\n\r\n\t\t\t\tpubsub.publish('uiHas.NotificationVisit', serviceObject);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region pubsub event handlers\r\n\r\n\t\t/**\r\n\t\t* Handles error for the data.NotificationVisit event.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationVisitError = function (e, data) {\r\n\t\t\tpubsub.publish('loggly.error', { message: 'Setting notification to visited failed: ' + JSON.stringify(data) });\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from uiHas.NotificationVisit, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationVisit = function (e, data) {\r\n\t\t\tif (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\t\tif (data.response.status !== 200) {\r\n\t\t\t\t\tmodule.private.handleDataNotificationVisitError(e, data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region dom event handlers\r\n\t\t/**\r\n\t\t* Handle click on notification list wrappers, adds the notificationId to the url before redirecting.\r\n\t\t* @param {object} e Click event\r\n\t\t*/\r\n\t\tmodule.private.handleClick = function (e) {\r\n\t\t\tvar href, url, $notification, notificationId, visited, queryObject;\r\n\r\n\t\t\t$notification = $(e.target).closest('[data-notificationid]');\r\n\t\t\tvisited = $notification.hasClass('js-notification-visited');\r\n\t\t\tnotificationId = $notification.attr('data-notificationid');\r\n\r\n\t\t\tif (notificationId) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\thref = $(e.target).attr('href');\r\n\t\t\t\tqueryObject = {\r\n\t\t\t\t\tmp_from: 'notification'\r\n\t\t\t\t};\r\n\r\n\t\t\t\tif (!visited) {\r\n\t\t\t\t\tqueryObject.notificationId = notificationId;\r\n\t\t\t\t}\r\n\r\n\t\t\t\turl = generalUtilities.addParamsToUrlQueryString(href, queryObject);\r\n\t\t\t\tgeneralUtilities.redirect(url);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events. Tracks notification visits.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\r\n\t\t\t//module config\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\t\t\telements.notificationListWrappers = $(selectors.notificationListWrappers);\r\n\r\n\t\t\t//dom event binding\r\n\t\t\telements.notificationListWrappers.off('click.notificationVisit').on('click.notificationVisit', 'a', module.private.handleClick);\r\n\r\n\t\t\t//mark notification as visited\r\n\t\t\tmodule.private.markNotificationAsVisited();\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\t\tpubsub.subscribe('data.NotificationVisit', module.private.handleDataNotificationVisit);\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);","define([\r\n\t'jquery', 'pubsub', 'moduleUtilities', 'generalUtilities', 'notificationToolbarListCompiled', 'smoke', 'notificationsEnumData', 'relationshiptypesData', 'moment', 'notificationService', 'connectionService', 'messageControl2', 'notificationDeleteControl'],\r\n\r\n\tfunction ($, pubsub, moduleUtilities, generalUtilities, notificationToolbarListCompiled, smoke, notificationsEnumData, relationshiptypesData, moment) {\r\n\t\t/**\r\n\t\t* re_notification_connection_control\r\n\t\t* @exports notificationConnectionListControl\r\n\t\t* @author Eugene Katsov\r\n\t\t*/\r\n\r\n\t\t//#region set up\r\n\r\n\t\t'use strict';\r\n\r\n\t\tvar module, selectors, elements, values, overLayModule;\r\n\r\n\t\tmodule = {};\r\n\t\tmodule.private = {};\r\n\t\tmodule.properties = {};\r\n\t\tselectors = {\r\n\t\t\tnotificationListWrapper: '.re-notifications-list',\r\n\t\t\tconnectionWrapper: '.re-nav-notifications',\r\n\t\t\tnotificationConnect: '.js-notification-connection',\r\n\t\t\tnotificationConnectDismiss: '.js-connection-delete',\r\n\t\t\tconnectionIcon: '.js-connection',\r\n\t\t\tconnectionList: '.js-connection-list',\r\n\t\t\tnotificationCount: '.js-notificationcount'\r\n\t\t};\r\n\t\telements = {};\r\n\t\tvalues = {\r\n\t\t\trequesterRegexObj: /title=\"(.[^\"]+)\"/g,\r\n\t\t\tpositionScroll: 0\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//#region utilities\r\n\r\n\t\t/**\r\n\t\t* get notificaiton count count from dom\r\n\t\t* @returns {number} \r\n\t\t*/\r\n\t\tmodule.private.getNotificationCountFromDom = function () {\r\n\t\t\tvalues.notificationCount = parseInt(elements.connectionList.closest(selectors.connectionWrapper).find(selectors.notificationCount).html(), 10);\r\n\r\n\t\t\treturn values.notificationCount;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* massage data in irder to prettify date and format count message\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.massageData = function (data) {\r\n\t\t\tvar regexArr;\r\n\t\t\tif (Array.isArray(data.Data)) {\r\n\r\n\t\t\t\tdata.Data.map(function (item) {\r\n\t\t\t\t\t//prettify/relativize dates\r\n\t\t\t\t\tif (item.hasOwnProperty('DateCreated')) {\r\n\t\t\t\t\t\tif (generalUtilities.prop(item, 'DateCreated')) {\r\n\t\t\t\t\t\t\titem.RelativeDate = moment(item.DateCreated + '+00:00').fromNow();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (item.hasOwnProperty('NotificationType')) {\r\n\r\n\t\t\t\t\t\titem.ActionLink = RESAAS.Localization.Global.ACCEPT;\r\n\t\t\t\t\t\titem.NotificationTypeName = \"connection\";\r\n\t\t\t\t\t\tif (item.hasOwnProperty('Message')) {\r\n\t\t\t\t\t\t\tregexArr = values.requesterRegexObj.exec(item.Message);\r\n\t\t\t\t\t\t\titem.RequesterName = regexArr === null ? \"\" : regexArr[1];\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//format count message\r\n\t\t\t\tdata.notificationCountMessage = (data.Data.length === 1) ? RESAAS.Localization.Global.NOTIFICATIONS_COUNT_MESSAGE_SINGULAR : generalUtilities.stringFormat(RESAAS.Localization.Global.NOTIFCATINOS_COUNT_MESSAGE_PLURAL, data.Data.length);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* show and hide activity indicator\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.showHideActivityIndicator = function (data) {\r\n\t\t\tvar action, notifications;\r\n\t\t\tnotifications = generalUtilities.prop(data, 'response.Data');\r\n\t\t\tvalues.notificationCount = generalUtilities.prop(data, 'response.Count');\r\n\t\t\taction = (notifications && notifications.length) ? 'addClass' : 'removeClass';\r\n\t\t\telements.connectionList.parent()[action]('re-nav-hasactivity');\r\n\t\t\telements.connectionList.parent().find('.js-notificationcount').html(values.notificationCount);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* decrease notification count\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.decrementActivityIndicator = function () {\r\n\t\t\tvalues.notificationCount--;\r\n\t\t\telements.connectionList.parent().find('.js-notificationcount').html(values.notificationCount);\r\n\r\n\t\t\tif (values.notificationCount <= 0) {\r\n\t\t\t\telements.connectionList.parent().removeClass('re-nav-hasactivity');\r\n\t\t\t}\r\n\t\t};\r\n\t\t//#endregion\r\n\r\n\t\t//#region pubsub event handlers\r\n\r\n\t\t/**\r\n\t\t* Connection response error handler\r\n\t\t* @param {object} e event\r\n\t\t* @param {object} data response data\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationConnectionError = function (e, data) {\r\n\t\t\tif (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\t\tpubsub.publish('loggly.error', { message: JSON.stringify(data) });\r\n\r\n\t\t\t\tpubsub.publish('uiAction.MessageAdd', {\r\n\t\t\t\t\t'message': RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE,\r\n\t\t\t\t\t'type': 'error'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Connection response success handler\r\n\t\t* @param {object} e event\r\n\t\t* @param {object} data response data\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationConnectionSuccess = function (e, data) {\r\n\t\t\tvar successMsg, res, $nItem;\r\n\r\n\t\t\t//decrease count\r\n\t\t\tmodule.private.decrementActivityIndicator();\r\n\r\n\t\t\t//if not own event exit\r\n\t\t\tif (!moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\t\treturn false; \r\n\t\t\t}\r\n\r\n\t\t\t//hide notification\r\n\t\t\tres = data.response.SaveResult.Data;\r\n\r\n successMsg = generalUtilities.stringFormat('You’re Connected! Click here to start a conversation and explore new opportunities together!', res.KnownContactUserId);\r\n\r\n\t\t\t$nItem = elements.notificationListWrapper.find('[data-notificationid=\"' + data.notificationId + '\"]');\r\n\r\n\t\t\t$nItem.fadeOut(\"slow\", function () {\r\n\t\t\t\t$nItem.remove();\r\n\t\t\t});\r\n\r\n\t\t\tpubsub.publish('uiAction.MessageAdd', {\r\n\t\t\t\t'message': successMsg,\r\n\t\t\t});\r\n\r\n\t\t\tpubsub.publish('relationship.accepted', {\r\n\t\t\t\ttype: 'connection accepted',\r\n\t\t\t\trequester: data.requester,\r\n\t\t\t\treceiver: data.reciever,\r\n\t\t\t\telement: 'notifications',\r\n\t\t\t\tcontent: 'relationship accepted'\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationConnection = function (e, data) {\r\n\t\t\tvar success;\r\n\r\n\t\t\tsuccess = generalUtilities.prop(data, 'response.SaveResult.Success');\r\n\r\n\t\t\tif (!success) {\r\n\t\t\t\tmodule.private.handleDataNotificationConnectionError(e, data);\r\n\t\t\t} else {\r\n\t\t\t\tmodule.private.handleDataNotificationConnectionSuccess(e, data);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataConnectionNotificationBrowse = function (e, data) {\r\n\t\t\tif (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\t\tif (generalUtilities.prop(data, 'response.Data')) {\r\n\t\t\t\t\tmodule.private.handleDataConnectionNotificationBrowseSuccess(e, data);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tmodule.private.handleDataConnectionNotificationBrowseError(e, data);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataNotificationDelete = function (e, data) {\r\n\t\t\tif (generalUtilities.prop(data, 'response.HideNotificationForUserResult.Success')) {\r\n\t\t\t\tmodule.private.decrementActivityIndicator();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataConnectionNotificationBrowseSuccess = function (e, data) {\r\n\t\t\tvar response;\r\n\t\t\tresponse = generalUtilities.prop(data, 'response');\r\n\t\t\tresponse.Success = true;\r\n\r\n\t\t\tif (generalUtilities.prop(data, 'response.Count')) {\r\n\t\t\t\tmodule.private.massageData(response);\r\n\t\t\t}\r\n\r\n\t\t\tresponse.historyLink = 'connectionrequests';\r\n\t\t\tresponse.historyLinkText = RESAAS.Localization.Navigation.VIEW_CONNECTION_HISTORY;\r\n\t\t\tresponse.dismissAllowed = true;\r\n\t\t\tresponse.NoNotificationMessage = RESAAS.Localization.Navigation.TOOLBAR_NO_NEW_CONNECTION_REQUEST;\r\n response.showExpandNetworkMessage = true;\r\n\r\n if (response.Data.length > 0) {\r\n response.Data.forEach(function (notification) {\r\n if (generalUtilities.prop(notification, 'ContentMetadata.InvitationMessage')) {\r\n var message = notification.ContentMetadata.InvitationMessage;\r\n var isLongMessage = message.length > 200;\r\n notification.ContentMetadata.truncatedMessage = isLongMessage ? message.substring(0, 200) + '... ' : null;\r\n }\r\n });\r\n }\r\n\r\n\t\t\t//show/hide the activity indicator (red dot)\r\n\t\t\tmodule.private.showHideActivityIndicator(data);\r\n\r\n\t\t\t//inject the notification list\r\n elements.connectionList.html(notificationToolbarListCompiled(response));\r\n\r\n\r\n var seeMoreButtons = document.querySelectorAll('.js-invitation-message-see-more');\r\n if (seeMoreButtons.length > 0) {\r\n seeMoreButtons.forEach(function (button) {\r\n button.addEventListener('click', function () {\r\n var parent = this.closest('.re-notification-invitation-message');\r\n var fullMessage = parent.querySelector('.js-invitation-message-full');\r\n var truncatedMessage = parent.querySelector('.js-invitation-message-truncated');\r\n fullMessage.style.display = 'block';\r\n truncatedMessage.style.display = 'none';\r\n });\r\n });\r\n }\r\n\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handles error types and publishes to loggly.\r\n\t\t* @param {object} e The pubsub event.\r\n\t\t* @param {object} data Data object from service.\r\n\t\t*/\r\n\t\tmodule.private.handleDataConnectionNotificationBrowseError = function (e, data) {\r\n\t\t\tvar status, errMsg;\r\n\r\n\t\t\tstatus = generalUtilities.prop(data, 'response.status');\r\n\t\t\tswitch (status) {\r\n\t\t\t\tcase '401':\r\n\t\t\t\t\terrMsg = RESAAS.Localization.Global.UNAUTHORIZED_USER_ERROR_MESSAGE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase '500':\r\n\t\t\t\t\terrMsg = RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\terrMsg = RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tpubsub.publish('loggly.error', { 'message': 'connection browse failed to retrieve results: ' + JSON.stringify(data.response) });\r\n\r\n\t\t\tpubsub.publishSync('uiAction.MessageAdd', {\r\n\t\t\t\t'message': errMsg,\r\n\t\t\t\t'type': 'error'\r\n\t\t\t});\r\n\t\t};\r\n\t\t//#endregion\r\n\r\n\t\t//#region dom event handlers\r\n\r\n\t\t/**\r\n\t\t* Connection delete click handler\r\n\t\t* @param {object} e event\r\n\t\t* \r\n\t\t*/\r\n\t\tmodule.private.handleNotificationConnectionDeleteClick = function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tvar requester, reciever, event;\r\n\t\t\treciever = [window.RESAAS.User2.FirstName, window.RESAAS.User2.LastName].join(\" \");\r\n\t\t\trequester = e.currentTarget.dataset.requestername;\r\n\t\t\tevent = e;\r\n\r\n\t\t\tsmoke.confirm(RESAAS.Localization.Global.SMOKE_HIDE_NOTIFICATION, function (e) {\r\n\t\t\t\tif (e) {\r\n\t\t\t\t\tpubsub.publish('relationship.dismissed', {\r\n\t\t\t\t\t\ttype: 'connection dismissed',\r\n\t\t\t\t\t\trequester: requester,\r\n\t\t\t\t\t\treceiver: reciever,\r\n\t\t\t\t\t\telement: 'notifications',\r\n\t\t\t\t\t\tcontent: 'relationship dismissed'\r\n\t\t\t\t\t});\r\n\t\t\t\t\tpubsub.publish('uiAction.NotificationDelete', { notificationId: event.target.dataset.notificationid });\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t}, { ok: RESAAS.Localization.Global.HIDE, cancel: RESAAS.Localization.Global.CANCEL_TEXT });\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle click on the action, connects the users\r\n\t\t* @param {object} e Click event\r\n\t\t*/\r\n\t\tmodule.private.handleNotificationConnectionClick = function (e) {\r\n\t\t\te.preventDefault();\r\n\r\n\t\t\tvar requestOptions, request, serviceObject, nId, requester, reciever, cuId;\r\n\r\n\t\t\treciever = [window.RESAAS.User2.FirstName, window.RESAAS.User2.LastName].join(\" \");\r\n\t\t\trequester = e.currentTarget.dataset.requestername;\r\n\t\t\tnId = e.currentTarget.dataset.notificationid;\r\n\t\t\tcuId = e.currentTarget.dataset.creatoruserid;\r\n\r\n\t\t\trequestOptions = {\r\n\t\t\t\trequester: requester,\r\n\t\t\t\treciever: reciever,\r\n\t\t\t\tnotificationId: nId \r\n\t\t\t};\r\n\r\n\t\t\trequest = {\r\n\t\t\t\tcontact: {\r\n\t\t\t\t\tKnownContactUserId: cuId,\r\n\t\t\t\t\tRelationships: [{\r\n\t\t\t\t\t\tType: relationshiptypesData.browse().Connection,\r\n\t\t\t\t\t\tAction: 0\r\n\t\t\t\t\t}]\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n\t\t\tpubsub.publish('uiHas.ConnectionAdd', serviceObject);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Publish a notification browse request\r\n\t\t*/\r\n\t\tmodule.private.notificationConnectionBrowse = function () {\r\n\t\t\tvar request, requestOptions, serviceObject, notificationTypes;\r\n\t\t\t//seen in the request/response but not passed to the webservice (same as module.properties)\r\n\t\t\trequestOptions = {};\r\n\t\t\tnotificationTypes = notificationsEnumData.browse();\r\n\t\t\t//sent to webservice\r\n\t\t\trequest = {\r\n\t\t\t\tIncludeNotificationTypes: [notificationTypes.InviteToConnectNotification],\r\n\t\t\t\tRecordCount: 10\r\n\t\t\t};\r\n\r\n\t\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n\t\t\t//service needs to be using publish2\r\n\t\t\tpubsub.publish('uiNeeds.NotificationBrowse2', serviceObject);\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t* Handle click on the connection icon, hide/shows notification list\r\n\t\t* @param {object} e Click event\r\n\t\t*/\r\n\t\tmodule.private.handleConnectionIconClick = function (e) {\r\n\r\n\r\n\t\t\tpubsub.publish('mixpanel.Intent', {\r\n\t\t\t\ttype: 'open connection notifications dropdown'\r\n\t\t\t});\r\n\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tif ($(e.currentTarget).next(selectors.notificationList).is(':visible')) {\r\n\t\t\t\t\tmodule.private.notificationConnectionBrowse();\r\n\t\t\t\t}\r\n\t\t\t}, 0);\r\n\t\t};\r\n\r\n\t\tmodule.private.handleFindAgentClick = function handleUpsellClick(e) {\r\n\t\t\tif (generalUtilities.prop(window, 'RESAAS.MixPanel.trackEvent')) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tRESAAS.MixPanel.trackEvent(\r\n\t\t\t\t\t'Intent',\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\ttype: e.target.getAttribute('data-mixpanel-type'),\r\n\t\t\t\t\t\tfrom: e.target.getAttribute('data-mixpanel-from')\r\n\t\t\t\t\t},\r\n\t\t\t\t\te.target.getAttribute('href')\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t//#endregion\r\n\r\n\t\t/**\r\n\t\t* Initiates the module, creates a guid and binds dom events.\r\n\t\t* @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t* @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t\t*/\r\n\t\tmodule.private.init = function (e, data) {\r\n\t\t\tvar html;\r\n\r\n\t\t\t//module config\r\n\t\t\tmodule.properties.guid = (data && data.guid) ? data.guid : generalUtilities.uuid();\r\n\r\n\t\t\t//elements\r\n\t\t\telements.body = $('body');\r\n\t\t\telements.notificationListWrapper = $(selectors.notificationListWrapper);\r\n\t\t\telements.connectionWrapper = $(selectors.connectionWrapper);\r\n\t\t\telements.connectionList = $(selectors.connectionList);\r\n\r\n\t\t\t//moment\r\n\t\t\tgeneralUtilities.configureMoment(moment);\r\n\r\n\t\t\t//inject pending message\r\n\t\t\telements.connectionList.html(notificationToolbarListCompiled({ pendingMessage: true }));\r\n\r\n\t\t\t//get count from dom\r\n\t\t\tmodule.private.getNotificationCountFromDom();\r\n\r\n\t\t\t//dom event binding\r\n\t\t\telements.notificationListWrapper.on('click', selectors.notificationConnect, module.private.handleNotificationConnectionClick);\r\n\t\t\telements.notificationListWrapper.on('click', selectors.notificationConnectDismiss, module.private.handleNotificationConnectionDeleteClick);\r\n\t\t\telements.connectionWrapper.on('click', selectors.connectionIcon, module.private.handleConnectionIconClick);\r\n\t\t\telements.notificationListWrapper.on('click', '.re-notification-expand-network .re-btn', module.private.handleFindAgentClick);\r\n\t\t};\r\n\r\n\t\t//#region external event bindings\r\n\r\n\t\tpubsub.subscribe('data.ConnectionAdd', module.private.handleDataNotificationConnection);\r\n\t\tpubsub.subscribe('data.NotificationBrowse2', module.private.handleDataConnectionNotificationBrowse);\r\n\t\tpubsub.subscribe('data.NotificationDelete', module.private.handleDataNotificationDelete);\r\n\r\n\t\tmodule.private.init();\r\n\r\n\t\t//#endregion\r\n\r\n\t\t//expose API\r\n\t\treturn module;\r\n\t}\r\n);\r\n","define([\r\n\t'jquery',\r\n\t'pubsub',\r\n\t'moduleUtilities',\r\n\t'generalUtilities',\r\n\t'notificationToolbarListCompiled',\r\n\t'moment',\r\n\t'notificationsEnumData',\r\n\t'notificationService'\r\n], function notificationToolbarGenericListControl(\r\n\t$,\r\n\tpubsub,\r\n\tmoduleUtilities,\r\n\tgeneralUtilities,\r\n\tnotificationToolbarListCompiled,\r\n\tmoment,\r\n\tnotificationsEnumData\r\n) {\r\n\t/**\r\n\t * re_notification_list_control\r\n\t * @exports notificationToolbarGenericListControl\r\n\t * @author John Allan\r\n\t */\r\n\r\n\t'use strict';\r\n\r\n\tvar module, selectors, elements, values;\r\n\r\n\tmodule = {};\r\n\tmodule.private = {};\r\n\tmodule.properties = {};\r\n\tselectors = {\r\n\t\tnotificationListWrapper: '.re-nav-notifications',\r\n\t\tnotificationList: '.js-notifications-list',\r\n\t\tnotificationIcon: '.js-notification'\r\n\t};\r\n\telements = {};\r\n\tvalues = {\r\n\t\trequesterRegexObj: /title=\"(.[^\"]+)\"/g,\r\n\t\tpositionScroll: 0\r\n\t};\r\n\r\n\t/**\r\n\t * Publish a notification browse request\r\n\t */\r\n\tmodule.private.notificationGenericBrowse = function notificationGenericBrowse() {\r\n\t\tvar request, requestOptions, serviceObject, notificationTypes;\r\n\t\t// seen in the request/response but not passed to the webservice (same as module.properties)\r\n\t\trequestOptions = {};\r\n\t\tnotificationTypes = notificationsEnumData.browse();\r\n\r\n\t\t// sent to webservice\r\n\t\trequest = {\r\n\t\t\tRecordCount: 10,\r\n\t\t\tIncludeDismissed: true,\r\n\t\t\tExcludeNotificationTypes: [\r\n\t\t\t\tnotificationTypes.InviteToConnectNotification,\r\n\t\t\t\tnotificationTypes.InviteToSellingCommunityNotification\r\n\t\t\t]\r\n\t\t};\r\n\t\tserviceObject = moduleUtilities.createServiceObject(request, module.properties, requestOptions);\r\n\r\n\t\t// service needs to be using publish2\r\n\t\tpubsub.publish('uiNeeds.NotificationBrowse2', serviceObject);\r\n\t};\r\n\r\n\t/**\r\n\t * massage data in irder to prettify date and format count message\r\n\t * @param {object} data Data object from service.\r\n\t */\r\n\tmodule.private.massageData = function massageData(data) {\r\n\t\tvar banner;\r\n\t\tif (Array.isArray(data.Data)) {\r\n\t\t\tdata.Data.forEach(function dataDataForEach(item) {\r\n\t\t\t\t// prettify/relativize dates\r\n\t\t\t\tif (item.hasOwnProperty('DateCreated')) {\r\n\t\t\t\t\tif (generalUtilities.prop(item, 'DateCreated')) {\r\n\t\t\t\t\t\titem.RelativeDate = moment(item.DateCreated + '+00:00').fromNow();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (item.hasOwnProperty('NotificationType')) {\r\n\t\t\t\t\titem.NotificationTypeName = 'generic';\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t// format count message\r\n\t\t\tdata.notificationCountMessage =\r\n\t\t\t\tdata.Data.length === 1\r\n\t\t\t\t\t? RESAAS.Localization.Global.NOTIFICATIONS_COUNT_MESSAGE_SINGULAR\r\n\t\t\t\t\t: generalUtilities.stringFormat(\r\n\t\t\t\t\t\t\tRESAAS.Localization.Global.NOTIFCATINOS_COUNT_MESSAGE_PLURAL,\r\n\t\t\t\t\t\t\tdata.Data.length\r\n\t\t\t\t\t );\r\n\r\n\t\t\t// inject premium banner\r\n\t\t\tif (data.Data.length && generalUtilities.prop(window, 'RESAAS.Environment.Experience') !== \"commercial\") {\r\n\t\t\t\tbanner = { banner: true };\r\n\r\n\t\t\t\tif (!generalUtilities.prop(window, 'RESAAS.User2.ReferralPro') && !generalUtilities.prop(window, 'RESAAS.User2.PremiumPlusBadge')) {\r\n\t\t\t\t\tbanner.upsell = true;\r\n\t\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\telse if (generalUtilities.prop(window, 'RESAAS.User2.PremiumPlusBadge')){\r\n\t\t\t\t\tbanner.premiumplus = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tdata.Data.splice(3, 0, banner);\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t * @param {object} e The pubsub event.\r\n\t * @param {object} data Data object from service.\r\n\t */\r\n\tmodule.private.handleDataGenericNotificationBrowse = function handleDataGenericNotificationBrowse(e, data) {\r\n\t\tif (generalUtilities.prop(data, 'response.Data')) {\r\n\t\t\tmodule.private.handleDataGenericNotificationBrowseSuccess(e, data);\r\n\t\t} else {\r\n\t\t\tmodule.private.handleDataGenericNotificationBrowseError(e, data);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Handle data event returned from service, determines success of fail and calls the corresponding function.\r\n\t * @param {object} e The pubsub event.\r\n\t * @param {object} data Data object from service.\r\n\t */\r\n\tmodule.private.handleDataGenericNotificationBrowseSuccess = function handleDataGenericNotificationBrowseSuccess(\r\n\t\te,\r\n\t\tdata\r\n\t) {\r\n\t\tvar response, notificationTypes, includedNotificationTypes;\r\n\r\n\t\tnotificationTypes = notificationsEnumData.browse();\r\n\t\tincludedNotificationTypes = generalUtilities.prop(data, 'request.IncludeNotificationTypes');\r\n\r\n\t\t// if connection requests are NOT the only notifications retrieved hide the unread indicator (red dot)\r\n\t\tif (\r\n\t\t\t!(\r\n\t\t\t\tincludedNotificationTypes &&\r\n\t\t\t\tincludedNotificationTypes.length === 1 &&\r\n\t\t\t\tincludedNotificationTypes.indexOf(notificationTypes.InviteToConnectNotification) === 0\r\n\t\t\t)\r\n\t\t) {\r\n\t\t\telements.notificationList.parent().removeClass('re-nav-hasactivity');\r\n\t\t}\r\n\r\n\t\t// if not own event exit\r\n\t\tif (!moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\t// show notification list\r\n\t\tresponse = generalUtilities.prop(data, 'response');\r\n\t\tresponse.Success = true;\r\n\r\n\t\tif (generalUtilities.prop(data, 'response.Count')) {\r\n\t\t\tmodule.private.massageData(response);\r\n\t\t}\r\n\r\n\t\tresponse.historyLink = 'notifications';\r\n\t\tresponse.historyLinkText = RESAAS.Localization.Navigation.VIEW_NOTIFICATIONS_HISTORY;\r\n\t\tresponse.dismissAllowed = false;\r\n\t\tresponse.NoNotificationMessage = RESAAS.Localization.Global.TOOLBAR_NO_NEW_NOTIFICATIONS;\r\n\r\n\t\t// inject the notification list\r\n\t\telements.notificationList.html(notificationToolbarListCompiled(response));\r\n\t};\r\n\r\n\t/**\r\n\t * Handles error types and publishes to loggly.\r\n\t * @param {object} e The pubsub event.\r\n\t * @param {object} data Data object from service.\r\n\t */\r\n\tmodule.private.handleDataGenericNotificationBrowseError = function handleDataGenericNotificationBrowseError(e, data) {\r\n\t\tvar status, errMsg;\r\n\r\n\t\tif (moduleUtilities.isOwnEvent(data, module.properties)) {\r\n\t\t\tstatus = generalUtilities.prop(data, 'response.status');\r\n\t\t\tswitch (status) {\r\n\t\t\t\tcase '401':\r\n\t\t\t\t\terrMsg = RESAAS.Localization.Global.Unauthorized_USER_ERROR_MESSAGE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase '500':\r\n\t\t\t\t\terrMsg = RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tdefault:\r\n\t\t\t\t\terrMsg = RESAAS.Localization.Global.GENERIC_WEBSERVICE_ERROR_MESSAGE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t}\r\n\r\n\t\t\tpubsub.publish('loggly.error', {\r\n\t\t\t\tmessage: generalUtilities.stringFormat(\r\n\t\t\t\t\t'connection browse failed to retrieve results: {0}',\r\n\t\t\t\t\tJSON.stringify(data.response)\r\n\t\t\t\t)\r\n\t\t\t});\r\n\r\n\t\t\tpubsub.publish('uiAction.MessageAdd', {\r\n\t\t\t\tmessage: errMsg,\r\n\t\t\t\ttype: 'error'\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Handle click on the notification icon, hide/shows notification list\r\n\t * @param {object} e Click event\r\n\t */\r\n\tmodule.private.handleNotificationIconClick = function handleNotificationIconClick(e) {\r\n\t\t// Preventing scrolling mobile notification menu is open\r\n\t\tif (\r\n\t\t\t$(e.currentTarget)\r\n\t\t\t\t.parent()\r\n\t\t\t\t.hasClass('re-nav-open')\r\n\t\t) {\r\n\t\t\tvalues.positionScroll = elements.window.scrollTop();\r\n\t\t\telements.body.css({ top: '-' + values.positionScroll + 'px' });\r\n\t\t\telements.html.addClass('re-compact-overflow-y-hidden');\r\n\t\t} else {\r\n\t\t\telements.html.removeClass('re-compact-overflow-y-hidden');\r\n\t\t\telements.window.scrollTop(values.positionScroll);\r\n\t\t}\r\n\r\n\t\tpubsub.publish('mixpanel.Intent', {\r\n\t\t\ttype: 'open notifications dropdown'\r\n\t\t});\r\n\r\n\t\t// the timeout is here to ensure it happens at the bottom of the event stack\r\n\t\t// the tree control does the reveal before this check takes place which is why\r\n\t\t// we call the service if the list is visible and not the other way around\r\n\t\t// @john.allan\r\n\t\tsetTimeout(function iconClickTimeout() {\r\n\t\t\tif (\r\n\t\t\t\t$(e.currentTarget)\r\n\t\t\t\t\t.next(selectors.notificationList)\r\n\t\t\t\t\t.is(':visible')\r\n\t\t\t) {\r\n\t\t\t\tmodule.private.notificationGenericBrowse();\r\n\t\t\t}\r\n\t\t}, 0);\r\n\t};\r\n\r\n\tmodule.private.handleUpsellClick = function handleUpsellClick(e) {\r\n\t\tif (generalUtilities.prop(window, 'RESAAS.MixPanel.trackEvent')) {\r\n\t\t\te.preventDefault();\r\n\t\t\tRESAAS.MixPanel.trackEvent(\r\n\t\t\t\t'Intent',\r\n\t\t\t\t{\r\n\t\t\t\t\ttype: e.target.getAttribute('data-mixpanel-type'),\r\n\t\t\t\t\tfrom: e.target.getAttribute('data-mixpanel-from')\r\n\t\t\t\t},\r\n\t\t\t\te.target.getAttribute('href')\r\n\t\t\t);\r\n\t\t}\r\n\t};\r\n\r\n\t/**\r\n\t * Initiates the module, creates a guid and binds dom events.\r\n\t * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n\t * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n\t */\r\n\tmodule.private.init = function init(e, data) {\r\n\t\t// module config\r\n\t\tmodule.properties.guid = data && data.guid ? data.guid : generalUtilities.uuid();\r\n\r\n\t\t// elements\r\n\t\telements.html = $('html');\r\n\t\telements.window = $(window);\r\n\t\telements.body = $('body');\r\n\t\telements.notificationListWrapper = $(selectors.notificationListWrapper);\r\n\t\telements.notificationList = $(selectors.notificationList);\r\n\r\n\t\t// moment\r\n\t\tgeneralUtilities.configureMoment(moment);\r\n\r\n\t\t// dom event binding\r\n\t\telements.notificationListWrapper.on(\r\n\t\t\t'click',\r\n\t\t\tselectors.notificationIcon,\r\n\t\t\tmodule.private.handleNotificationIconClick\r\n\t\t);\r\n\r\n\t\telements.notificationListWrapper.on('click', '.re-notification-upsell .re-btn', module.private.handleUpsellClick);\r\n\r\n\t\t// inject pending message\r\n\t\telements.notificationList.html(notificationToolbarListCompiled({ pendingMessage: true }));\r\n\t};\r\n\r\n\tpubsub.subscribe('data.NotificationBrowse2', module.private.handleDataGenericNotificationBrowse);\r\n\tpubsub.subscribe('uiAction.NotificationBrowse', module.private.notificationGenericBrowse);\r\n\r\n\tmodule.private.init();\r\n\r\n\t// expose API\r\n\treturn module;\r\n});\r\n","define(['pubsub', 'ajaxUtility'],\n\n\tfunction (pubsub, ajaxUtility) {\n\t\t'use strict';\n\n\t\tfunction uiHasConnectionAdd(e, data) {\n\t\t\tvar config;\n\n\t\t\tconfig = {\n\t\t\t\t'method': 'POST',\n\t\t\t\t'url': '/Services/ContactService.svc/json/Save'\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\n\t\t}\n\n\t\tfunction uiNeedsConnectionBrowse(e, data) {\r\n\t\t\tvar config;\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\n\t\t\t\t'url': '/Services/api/contacts/relationships'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\n\n\t\tpubsub.subscribe('uiHas.ConnectionAdd', uiHasConnectionAdd);\n\t\tpubsub.subscribe('uiNeeds.ConnectionBrowse', uiNeedsConnectionBrowse);\n\t}\n\n);","define(['jquery', 'pubsub', 'ajaxUtility', 'mixpanelControl'],\r\n\r\n\tfunction ($, pubsub, ajaxUtility) {\r\n\t\t'use strict';\r\n\r\n\r\n\t\tfunction updateUserLastActiveDate(e, data) {\r\n\t\t\tvar config;\r\n\r\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\r\n\t\t\t\t'url': '/services/api/contentreach/ping'\r\n\t\t\t};\r\n\r\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\r\n\r\n\t\tpubsub.subscribe('uiHas.UserLastActiveDate', updateUserLastActiveDate);\r\n\t}\r\n\r\n);","define(['pubsub', 'ajaxUtility'],\r\n\r\n\tfunction (pubsub, ajaxUtility) {\r\n\t\t'use strict';\r\n\r\n\t\tfunction uiNeedsMissedReblasts(e, data) {\r\n\t\t\tvar config;\r\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\r\n\t\t\t\t'url': '/Services/Api/MissedReblasts',\r\n\t\t\t};\r\n\r\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\r\n\r\n\t\tpubsub.subscribe('uiNeeds.MissedReblastsBrowse', uiNeedsMissedReblasts);\r\n\r\n\t}\r\n\r\n);","define(['pubsub', 'ajaxUtility', 'generalUtilities'],\n\n\tfunction notificationService(pubsub, ajaxUtility, generalUtilities) {\n\n\t\tfunction uiNeedsNotificationBrowse(e, data) {\r\n\t\t\tvar config;\n\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\n\t\t\t\t'url': '/Services/MainService.svc/json/GetNotificationsForUser'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\n\n\n\t\tfunction uiNeedsNotificationBrowse2(e, data) {\r\n\t\t\tvar config;\n\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\n\t\t\t\t'url': '/Services/api/notifications'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\r\n\t\t}\n\n\t\tfunction uiHasNotificationDelete(e, data) {\r\n\t\t\tvar config;\n\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'POST',\n\t\t\t\t'url': '/Services/MainService.svc/json/HideNotificationForUser'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\n\n\t\t}\n\n\t\tfunction uiHasNotificationVisit(e, data) {\r\n\t\t\tvar config;\n\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'POST',\n\t\t\t\t'url': '/Services/api/notifications/visit'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\n\n\t\t}\n\n\t\tfunction uiNeedsNotificationUnseen(e, data) {\r\n\t\t\tvar config;\n\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'GET',\n\t\t\t\t'url': '/Services/api/notifications/unseen'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\n\n\t\t}\n\n\t\tfunction uiHasNotificationWebForm(e, data) {\r\n\t\t\tvar config, reason;\n\t\t\t\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'POST',\n\t\t\t\t'url': '/Services/api/notifications/webformcomplete?type=1'\r\n\t\t\t};\n\t\t\treason = generalUtilities.prop(data, 'request.reason');\n\n\t\t\tif (reason === 'instantref_success') {\n\t\t\t\tconfig.url = '/Services/api/notifications/webformcomplete?type=2';\n\t\t\t}\n\t\t\telse if (reason === 'instantref_cancel') {\n\t\t\t\tconfig.url = '/Services/api/notifications/webformcomplete?type=3';\n\t\t\t}\n\n\n\t\t\tajaxUtility.publish2(e, data, config);\n\t\t}\n\n\t\tfunction uiHasNotificationPhoneView(e, data) {\r\n\t\t\tvar config;\n\n\t\t\tconfig = {\r\n\t\t\t\t'method': 'POST',\n\t\t\t\t'url': '/Services/api/notifications/phoneview'\r\n\t\t\t};\n\n\t\t\tajaxUtility.publish2(e, data, config);\n\n\t\t}\n\n\t\tpubsub.subscribe('uiNeeds.NotificationBrowse', uiNeedsNotificationBrowse);\n\t\tpubsub.subscribe('uiNeeds.NotificationBrowse2', uiNeedsNotificationBrowse2);\n\t\tpubsub.subscribe('uiHas.NotificationDelete', uiHasNotificationDelete);\r\n\t\tpubsub.subscribe('uiHas.NotificationVisit', uiHasNotificationVisit);\r\n\t\tpubsub.subscribe('uiHas.NotificationWebForm', uiHasNotificationWebForm);\r\n\t\tpubsub.subscribe('uiNeeds.NotificationUnseen', uiNeedsNotificationUnseen);\n\t\tpubsub.subscribe('uiNeeds.NotificationPhoneView', uiHasNotificationPhoneView);\n\t}\n\n);\n","define(['Handlebars', 'text!notificationToolbarListTemplate'],\r\n\r\n\tfunction (Handlebars, notificationToolbarListTemplate) {\r\n\t\t'use strict';\r\n\r\n\t\tvar h = Handlebars.compile(notificationToolbarListTemplate);\r\n\r\n\t\treturn h; \r\n\t}\r\n\r\n);","/**\r\n * @fileOverview re_userlastactivedate_control.js\r\n *\r\n * @author May Montazer\r\n *\r\n * @events\r\n * Subscribe\r\n * 'uiHas.UserLastActiveDate\r\n */\r\n\r\ndefine(['jquery', 'pubsub', 'generalUtilities', 'updateUserLastActiveDateService'], function(\r\n $,\r\n pubsub,\r\n generalUtilities\r\n) {\r\n 'use strict';\r\n\r\n var module;\r\n\r\n module = {};\r\n module.private = {};\r\n module.properties = {};\r\n\r\n //#endregion\r\n\r\n //#region utilities\r\n\r\n /**\r\n * set the UserLastActiveTime session storage .\r\n * @param {object} data The success status data.\r\n */\r\n module.private.handleUserLastActiveDateSuccess = function() {\r\n if (window.Modernizr && window.Modernizr.sessionstorage) {\r\n sessionStorage.setItem('UserLastActiveTime', new Date().getTime());\r\n }\r\n };\r\n\r\n /**\r\n * Handle error\r\n * @param {object} e The pubsub event.\r\n * @param {object} data The UserrrLastActiveDate data.\r\n */\r\n module.private.handleUserLastActiveDateError = function(e, data) {\r\n pubsub.publish('loggly.error', {\r\n message: generalUtilities.stringFormat('User Last Active Date update is failed {0}', JSON.stringify(data))\r\n });\r\n };\r\n\r\n /**\r\n * handle data from contentreach service\r\n * @param {object} data The UserLastActiveTime data.\r\n */\r\n module.private.handleUserLastActiveDate = function(e, data) {\r\n if (generalUtilities.prop(data, 'response.status') && data.response.status === 200) {\r\n module.private.handleUserLastActiveDateSuccess();\r\n } else {\r\n module.private.handleUserLastActiveDateError(e, data);\r\n }\r\n };\r\n\r\n /**\r\n * update the user last active date.\r\n */\r\n module.private.updateUserLastActiveDate = function() {\r\n var fiveMinCheck;\r\n\r\n if (window.Modernizr && window.Modernizr.sessionstorage && sessionStorage.getItem('UserLastActiveTime')) {\r\n fiveMinCheck = new Date().getTime() - sessionStorage.getItem('UserLastActiveTime');\r\n\r\n // checking 5 min is over\r\n if (fiveMinCheck > 300000) {\r\n pubsub.publish('uiHas.UserLastActiveDate', {});\r\n }\r\n } else {\r\n pubsub.publish('uiHas.UserLastActiveDate', {});\r\n }\r\n };\r\n\r\n //#endregion\r\n\r\n /**\r\n * Initiates the module, creates a guid and binds dom events.\r\n * @param {object} [e] The pubsub event, optional depending module is self init or by pubsub event.\r\n * @param {object} [data] Data passed in by pubsub event, optional depending module is self init or by pubsub event.\r\n */\r\n module.private.init = function() {\r\n if (generalUtilities.prop(window, 'RESAAS.User2.UserId')) {\r\n module.private.updateUserLastActiveDate();\r\n } else {\r\n return false;\r\n }\r\n };\r\n\r\n //#region external event bindings\r\n\r\n module.private.init();\r\n\r\n pubsub.subscribe('data.UserLastActiveDate', module.private.handleUserLastActiveDate);\r\n\r\n //#endregion\r\n\r\n //expose API\r\n return module;\r\n});\r\n","/**\r\n * sticky-sidebar - A JavaScript plugin for making smart and high performance.\r\n * @version v3.3.1\r\n * @link https://github.com/abouolia/sticky-sidebar\r\n * @author Ahmed Bouhuolia\r\n * @license The MIT License (MIT)\r\n**/\r\n!function (t, e) { \"object\" == typeof exports && \"undefined\" != typeof module ? e(exports) : \"function\" == typeof define && define.amd ? define([\"exports\"], e) : e(t.StickySidebar = {}) }(this, function (t) { \"use strict\"; \"undefined\" != typeof window ? window : \"undefined\" != typeof global ? global : \"undefined\" != typeof self && self; var e, i, n = (function (t, e) { (function (t) { Object.defineProperty(t, \"__esModule\", { value: !0 }); var l, n, e = function () { function n(t, e) { for (var i = 0; i < e.length; i++) { var n = e[i]; n.enumerable = n.enumerable || !1, n.configurable = !0, \"value\" in n && (n.writable = !0), Object.defineProperty(t, n.key, n) } } return function (t, e, i) { return e && n(t.prototype, e), i && n(t, i), t } }(), i = (l = \".stickySidebar\", n = { topSpacing: 0, bottomSpacing: 0, containerSelector: !1, innerWrapperSelector: \".inner-wrapper-sticky\", stickyClass: \"is-affixed\", resizeSensor: !0, minWidth: !1 }, function () { function c(t) { var e = this, i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : {}; if (function (t, e) { if (!(t instanceof e)) throw new TypeError(\"Cannot call a class as a function\") }(this, c), this.options = c.extend(n, i), this.sidebar = \"string\" == typeof t ? document.querySelector(t) : t, void 0 === this.sidebar) throw new Error(\"There is no specific sidebar element.\"); this.sidebarInner = !1, this.container = this.sidebar.parentElement, this.affixedType = \"STATIC\", this.direction = \"down\", this.support = { transform: !1, transform3d: !1 }, this._initialized = !1, this._reStyle = !1, this._breakpoint = !1, this.dimensions = { translateY: 0, maxTranslateY: 0, topSpacing: 0, lastTopSpacing: 0, bottomSpacing: 0, lastBottomSpacing: 0, sidebarHeight: 0, sidebarWidth: 0, containerTop: 0, containerHeight: 0, viewportHeight: 0, viewportTop: 0, lastViewportTop: 0 }, [\"handleEvent\"].forEach(function (t) { e[t] = e[t].bind(e) }), this.initialize() } return e(c, [{ key: \"initialize\", value: function () { var i = this; if (this._setSupportFeatures(), this.options.innerWrapperSelector && (this.sidebarInner = this.sidebar.querySelector(this.options.innerWrapperSelector), null === this.sidebarInner && (this.sidebarInner = !1)), !this.sidebarInner) { var t = document.createElement(\"div\"); for (t.setAttribute(\"class\", \"inner-wrapper-sticky\"), this.sidebar.appendChild(t); this.sidebar.firstChild != t;)t.appendChild(this.sidebar.firstChild); this.sidebarInner = this.sidebar.querySelector(\".inner-wrapper-sticky\") } if (this.options.containerSelector) { var e = document.querySelectorAll(this.options.containerSelector); if ((e = Array.prototype.slice.call(e)).forEach(function (t, e) { t.contains(i.sidebar) && (i.container = t) }), !e.length) throw new Error(\"The container does not contains on the sidebar.\") } \"function\" != typeof this.options.topSpacing && (this.options.topSpacing = parseInt(this.options.topSpacing) || 0), \"function\" != typeof this.options.bottomSpacing && (this.options.bottomSpacing = parseInt(this.options.bottomSpacing) || 0), this._widthBreakpoint(), this.calcDimensions(), this.stickyPosition(), this.bindEvents(), this._initialized = !0 } }, { key: \"bindEvents\", value: function () { window.addEventListener(\"resize\", this, { passive: !0, capture: !1 }), window.addEventListener(\"scroll\", this, { passive: !0, capture: !1 }), this.sidebar.addEventListener(\"update\" + l, this), this.options.resizeSensor && \"undefined\" != typeof ResizeSensor && (new ResizeSensor(this.sidebarInner, this.handleEvent), new ResizeSensor(this.container, this.handleEvent)) } }, { key: \"handleEvent\", value: function (t) { this.updateSticky(t) } }, { key: \"calcDimensions\", value: function () { if (!this._breakpoint) { var t = this.dimensions; t.containerTop = c.offsetRelative(this.container).top, t.containerHeight = this.container.clientHeight, t.containerBottom = t.containerTop + t.containerHeight, t.sidebarHeight = this.sidebarInner.offsetHeight, t.sidebarWidth = this.sidebarInner.offsetWidth, t.viewportHeight = window.innerHeight, t.maxTranslateY = t.containerHeight - t.sidebarHeight, this._calcDimensionsWithScroll() } } }, { key: \"_calcDimensionsWithScroll\", value: function () { var t = this.dimensions; t.sidebarLeft = c.offsetRelative(this.sidebar).left, t.viewportTop = document.documentElement.scrollTop || document.body.scrollTop, t.viewportBottom = t.viewportTop + t.viewportHeight, t.viewportLeft = document.documentElement.scrollLeft || document.body.scrollLeft, t.topSpacing = this.options.topSpacing, t.bottomSpacing = this.options.bottomSpacing, \"function\" == typeof t.topSpacing && (t.topSpacing = parseInt(t.topSpacing(this.sidebar)) || 0), \"function\" == typeof t.bottomSpacing && (t.bottomSpacing = parseInt(t.bottomSpacing(this.sidebar)) || 0), \"VIEWPORT-TOP\" === this.affixedType ? t.topSpacing < t.lastTopSpacing && (t.translateY += t.lastTopSpacing - t.topSpacing, this._reStyle = !0) : \"VIEWPORT-BOTTOM\" === this.affixedType && t.bottomSpacing < t.lastBottomSpacing && (t.translateY += t.lastBottomSpacing - t.bottomSpacing, this._reStyle = !0), t.lastTopSpacing = t.topSpacing, t.lastBottomSpacing = t.bottomSpacing } }, { key: \"isSidebarFitsViewport\", value: function () { var t = this.dimensions, e = \"down\" === this.scrollDirection ? t.lastBottomSpacing : t.lastTopSpacing; return this.dimensions.sidebarHeight + e < this.dimensions.viewportHeight } }, { key: \"observeScrollDir\", value: function () { var t = this.dimensions; if (t.lastViewportTop !== t.viewportTop) { var e = \"down\" === this.direction ? Math.min : Math.max; t.viewportTop === e(t.viewportTop, t.lastViewportTop) && (this.direction = \"down\" === this.direction ? \"up\" : \"down\") } } }, { key: \"getAffixType\", value: function () { this._calcDimensionsWithScroll(); var t = this.dimensions, e = t.viewportTop + t.topSpacing, i = this.affixedType; return e <= t.containerTop || t.containerHeight <= t.sidebarHeight ? (t.translateY = 0, i = \"STATIC\") : i = \"up\" === this.direction ? this._getAffixTypeScrollingUp() : this._getAffixTypeScrollingDown(), t.translateY = Math.max(0, t.translateY), t.translateY = Math.min(t.containerHeight, t.translateY), t.translateY = Math.round(t.translateY), t.lastViewportTop = t.viewportTop, i } }, { key: \"_getAffixTypeScrollingDown\", value: function () { var t = this.dimensions, e = t.sidebarHeight + t.containerTop, i = t.viewportTop + t.topSpacing, n = t.viewportBottom - t.bottomSpacing, o = this.affixedType; return this.isSidebarFitsViewport() ? t.sidebarHeight + i >= t.containerBottom ? (t.translateY = t.containerBottom - e, o = \"CONTAINER-BOTTOM\") : i >= t.containerTop && (t.translateY = i - t.containerTop, o = \"VIEWPORT-TOP\") : t.containerBottom <= n ? (t.translateY = t.containerBottom - e, o = \"CONTAINER-BOTTOM\") : e + t.translateY <= n ? (t.translateY = n - e, o = \"VIEWPORT-BOTTOM\") : t.containerTop + t.translateY <= i && 0 !== t.translateY && t.maxTranslateY !== t.translateY && (o = \"VIEWPORT-UNBOTTOM\"), o } }, { key: \"_getAffixTypeScrollingUp\", value: function () { var t = this.dimensions, e = t.sidebarHeight + t.containerTop, i = t.viewportTop + t.topSpacing, n = t.viewportBottom - t.bottomSpacing, o = this.affixedType; return i <= t.translateY + t.containerTop ? (t.translateY = i - t.containerTop, o = \"VIEWPORT-TOP\") : t.containerBottom <= n ? (t.translateY = t.containerBottom - e, o = \"CONTAINER-BOTTOM\") : this.isSidebarFitsViewport() || t.containerTop <= i && 0 !== t.translateY && t.maxTranslateY !== t.translateY && (o = \"VIEWPORT-UNBOTTOM\"), o } }, { key: \"_getStyle\", value: function (t) { if (void 0 !== t) { var e = { inner: {}, outer: {} }, i = this.dimensions; switch (t) { case \"VIEWPORT-TOP\": e.inner = { position: \"fixed\", top: i.topSpacing, left: i.sidebarLeft - i.viewportLeft, width: i.sidebarWidth }; break; case \"VIEWPORT-BOTTOM\": e.inner = { position: \"fixed\", top: \"auto\", left: i.sidebarLeft, bottom: i.bottomSpacing, width: i.sidebarWidth }; break; case \"CONTAINER-BOTTOM\": case \"VIEWPORT-UNBOTTOM\": var n = this._getTranslate(0, i.translateY + \"px\"); e.inner = n ? { transform: n } : { position: \"absolute\", top: i.translateY, width: i.sidebarWidth } }switch (t) { case \"VIEWPORT-TOP\": case \"VIEWPORT-BOTTOM\": case \"VIEWPORT-UNBOTTOM\": case \"CONTAINER-BOTTOM\": e.outer = { height: i.sidebarHeight, position: \"relative\" } }return e.outer = c.extend({ height: \"\", position: \"\" }, e.outer), e.inner = c.extend({ position: \"relative\", top: \"\", left: \"\", bottom: \"\", width: \"\", transform: \"\" }, e.inner), e } } }, { key: \"stickyPosition\", value: function (t) { if (!this._breakpoint) { t = this._reStyle || t || !1, this.options.topSpacing, this.options.bottomSpacing; var e = this.getAffixType(), i = this._getStyle(e); if ((this.affixedType != e || t) && e) { var n = \"affix.\" + e.toLowerCase().replace(\"viewport-\", \"\") + l; for (var o in c.eventTrigger(this.sidebar, n), \"STATIC\" === e ? c.removeClass(this.sidebar, this.options.stickyClass) : c.addClass(this.sidebar, this.options.stickyClass), i.outer) { var s = \"number\" == typeof i.outer[o] ? \"px\" : \"\"; this.sidebar.style[o] = i.outer[o] + s } for (var r in i.inner) { var a = \"number\" == typeof i.inner[r] ? \"px\" : \"\"; this.sidebarInner.style[r] = i.inner[r] + a } var p = \"affixed.\" + e.toLowerCase().replace(\"viewport-\", \"\") + l; c.eventTrigger(this.sidebar, p) } else this._initialized && (this.sidebarInner.style.left = i.inner.left); this.affixedType = e } } }, { key: \"_widthBreakpoint\", value: function () { window.innerWidth <= this.options.minWidth ? (this._breakpoint = !0, this.affixedType = \"STATIC\", this.sidebar.removeAttribute(\"style\"), c.removeClass(this.sidebar, this.options.stickyClass), this.sidebarInner.removeAttribute(\"style\")) : this._breakpoint = !1 } }, { key: \"updateSticky\", value: function () { var t, e = this, i = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : {}; this._running || (this._running = !0, t = i.type, requestAnimationFrame(function () { switch (t) { case \"scroll\": e._calcDimensionsWithScroll(), e.observeScrollDir(), e.stickyPosition(); break; case \"resize\": default: e._widthBreakpoint(), e.calcDimensions(), e.stickyPosition(!0) }e._running = !1 })) } }, { key: \"_setSupportFeatures\", value: function () { var t = this.support; t.transform = c.supportTransform(), t.transform3d = c.supportTransform(!0) } }, { key: \"_getTranslate\", value: function () { var t = 0 < arguments.length && void 0 !== arguments[0] ? arguments[0] : 0, e = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : 0, i = 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : 0; return this.support.transform3d ? \"translate3d(\" + t + \", \" + e + \", \" + i + \")\" : !!this.support.translate && \"translate(\" + t + \", \" + e + \")\" } }, { key: \"destroy\", value: function () { window.removeEventListener(\"resize\", this, { capture: !1 }), window.removeEventListener(\"scroll\", this, { capture: !1 }), this.sidebar.classList.remove(this.options.stickyClass), this.sidebar.style.minHeight = \"\", this.sidebar.removeEventListener(\"update\" + l, this); var t = { inner: {}, outer: {} }; for (var e in t.inner = { position: \"\", top: \"\", left: \"\", bottom: \"\", width: \"\", transform: \"\" }, t.outer = { height: \"\", position: \"\" }, t.outer) this.sidebar.style[e] = t.outer[e]; for (var i in t.inner) this.sidebarInner.style[i] = t.inner[i]; this.options.resizeSensor && \"undefined\" != typeof ResizeSensor && (ResizeSensor.detach(this.sidebarInner, this.handleEvent), ResizeSensor.detach(this.container, this.handleEvent)) } }], [{ key: \"supportTransform\", value: function (t) { var i = !1, e = t ? \"perspective\" : \"transform\", n = e.charAt(0).toUpperCase() + e.slice(1), o = document.createElement(\"support\").style; return (e + \" \" + [\"Webkit\", \"Moz\", \"O\", \"ms\"].join(n + \" \") + n).split(\" \").forEach(function (t, e) { if (void 0 !== o[t]) return i = t, !1 }), i } }, { key: \"eventTrigger\", value: function (t, e, i) { try { var n = new CustomEvent(e, { detail: i }) } catch (t) { (n = document.createEvent(\"CustomEvent\")).initCustomEvent(e, !0, !0, i) } t.dispatchEvent(n) } }, { key: \"extend\", value: function (t, e) { var i = {}; for (var n in t) void 0 !== e[n] ? i[n] = e[n] : i[n] = t[n]; return i } }, { key: \"offsetRelative\", value: function (t) { var e = { left: 0, top: 0 }; do { var i = t.offsetTop, n = t.offsetLeft; isNaN(i) || (e.top += i), isNaN(n) || (e.left += n), t = \"BODY\" === t.tagName ? t.parentElement : t.offsetParent } while (t); return e } }, { key: \"addClass\", value: function (t, e) { c.hasClass(t, e) || (t.classList ? t.classList.add(e) : t.className += \" \" + e) } }, { key: \"removeClass\", value: function (t, e) { c.hasClass(t, e) && (t.classList ? t.classList.remove(e) : t.className = t.className.replace(new RegExp(\"(^|\\\\b)\" + e.split(\" \").join(\"|\") + \"(\\\\b|$)\", \"gi\"), \" \")) } }, { key: \"hasClass\", value: function (t, e) { return t.classList ? t.classList.contains(e) : new RegExp(\"(^| )\" + e + \"( |$)\", \"gi\").test(t.className) } }, { key: \"defaults\", get: function () { return n } }]), c }()); t.default = i, window.StickySidebar = i })(e) }(e = { exports: {} }, e.exports), e.exports), o = (i = n) && i.__esModule && Object.prototype.hasOwnProperty.call(i, \"default\") ? i.default : i; t.default = o, t.__moduleExports = n, Object.defineProperty(t, \"__esModule\", { value: !0 }) });","module.exports = \"\\r\\n\\r\\n{{historyLinkText}}\"","module.exports = Pusher;","module.exports = jQuery;"],"names":["$","pubsub","generalUtilities","module","selectors","private","properties","navInboxContainer","inboxRedDot","animateRedDot","hasClass","addClass","setTimeout","removeClass","init","e","data","window","pageType","guid","uuid","prop","publish","channel","RESAAS","User2","UserPusherChannel","subscribe","browse","moduleUtilities","elements","activityListWrapper","activityPanel","activityLink","activityItems","newReblastsBtn","listenPusher","Environment","PusherNewReblastChannel","handleDataRealTimeNewReblast","event","$parent","newReblast","FeedId","filter","stringFormat","parent","find","each","$self","$text","this","text","indexOf","parseInt","length","missedReblastsBrowse","request","requestOptions","serviceObject","createServiceObject","filterMissedReblastData","dataFilter","Array","isArray","response","forEach","item","index","MissedReblastCount","push","handleDataMissedReblasts","success","isOwnEvent","handleDataMissedReblastsSuccess","handleDataMissedReblastsError","filteredData","message","JSON","stringify","hideFeedsIndicator","dataId","attr","html","body","on","addEventListener","values","CONTROL_ID","navContainer","feedApp","groupCreate","handleGroupCreateClick","Modernizr","localstorage","localStorage","setItem","redirect","accordionOpen","accordion","toggleAccordion","experienceNav","handleToggleAccordionClick","$this","currentTarget","preventDefault","stopPropagation","not","siblings","slideUp","toggleClass","slideToggle","off","experiencesSubnav","experienceItem","experienceNotification","handleExperienceClick","href","arr","reblastUrl","isInternalLink","link","domainUrl","isActivityLink","targetExperience","currentExperience","redirectPageCB","split","targetexperience","location","hostname","setCookie","scrollTo","history","pushState","reload","type","validator","inviteIcon","inputHref","copyButton","inviteForm","inviteOption","inviteBtn","errorMessage","email","inviteWithEmailForm","constraints","InviteEmail","Localization","Navigation","INVITE_WITH_EMAIL_VALIDATION","join","presence","inviteClicked","context","copyInviteClicked","focus","select","setSelectionRange","document","execCommand","inviteOptionClicked","dataset","mixpaneltype","inviteBtnClicked","invalid","val","validate","showErrors","remove","contact","Name","Email","Invite","disableAndWaitFor","target","handleDataInviteError","Global","GENERIC_WEBSERVICE_ERROR_MESSAGE","handleDataInviteSuccess","INVITE_AGENT_SUCCEEDED","handleDataInvite","applicationUrl","returnUrl","encodeURIComponent","querySelector","value","hash","click","navMobile","navPrimary","navSecondary","mobileNavToggle","activityItem","positionScroll","navOpenClass","navItemOpenClass","closeMobileMenu","skipScrollReset","scrollTop","openMobileMenu","css","top","removeAttr","handleMobileToggleClick","opening","handleClickActivityItem","navMobileToggle","leftNavigation","pageContent","pageWrapper","stickySidebar","stickySidebarInner","stickNavigation","navigation","unStickNavigation","StickySidebar","containerSelector","innerWrapperSelector","topSpacing","bottomSpacing","ro","observe","navContainerInnerInner","updateNavigation","updateSticky","destroy","unobserve","handleUiActionNavigationStateChanged","isCompact","navigationState","requestAnimationFrame","Function","prototype","bind","getNavigationState","ResizeObserver","entries","observer","nav","navItem","primaryNavListItem","footer","activeClass","highlightClass","openClass","publishState","force","currentState","currentStateString","previousStateString","urlToNavSelectors","pathname","search","result","dashboard","domHash","activeTab","regexResult","currentReblastTab","urlQuery","groupUniquName","decodedUrl","secondary","replace","primary","queryStringToObject","ReturnUrl","decodeURIComponent","DefaultGroupUniqueName","isO","IsProfessional","match","ReferralDetails","ReferralType","setCurrentPage","activeClasses","currentSelectors","$selected","allLinks","add","closest","children","slideDown","debounce","experienceSwitcher","notificationItem","navItemOpen","flyOutMenu","openSecondaryNavigation","animate","show","closeExperienceSwitcher","hide","closeSecondaryNavigation","handleSecondaryNavigation","next","handleNavigationClose","handleGenericNavClick","handleHtmlClick","handleDownloadAppClick","MixPanel","trackEvent","from","navItemPrimary","navSecondaryExperiences","navDialpad","downloadApp","ev","keyCode","notificationUnseenBrowse","handleDataNotificationUnseen","r","Connections","connectionIcon","innerText","classList","innerHTML","Notifications","notificationIcon","HasNewInstantMessage","notificationsEnumData","notificationListWrapper","notificationDelete","NotificationId","notificationId","handleDataNotificationDeleteError","handleDataNotificationDeleteSuccess","$nItem","fadeOut","handleDataNotificationDelete","handleNotificationDeleteClick","notificationid","notificationListWrappers","markNotificationAsVisited","authenticated","handleDataNotificationVisitError","handleDataNotificationVisit","status","handleClick","url","$notification","visited","queryObject","mp_from","addParamsToUrlQueryString","notificationToolbarListCompiled","smoke","relationshiptypesData","moment","connectionWrapper","notificationConnect","notificationConnectDismiss","connectionList","notificationCount","requesterRegexObj","getNotificationCountFromDom","massageData","regexArr","Data","map","hasOwnProperty","RelativeDate","DateCreated","fromNow","ActionLink","ACCEPT","NotificationTypeName","exec","Message","RequesterName","notificationCountMessage","NOTIFICATIONS_COUNT_MESSAGE_SINGULAR","NOTIFCATINOS_COUNT_MESSAGE_PLURAL","showHideActivityIndicator","action","notifications","decrementActivityIndicator","handleDataNotificationConnectionError","handleDataNotificationConnectionSuccess","successMsg","res","SaveResult","KnownContactUserId","requester","receiver","reciever","element","content","handleDataNotificationConnection","handleDataConnectionNotificationBrowse","handleDataConnectionNotificationBrowseSuccess","handleDataConnectionNotificationBrowseError","Success","historyLink","historyLinkText","VIEW_CONNECTION_HISTORY","dismissAllowed","NoNotificationMessage","TOOLBAR_NO_NEW_CONNECTION_REQUEST","showExpandNetworkMessage","notification","ContentMetadata","InvitationMessage","isLongMessage","truncatedMessage","substring","seeMoreButtons","querySelectorAll","button","fullMessage","style","display","errMsg","UNAUTHORIZED_USER_ERROR_MESSAGE","publishSync","handleNotificationConnectionDeleteClick","FirstName","LastName","requestername","confirm","SMOKE_HIDE_NOTIFICATION","ok","HIDE","cancel","CANCEL_TEXT","handleNotificationConnectionClick","creatoruserid","Relationships","Type","Connection","Action","notificationConnectionBrowse","IncludeNotificationTypes","InviteToConnectNotification","RecordCount","handleConnectionIconClick","notificationList","is","handleFindAgentClick","getAttribute","configureMoment","pendingMessage","notificationGenericBrowse","notificationTypes","IncludeDismissed","ExcludeNotificationTypes","InviteToSellingCommunityNotification","banner","premiumplus","upsell","splice","handleDataGenericNotificationBrowse","handleDataGenericNotificationBrowseSuccess","handleDataGenericNotificationBrowseError","includedNotificationTypes","VIEW_NOTIFICATIONS_HISTORY","TOOLBAR_NO_NEW_NOTIFICATIONS","Unauthorized_USER_ERROR_MESSAGE","handleNotificationIconClick","handleUpsellClick","ajaxUtility","config","publish2","reason","Handlebars","notificationToolbarListTemplate","compile","handleUserLastActiveDateSuccess","sessionstorage","sessionStorage","Date","getTime","handleUserLastActiveDateError","handleUserLastActiveDate","updateUserLastActiveDate","getItem","t","g","self","i","n","Object","defineProperty","l","enumerable","configurable","writable","key","stickyClass","resizeSensor","minWidth","c","arguments","TypeError","options","extend","sidebar","Error","sidebarInner","container","parentElement","affixedType","direction","support","transform","transform3d","_initialized","_reStyle","_breakpoint","dimensions","translateY","maxTranslateY","lastTopSpacing","lastBottomSpacing","sidebarHeight","sidebarWidth","containerTop","containerHeight","viewportHeight","viewportTop","lastViewportTop","initialize","_setSupportFeatures","createElement","setAttribute","appendChild","firstChild","slice","call","contains","_widthBreakpoint","calcDimensions","stickyPosition","bindEvents","passive","capture","ResizeSensor","handleEvent","offsetRelative","clientHeight","containerBottom","offsetHeight","offsetWidth","innerHeight","_calcDimensionsWithScroll","sidebarLeft","left","documentElement","viewportBottom","viewportLeft","scrollLeft","scrollDirection","Math","min","max","_getAffixTypeScrollingUp","_getAffixTypeScrollingDown","round","o","isSidebarFitsViewport","inner","outer","position","width","bottom","_getTranslate","height","getAffixType","_getStyle","toLowerCase","eventTrigger","s","a","p","innerWidth","removeAttribute","_running","observeScrollDir","supportTransform","translate","removeEventListener","minHeight","detach","charAt","toUpperCase","CustomEvent","detail","createEvent","initCustomEvent","dispatchEvent","offsetTop","offsetLeft","isNaN","tagName","offsetParent","className","RegExp","test","get","default","exports","__esModule","__moduleExports","Pusher","jQuery"],"sourceRoot":""}