selectors.js 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. ;window.oMessengerSelectors = (function($){
  2. class oMessengerConstants {
  3. constructor() {
  4. this.SYSTEM = {
  5. blockHeader: '.bx-db-header',
  6. blockContainer: '.bx-db-container',
  7. blockMenu: '.bx-db-menu',
  8. msgContainer: '.bx-msg-box-container',
  9. bxMain: '.bx-main',
  10. bxTitle: '.bx-db-title',
  11. menuAddonCounter : '.bx-menu-addon-cnt'
  12. };
  13. this.MAIN_PAGE = {
  14. messengerMainBlock: '.bx-messenger-main-columns-block',
  15. messengerColumns: '.bx-messenger-columns'
  16. };
  17. this.HISTORY = {
  18. conversationBody: '.bx-messenger-conversations',
  19. talkBlock: '.bx-messenger-conversation-block',
  20. talkBlockWrapper: '.bx-messenger-conversation-block-wrapper',
  21. historyColumn: '#bx-messenger-history-block',
  22. createTalkArea: '#bx-messenger-users-creation-area',
  23. tableWrapper: '.bx-messenger-table-wrapper',
  24. searchItems: '#search-items',
  25. mainTalkBlock : '.bx-messenger-main-block',
  26. conversationBlockHistory: '.bx-messenger-conversation-block-history',
  27. backButton: '.bx-messenger-history-block-header-menu-back',
  28. messengerHistoryBlock: '.bx-messenger-block',
  29. uploaderAreaPlaceholderPrefix: 'bx-messenger-uploading-placeholder',
  30. mainScrollArea: '.bx-messenger-area-scroll',
  31. searchScrollArea: '.bx-messenger-area-scroll-search',
  32. scrollAreaItem: '.bx-messenger-area-scroll-item',
  33. unreadJotsCounter: '#unread-jots-counter'
  34. };
  35. this.TALK_BLOCK = {
  36. messengerBlock: '.bx-messenger-block-messenger',
  37. historyPanel: '.bx-messenger-block-history-panel',
  38. groupsPanel: '#bx-messenger-groups-panel',
  39. infoPanel: '#bx-messenger-block-info-panel',
  40. };
  41. this.TALKS_LIST = {
  42. listColumn: '#bx-messenger-list-block',
  43. talksList: '.bx-messenger-items-list',
  44. topItem: '.bx-messenger-always-top',
  45. talkItem: '.bx-messenger-jots-snip',
  46. talkItemInfo: '.bx-messenger-jots-snip-info',
  47. talkItemBubble: '.bx-messenger-jots-snip-info-bubble',
  48. talksListItems: '{talksList} .bx-messenger-jots-snip',
  49. panel: 'panel',
  50. active: 'active',
  51. unreadLot: 'unread-lot',
  52. talkStatus:'.bx-messenger-status',
  53. searchCriteria: '#bx-messenger-filter-talks',
  54. searchInput: '#bx-messenger-search-block',
  55. searchCloseIcon: '.bx-messenger-talks-list-header-search-area-icon',
  56. inboxAreaTitle: '#bx-messenger-inbox-area-title',
  57. menuButton: '.bx-messenger-talks-list-header-menu',
  58. createTalkButton: '#bx-messenger-create-post-button',
  59. showImportantButton: '#bx-messenger-show-important-button'
  60. };
  61. this.MENU_AREA = {
  62. menuColumn: '#bx-messenger-menu-block',
  63. collapsableArea: '.bx-messenger-nav-menu-collapse',
  64. chevronUpIcon: '.chevron-up',
  65. chevronDownIcon: '.chevron-down',
  66. addonWrapper: '.bx-messenger-nav-menu-addon',
  67. };
  68. this.INFO = {
  69. infoColumn: '#bx-messenger-info-section-block',
  70. infoColumnC: '.bx-messenger-info-section-block',
  71. infoColumnContent: '#bx-messenger-info-section-block-content',
  72. };
  73. this.DATE_SEPARATOR = {
  74. dateIntervalsSelector:'.bx-messenger-date-time'
  75. };
  76. this.EMOJI = {
  77. emojiComponent:'una-emoji-picker',
  78. sendEmojiButton: 'button.smiles',
  79. reactionButton: 'a.reactions',
  80. emojiPopup: 'bx-messenger-jot-emoji bx-popup bx-popup-color-bg bx-popup-border',
  81. };
  82. this.TEXT_AREA = {
  83. textArea: '.bx-messenger-post-box',
  84. inputArea: '#bx-messenger-message-box',
  85. sendArea: '.bx-messenger-text-box',
  86. sendButton: '.bx-messenger-post-box-send-button > a,.bx-messenger-post-box-send-button > button',
  87. replyArea: '.bx-messenger-reply-area',
  88. replyAreaMessage: '.bx-messenger-reply-area-message',
  89. sendAreaActionsButtons: '.bx-messenger-post-box-send-actions',
  90. textAreaDisabled: 'bx-messenger-post-box-disabled',
  91. talkTitle: '#bx-messenger-talk-title',
  92. attachmentArea: '.bx-messenger-send-area-attachments',
  93. attachmentGroup: '.bx-messenger-attachment-group',
  94. };
  95. this.HISTORY_INFO = {
  96. infoArea: '#bx-messenger-info-area',
  97. typingInfoArea: '.bx-messenger-conversations-typing span',
  98. connectingArea: '.bx-messenger-info-area-connecting',
  99. connectionFailedArea: '.bx-messenger-info-area-connect-failed',
  100. serverErrorArea: '.bx-messenger-no-server',
  101. };
  102. this.THREAD = {
  103. threadReplies: '#bx-messenger-thread-replies'
  104. };
  105. this.JOT = {
  106. jotContainer: '.bx-messenger-jots-message-container',
  107. moreIcon: '.bx-messenger-jot-menu-more',
  108. jotWrapper: '.bx-messenger-jots-message-wrapper',
  109. jotMenu: '.bx-messenger-jot-menu',
  110. jotLineMenu: '.bx-messenger-jot-menu-line',
  111. menuSelector: 'div[id^="jot-menu-"]',
  112. lotsBlock: '.bx-messenger-block-lots',
  113. jotMain: '.bx-messenger-jots',
  114. jotTitle: '.bx-messenger-jots-title',
  115. talkListJotSelector: `${this.HISTORY.conversationBody} .bx-messenger-jots`,
  116. jotMessage: '.bx-messenger-jots-message',
  117. jotAvatar: '.bx-messenger-jots-avatars',
  118. jotAreaInfo: '.bx-messenger-jots-info',
  119. jotMessageBody: '.bx-messenger-jots-message-body',
  120. jotDeleted:'.bx-messenger-jots-message-deleted',
  121. jotHidden:'.bx-messenger-hidden-jot',
  122. jotMessageView: '.view',
  123. selectedJot: '.bx-messenger-blink-jot',
  124. jotIconsArea: '.bx-messenger-message-icons',
  125. jotIconsEditIcon: '.bx-messenger-jots-message-edit-time',
  126. };
  127. this.ATTACHMENTS = {
  128. mediaAccordion: '.bx-messenger-attachment-accordion',
  129. switcher: '.bx-messenger-attachment-accordion-switcher',
  130. attPrefixSelector: 'bx-messenger-attachment-file-',
  131. attachmentWrappers: '.bx-messenger-media-wrapper',
  132. attachmentArea: '.bx-messenger-attachment-area',
  133. attachmentFileWrapper: '.bx-messenger-attachment-file-wrapper',
  134. attachmentBlock: '.bx-messenger-attachment',
  135. attachmentImages: '.bx-messenger-attachment-file-images',
  136. videoAttachment: '.bx-messenger-attachment-file-videos',
  137. audioAttachment: '.bx-messenger-attachment-file-audio',
  138. fileAttachment: '.bx-messenger-attachment-file'
  139. };
  140. this.CREATE_TALK = {
  141. searchUsersInput: '#bx-messenger-add-users-input',
  142. existedUsersArea: '.bx-messenger-existed-users-list',
  143. selectedUsersArea: '#bx-messenger-add-users',
  144. foundUsersArea: '#bx-messenger-profiles-list',
  145. filterCriteria: '.bx-create-convo-criteria',
  146. selectedUsersListInputs: '{selectedUsersArea} input[name="users[]"]',
  147. filterCriteriaForm: '#bx-messenger-convo-filter-criteria',
  148. createConvoForm: '#bx_messenger_lots',
  149. selectedUserElement: '.bx-messenger-participants-added-item'
  150. };
  151. this.GIPHY = {
  152. giphyImages: '.bx-messenger-static-giphy',
  153. giphyItems: '.bx-messenger-giphy-items',
  154. giphySendArea: '#bx-messenger-send-area-giphy',
  155. giphyMain: '.giphy',
  156. giphyBlock: '.bx-messenger-giphy',
  157. giphyScroll: '.bx-messenger-giphy-scroll',
  158. giphyWrapper: '.giphy-item',
  159. giphyInput: '.bx-messenger-giphy-input'
  160. }
  161. this.RECORDER = {
  162. recorderComments: '#bx-messenger-files-upload-comment',
  163. recordeWindow: '#bx-messenger-files-uploader'
  164. }
  165. this.IMAGE_ZOOM = {
  166. bigImag: '#bx-messenger-big-img'
  167. }
  168. };
  169. get(sName){
  170. return typeof this[sName] !== 'undefined' ? this[sName] : null;
  171. }
  172. }
  173. const oConstants = new oMessengerConstants(),
  174. oLib = Object.create(null);
  175. for (let sKey in oConstants) {
  176. if (Object.prototype.hasOwnProperty.call(oConstants, sKey)) {
  177. const oArea = oConstants[sKey];
  178. Object.keys(oConstants[sKey]).some((sValue) => {
  179. oConstants[sKey][sValue] = oConstants[sKey][sValue].replace(/\{(.*?)\}/ig, (s) => oArea[s.replace(/[\{|\}]/ig, '')]);
  180. });
  181. oLib[sKey] = oConstants[sKey];
  182. }
  183. };
  184. return oLib;
  185. })(jQuery);